URL 하나로, AI가 바로 게시합니다
라이프업로드는 원격 MCP(Model Context Protocol) 서버를 내장합니다. 이 주소(https://lifeupload.co.kr/mcp)를 AI 도구에 등록하고 한 번 로그인하면, 에이전트가 만든 HTML·마크다운을 대화 중에 게시하고 공유 링크를 바로 받아옵니다. 설치할 것도, 서버를 띄울 것도 없습니다.
5분 안에 연결하기
처음이라면 이 네 단계면 끝입니다. 아래는 Claude Code 기준이고, 다른 도구는 클라이언트별 연결 방법에 있습니다.
- 서버를 등록합니다.터미널에서 아래 한 줄이면 됩니다.
lifeupload는 내 컴퓨터에서 부를 이름이라 원하는 대로 바꿔도 됩니다.claude mcp add --transport http lifeupload https://lifeupload.co.kr/mcp - 로그인(연결)합니다.Claude Code 에서
/mcp명령을 실행해lifeupload를 인증하면 브라우저가 열립니다. 구글·카카오·네이버 로그인 또는 이메일 계정으로 로그인하고 [허용]을 누르면 끝입니다 — 복사해 둘 키가 없습니다. - 말로 시켜 봅니다.“이 HTML을 라이프업로드에 올려줘”라고 하면 에이전트가 게시하고 공유 링크를 돌려줍니다. 더 많은 예시는 이렇게 말해보세요에 있습니다.
- 돌아온 관리 토큰을 챙깁니다.게시 응답에 그 글 전용 관리 토큰이 한 번만 담깁니다. 계정에 연결돼 있으면 없어도 관리되지만, 계정 밖에서도 고칠 생각이라면 저장해 두세요(관리 토큰).
용어 풀이
이 페이지에 반복해서 나오는 말들입니다. 여기만 알면 나머지는 술술 읽힙니다.
- MCP (Model Context Protocol)
- AI 도구가 바깥 서비스의 기능을 불러 쓰기 위한 공통 규약입니다. 서비스마다 플러그인을 따로 만들지 않아도 되도록 “도구를 어떻게 알려주고 어떻게 호출하는가”를 표준으로 정해 둔 것입니다.
- MCP 서버
- 그 규약에 따라 도구를 제공하는 쪽. 라이프업로드의 MCP 서버는 우리가 이미 띄워 두었고, 여러분은 주소만 등록하면 됩니다(설치·실행할 프로그램이 없습니다).
- MCP 클라이언트
- 그 도구를 불러 쓰는 AI 도구 쪽. Claude Code·Claude 데스크톱·Cursor·VS Code 등이 여기 해당합니다.
- Streamable HTTP
- MCP 가 원격 서버와 통신하는 방식 중 하나(HTTP 요청 하나로 주고받는 방식). 라이프업로드 서버가 쓰는 방식이라, 클라이언트도 이 방식을 지원해야 연결됩니다.
- 도구 (tool)
- 에이전트가 호출할 수 있는 기능 하나하나입니다.
create_share(게시)·search_shares(검색)처럼 이름이 붙어 있고, 연결하면 13가지가 열립니다. - 관리 토큰 (
deleteToken) - 글 하나에만 통하는 편집·삭제 열쇠. 게시 응답에 한 번만 담기고, 웹에서 발급되는 관리 링크와 같은 것입니다.
- 계정 자격 (OAuth 토큰 · API 키)
- 사람 하나에 묶이는 자격. 그 계정에 연결된 모든 글에 통합니다. 관리 토큰과는 다른 축입니다.
- MCP 표준 OAuth
- 클라이언트가 스스로 로그인 창을 띄워 자격을 받아 오는 표준 절차. 사용자는 브라우저에서 로그인하고 [허용]만 누르면 됩니다.
- 동의 화면
- 그 [허용]을 누르는 화면입니다. 어떤 클라이언트가 어떤 계정으로 무엇을 하려는지 보여줍니다 — 이 화면이 없으면 아무 사이트나 조용히 계정 권한을 가져갈 수 있어, 자동 승인은 일부러 하지 않습니다.
- DCR (동적 클라이언트 등록)
- 클라이언트가 사람 손을 거치지 않고 스스로 “나는 이런 앱”이라고 등록하는 절차. 여러분이 할 일은 없고, 클라이언트가 알아서 합니다.
- 액세스 토큰
- 로그인 결과로 클라이언트가 받아 보관하는 값. 30일 동안 유효하고, 만료되면 클라이언트가 다시 로그인 창을 띄웁니다(리프레시 토큰은 발급하지 않습니다).
- slug · vid
slug는 글 하나를 가리키는 8글자 주소 조각(abcd1234),vid는 그 글의 지난 판 하나를 가리키는 값입니다. 도구가 응답에 실어 주므로 직접 만들 필요는 없습니다.
연결은 이렇게 이뤄집니다
“URL만 넣었는데 왜 로그인 창이 뜨지?”가 이 페이지에서 가장 많이 막히는 지점이라, 순서를 그림으로 둡니다. 2번의 거절이 3번의 로그인 창을 띄우는 신호입니다 — 서버가 익명 요청을 그냥 받아 주면 클라이언트는 로그인이 필요 없는 줄 알고 창을 아예 띄우지 않습니다.
클라이언트별 연결 방법
등록할 주소는 이것 하나입니다. 다른 값(포트·경로·토큰)은 필요 없습니다.
https://lifeupload.co.kr/mcpClaude Code (CLI)
터미널에서 등록한 뒤, /mcp 명령으로 인증합니다.
claude mcp add --transport http lifeupload https://lifeupload.co.kr/mcpAPI 키를 쓴다면 등록할 때 헤더로 함께 실어 둡니다(그러면 /mcp 인증 단계가 필요 없습니다):
claude mcp add --transport http lifeupload https://lifeupload.co.kr/mcp \
--header "Authorization: Bearer lu_발급받은키"Claude 데스크톱 · claude.ai (웹)
설정에서 커넥터(Connectors) 항목을 찾아 커스텀 커넥터 추가를 고르고, URL 자리에 위 주소를 넣습니다. 추가한 뒤 목록에서 [연결]을 누르면 로그인 → 허용 화면이 뜹니다. 메뉴 이름은 버전에 따라 조금씩 다를 수 있으니, 원격 MCP 서버 URL 을 넣는 자리를 찾으면 됩니다.
Cursor
전역 설정은 ~/.cursor/mcp.json, 프로젝트별 설정은 그 프로젝트의 .cursor/mcp.json입니다.
{
"mcpServers": {
"lifeupload": { "url": "https://lifeupload.co.kr/mcp" }
}
}VS Code (GitHub Copilot)
워크스페이스의 .vscode/mcp.json에 넣습니다.
{
"servers": {
"lifeupload": { "type": "http", "url": "https://lifeupload.co.kr/mcp" }
}
}mcp.json 계열은 API 키를 headers로 함께 적을 수 있습니다 — 형식은 자격 두 가지에 있습니다.
그 밖의 MCP 클라이언트
이 서버는 Streamable HTTP 방식의 표준 원격 MCP 서버입니다. 쓰는 도구가 원격 MCP 서버를 지원한다면, 서버 URL 을 넣는 자리에 위 주소를 그대로 넣으면 됩니다. 등록 위치와 파일 형식은 도구마다 다르니 그 도구의 문서를 확인하세요(MCP 클라이언트 목록 ↗).
/mcp여야 합니다. /mcp/처럼 슬래시를 붙이면 다른 경로가 되어 연결되지 않습니다. 그리고 실행할 명령(command)이 아니라 URL을 넣는 자리입니다 — 설치해서 돌리는 로컬 서버가 아닙니다.자격 두 가지 (OAuth · API 키)
이 서버는 로그인이 필수입니다. 그리고 에이전트가 게시하는 글은 로그인한 내 계정에 자동으로 연결되어, 웹의 마이페이지 “내 계정 글”에서 어느 기기에서든 관리할 수 있습니다. 로그인 방법은 두 가지입니다.
| 비교 | MCP 표준 OAuth | API 키 |
|---|---|---|
| 준비할 것 | 없음 (URL 등록 후 연결 버튼) | 마이페이지에서 키 발급 후 복사 |
| 어디에 넣나 | 넣지 않음 — 클라이언트가 보관 | 서버 등록 시 헤더로 |
| 만료 | 액세스 토큰 30일 (만료 시 재로그인) | 없음 (직접 삭제·재발급할 때까지) |
| 끊으려면 | 클라이언트에서 커넥터 삭제 | 마이페이지에서 키 삭제·재발급 |
| 쓸 수 있는 곳 | OAuth 를 지원하는 클라이언트 | 커스텀 헤더를 넣을 수 있는 클라이언트 |
방법 1 · MCP 표준 OAuth (권장)
클라이언트가 알아서 로그인 창을 띄우는 방식입니다. URL 등록 → [연결] → 로그인 → [허용]이 전부이고, 복사해 둘 키가 없습니다. 토큰은 30일 동안 유효하고, 만료되면 클라이언트가 다시 로그인 창을 띄웁니다(자세한 순서는 연결 흐름).
동의 화면에는 어떤 클라이언트가 어떤 계정으로 권한을 요청하는지가 표시됩니다. 내가 방금 등록한 그 도구가 맞는지 확인하고 누르세요 — 모르는 이름이면 거부하면 됩니다.
방법 2 · API 키 (헤더로 등록)
로그인 후 마이페이지의 “MCP API 키 · 계정” 탭에서 키(lu_로 시작)를 발급받아, 서버를 등록할 때 헤더로 실어 둡니다. 그러면 이후 모든 호출에 자동으로 붙습니다. 헤더 이름은 Authorization: Bearer <키> 또는 X-Api-Key: <키> 둘 다 됩니다.
{
"mcpServers": {
"lifeupload": {
"url": "https://lifeupload.co.kr/mcp",
"headers": { "Authorization": "Bearer lu_발급받은키" }
}
}
}도구 인자에도 api_key가 있지만, 그것은 이미 연결된 상태에서 글을 귀속할 계정을 바꾸는 오버라이드입니다 — 인자만으로는 연결(로그인)이 되지 않습니다. 자격은 언제나 헤더로 실립니다.
관리 토큰 (글 단위 열쇠)
게시하면 그 글 전용 관리 토큰(deleteToken)과 관리 링크(manageUrl)가 응답에 한 번만 담깁니다. 웹에서 발급되는 관리 링크와 같은 열쇠입니다.
계정 자격과는 축이 다릅니다. 편집·삭제 게이트는 둘 중 하나만 있으면 통과합니다.
| 축 | 관리 토큰 | 계정 자격 (OAuth · API 키) |
|---|---|---|
| 범위 | 글 하나 | 그 계정에 연결된 모든 글 |
| 받는 때 | 게시 응답에 1회 | 연결(로그인)할 때 |
| 잃어버리면 | 재발급 불가 | 다시 로그인·재발급 가능 |
| 쓰는 자리 | 도구 인자 manage_token | 서버 등록 헤더 |
이렇게 말해보세요
외울 명령어는 없습니다. 평소처럼 말하면 에이전트가 알맞은 도구를 고릅니다. 아래는 실제로 도구 호출로 이어지는 말투들입니다.
만들기
- “이 HTML을 라이프업로드에 올리고 링크 줘” →
create_share - “지금 만든 리포트를 마크다운으로 올려줘” →
create_share(content_type이 마크다운으로) - “링크 아는 사람만 보게 unlisted로 올려줘” · “비밀번호 걸어서 올려줘”
- “제목은 ‘2분기 요약’, 태그는 report, chart 로 해줘”
고치기
- “방금 올린 글 제목만 바꿔줘” →
update_share(지정한 것만 바뀌고 나머지는 그대로) - “그 페이지 본문을 이 내용으로 갈아줘”
- “비밀번호 지워줘” →
clear_password - “그 글 지워줘” →
delete_share(되돌릴 수 없습니다)
찾기
- “css 태그 붙은 공개 글 찾아줘” · “최근에 올라온 것부터 보여줘” →
search_shares - “요즘 많이 쓰이는 태그 뭐야?” →
popular_tags - “내 계정으로 올린 글 목록 보여줘” →
list_my_shares(링크 공유·비밀번호 글까지 포함) - “그 페이지 원본 소스 좀 가져와” →
get_share
통계 보기
- “이 페이지 최근 일주일 조회수 어때?” →
get_daily_views - “지난 90일치로 다시 보여줘” (1~365일)
- “내 계정에 글이 몇 개나 있어?” →
get_my_info
되돌리기
- “이 글 수정 이력 보여줘” →
list_share_versions - “어제 저장한 버전 내용 좀 보여줘” →
get_share_version - “그 버전으로 되돌려줘” →
restore_share_version
도구 13종
연결하면 아래 13가지가 열립니다(인자 전체와 상세 스키마는 클라이언트가 자동으로 보여 줍니다). 모든 호출은 로그인한 뒤에만 가능하고, 표의 “자격”은 그 위에 추가로 필요한 것입니다.
읽기 전용 9종
| 도구 | 하는 일 · 돌려주는 것 | 주요 인자 | 자격 |
|---|---|---|---|
search_shares | 공개 글을 제목·태그로 검색. 목록과 총 개수를 돌려주고 본문은 포함하지 않습니다 | query, sort(popular·recent), limit(최대 48), offset | 추가 자격 없음 |
get_share | 글 하나의 원본 본문과 메타데이터 | slug, manage_token | 공개·링크 공유는 없음 / 비밀번호 글은 작성자 |
list_share_versions | 본문 수정 이력 목록(최신순). 각 항목의 vid·저장 시각·크기 등, 본문은 미포함 | slug, limit(최대 100), offset, manage_token | 작성자 |
get_share_version | 지난 판 1건 — 그 시점의 본문 원본까지 | slug, vid, manage_token | 작성자 |
get_daily_views | 그 글의 날짜별 방문 수와 누적 조회수 | slug, days(1~365, 기본 30) | 추가 자격 없음 |
popular_tags | 공개 글에서 많이 쓰인 태그 목록 | 없음 | 추가 자격 없음 |
site_stats | 사이트 전체 집계(호스팅 중인 페이지 수·총 조회수) | 없음 | 추가 자격 없음 |
get_my_info | 지금 연결된 계정(이메일·이름·가입 시각·소유 글 수) | api_key(다른 계정을 볼 때만) | 연결 계정 |
list_my_shares | 내 계정에 연결된 글 목록(최신순) — 링크 공유·비밀번호 글 포함, 본문은 미포함 | limit(최대 100), offset | 연결 계정 |
쓰기 3종
| 도구 | 하는 일 · 돌려주는 것 | 주요 인자 | 자격 |
|---|---|---|---|
create_share | 새 글 게시. 공유 링크(link)·slug·관리 토큰·관리 링크를 돌려줍니다(토큰은 이 응답에만) | content(최대 2MB), title, tags, content_type(html·markdown), visibility(public·unlisted), password | 연결 계정 (글이 그 계정에 귀속) |
update_share | 글 편집 — 넘긴 필드만 바뀌고 나머지는 그대로. 본문이 실제로 바뀐 편집은 직전 내용을 이력에 남깁니다 | slug, content, title, tags, visibility, password, clear_password, manage_token | 작성자 |
restore_share_version | 그 판의 본문으로 되돌리기(앞으로 감기 — 직전 내용도 이력에 남습니다). 공개 범위·비밀번호는 현재값 유지 | slug, vid, manage_token | 작성자 |
파괴적 1종
| 도구 | 하는 일 · 돌려주는 것 | 주요 인자 | 자격 |
|---|---|---|---|
delete_share | 글 삭제. 본문·수정 이력·달린 댓글·방문 통계가 함께 사라지고 되돌릴 수 없습니다 | slug, manage_token, reason | 작성자 (운영자는 관리자 계정 자격) |
운영자 삭제는 관리자 계정 자격으로만 판정합니다. 신고를 받은 운영자가 관리자 계정으로 연결해 글을 내리는 통로이고, 서버가 자기 설정값을 알아서 쓰는 일은 없습니다 — 그랬다면 이 공개 엔드포인트에서 누구나 남의 글을 지울 수 있게 됩니다. reason은 삭제 감사 기록에 남습니다.
문제 해결
실제로 자주 걸리는 것들입니다. 대부분은 고장이 아니라 자격(로그인) 문제입니다.
로그인 창이 자꾸 다시 뜬다
왜 — 이 서버는 자격이 없거나 만료·무효면 “로그인이 필요하다”고 되돌려 주고, 그 응답이 곧 로그인 창입니다. 액세스 토큰은 30일이면 만료되고(리프레시 토큰이 없어 만료 시 재로그인), API 키는 재발급하는 순간 이전 키가 무효가 됩니다.
어떻게 — OAuth 라면 클라이언트에서 그 서버를 다시 연결(재인증)하세요. API 키라면 마이페이지에서 키 상태를 확인하고, 재발급했다면 클라이언트 설정의 헤더 값을 새 키로 바꾸세요.
연결은 됐는데 도구가 하나도 안 보인다
왜 — 세 가지 중 하나입니다. ① 등록만 하고 인증을 끝내지 않았다(가장 흔합니다) ② 주소가 /mcp가 아니거나 끝에 슬래시가 붙었다 ③ 그 클라이언트가 원격 MCP 서버(Streamable HTTP)를 지원하지 않는다.
어떻게 — 먼저 클라이언트의 MCP 서버 목록에서 상태가 “연결됨”인지 확인하고, 아니라면 연결/인증을 다시 실행하세요. 주소는 클라이언트별 연결 방법의 값을 복사 버튼으로 그대로 넣는 것이 가장 안전합니다.
“관리 토큰이 필요하다”는 응답이 온다
왜 — 그 글이 지금 연결된 계정의 글이 아니기 때문입니다. 웹에서 로그인 없이 만든 글, 또는 다른 계정으로 만든 글이 여기 해당합니다. 계정에 연결되지 않은 글은 관리 토큰이 유일한 열쇠입니다.
어떻게 — 게시할 때 받은 관리 토큰을 manage_token으로 넘기세요. 웹에서 만든 내 글이라면 마이페이지에서 “내 계정에 연결”로 계정에 붙여 두면, 그 뒤로는 토큰 없이도 됩니다.
관리 토큰을 잃어버렸다
왜 — 관리 토큰은 게시 응답에 한 번만 담기고, 서버는 그 값을 그대로 보관하지 않아 다시 발급할 수 없습니다.
어떻게 — 그 글이 계정에 연결돼 있다면 애초에 토큰이 필요 없습니다(마이페이지 “내 계정 글”). 계정에 연결되지 않은 글이라면, 그 글을 만든 브라우저의 마이페이지 목록에 남아 있는 편집 버튼이 마지막 경로입니다.
“too many uploads / too many edits”가 뜬다
왜 — 짧은 시간에 너무 많이 만들거나 고쳤을 때 걸리는 속도 제한입니다. 같은 IP 기준으로 게시는 1분에 10회, 편집·되돌리기는 1분에 20회입니다. 웹과 MCP 가 같은 한도를 나눠 쓰므로 도구로 바꿔 우회할 수는 없습니다.
어떻게 — 1분 기다렸다가 다시 시키면 됩니다. 에이전트에게 여러 건을 한꺼번에 시키는 중이었다면 나눠서 요청하세요.
비밀번호를 건 글을 읽지 못한다
왜 — 비밀번호 글의 원본은 작성자만 읽을 수 있습니다. 공개·링크 공유 글은 자격 없이 읽히지만, 비밀번호 글은 get_share에서 막힙니다.
어떻게 — manage_token을 함께 넘기거나, 그 글이 연결된 계정으로 연결하세요. 참고로 도구에 비밀번호 자체를 넘겨 여는 통로는 없습니다 — 비밀번호는 방문자용 잠금이고, 작성자 자격과는 다른 것입니다.
개발자용
프로토콜. 이 엔드포인트는 MCP Streamable HTTP 표준입니다(stateless, JSON 응답 — 세션 협상도 SSE 스트림도 없습니다). 인증이 필수라 자격증명이 없거나 무효인 요청은 401 + WWW-Authenticate(resource_metadata)로 응답하고, 이 응답이 OAuth 지원 클라이언트의 연결 화면을 띄웁니다. 사람이 읽는 안내는 이 페이지(/mcp-guide)에 있습니다.
API 키가 있으면 세션 협상 없이 요청 하나로 바로 호출할 수 있습니다:
curl -X POST https://lifeupload.co.kr/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'Authorization: Bearer lu_발급받은키' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'OAuth 인가 서버
MCP 인가 스펙(OAuth 2.1 — Authorization Code + PKCE + 동적 클라이언트 등록)을 그대로 따릅니다. 클라이언트는 보호 리소스 메타데이터(/.well-known/oauth-protected-resource/mcp)에서 인가 서버를 찾고, /mcp/oauth/register로 스스로 등록한 뒤 /mcp/oauth/authorize → 동의 → /mcp/oauth/token 순서로 진행합니다.
- 동의는 자동 승인하지 않습니다.
/mcp/oauth/authorize는 코드를 바로 주지 않고 웹 로그인 + 사람의 [허용]을 요구합니다. - 액세스 토큰 30일. 공개(public) 클라이언트에는 리프레시 토큰을 발급하지 않으므로 만료되면 다시 로그인합니다.
- 인가 코드는 5분·1회용입니다.
- 등록(
/mcp/oauth/register)은 스펙대로 인증이 없어 IP 당 1분에 5회로 제한합니다.
한도·정책
- 본문은 글 하나당 최대 2MB, 제목은 120자까지, 태그는 앞에서부터 4개까지 저장됩니다.
- 목록 상한: 검색 48건, 내 글·이력 100건(그 이상을 넘겨도 잘립니다).
- 속도 제한(IP 기준): 게시 10회/분, 편집·되돌리기 20회/분. 웹 REST 와 같은 한도를 공유합니다.
- 비밀번호를 걸면 공개 범위는 자동으로 링크 공유가 됩니다.
용량·보관 기간 등 서비스 전반의 제한과 정책은 도움말을 참고하세요.
자주 묻는 질문
AI 에이전트에서 라이프업로드에 바로 게시할 수 있나요?
https://lifeupload.co.kr/mcp URL을 등록하고 한 번 로그인하면, 에이전트가 대화 중에 페이지를 게시·검색·편집하고 공유 링크를 바로 돌려줍니다.MCP 연결에 설치가 필요한가요?
claude mcp add --transport http lifeupload … 로 등록한 뒤 /mcp 명령으로 인증합니다.OAuth와 API 키 중 무엇을 써야 하나요?
lu_로 시작)를 발급받아 서버 등록 시 헤더로 실어 둡니다.에이전트가 올린 글은 나중에 어떻게 편집·삭제하나요?
관리 토큰과 계정 자격은 무엇이 다른가요?
에이전트가 지운 글을 되살릴 수 있나요?
restore_share_version 도구나 웹 편집 화면에서 그 시점으로 되돌릴 수 있습니다.로그인 창이 계속 다시 뜨거나 도구가 보이지 않습니다.
/mcp 여야 합니다(문제 해결).비밀번호를 건 글을 에이전트가 읽지 못합니다.
get_share에 관리 토큰을 넘기거나 그 글이 연결된 계정으로 연결돼 있어야 합니다. 공개·링크 공유 글은 자격 없이 읽힙니다.다른 사람의 글도 볼 수 있나요?
slug)를 알면 읽을 수 있고, 비밀번호 글은 작성자만 읽습니다. 편집·삭제는 언제나 작성자 자격이 있어야 합니다.연결을 끊으려면 어떻게 하나요?
운영자도 글을 지울 수 있나요?
delete_share를 부릅니다. 일반 사용자에게는 해당하지 않고, 서버가 자기 설정값을 알아서 쓰는 일도 없습니다 — 그랬다면 공개 엔드포인트에서 누구나 남의 글을 지울 수 있게 됩니다.