velog_mcp
Enables Claude to directly create and publish posts on Velog through reverse-engineered GraphQL APIs. Supports a human-in-the-loop workflow from draft to review to publication, maintaining user control while automating content creation.
README
velog-mcp-claude
Claude가 Velog에 직접 포스트를 작성하고 발행할 수 있는 MCP 서버.
공개 API가 없는 Velog를 GraphQL 리버스 엔지니어링으로 지원합니다. draft → 사용자 검토 → publish의 human-in-the-loop 플로우로 설계되어, 자동화이면서도 사용자가 완전한 통제권을 유지합니다.
npm: velog-mcp-claude | 요구사항: Node.js 18+
설치
npx -p velog-mcp-claude velog-mcp-setup
Velog에 로그인한 상태에서 브라우저 DevTools → Application → Cookies → https://velog.io에서 access_token과 refresh_token 값을 복사해 입력하세요.
토큰은 ~/.velog-mcp.json에 0600 권한으로 저장됩니다. .gitignore에 추가하세요.
Claude CLI (Claude Code) 설정
프로젝트에 추가
claude mcp add velog -- npx -y velog-mcp-claude
또는 프로젝트의 .claude/settings.json에 직접 추가:
{
"mcpServers": {
"velog": {
"command": "npx",
"args": ["-y", "velog-mcp-claude"]
}
}
}
전역(글로벌)으로 추가
claude mcp add --scope global velog -- npx -y velog-mcp-claude
글로벌 설정은 모든 프로젝트에서 사용 가능합니다.
확인
claude mcp list
velog 서버가 목록에 표시되면 준비 완료. 이후 Claude Code 대화에서 바로 사용할 수 있습니다.
나: "React 훅에 대한 글 써줘"
Claude: (velog_draft_post 호출 → 검토 후 발행)
Claude Desktop 설정
~/Library/Application Support/Claude/claude_desktop_config.json에 추가:
{
"mcpServers": {
"velog": {
"command": "npx",
"args": ["-y", "velog-mcp-claude"]
}
}
}
사용법
포스트 작성 및 발행
나: "React 19 concurrent features에 대한 글 써줘"
Claude: velog_draft_post 호출
→ { draft_id: "abc123", title: "React 19 Concurrent Features 정리", body_preview: "..." }
나: "좋아, 발행해"
Claude: velog_publish_post(draft_id: "abc123") 호출
→ { url: "https://velog.io/@username/react-19-...", post_id: "..." }
비공개 발행
나: "이 글 비공개로 발행해줘"
Claude: velog_publish_post(draft_id: "abc123", is_private: true)
툴 목록
| 툴 | 설명 |
|---|---|
velog_draft_post |
포스트 초안 생성 (세션 메모리 저장) |
velog_publish_post |
초안을 Velog에 발행 |
velog_list_posts |
내 포스트 목록 조회 |
velog_get_post |
특정 포스트 전체 내용 조회 |
velog_update_post |
기존 포스트 수정 |
velog_delete_post |
포스트 삭제 |
velog_upload_image |
로컬 이미지 파일을 Velog에 업로드 |
인증
access_token: ~1-2시간 TTL. Velog 서버가 GraphQL 응답에Set-Cookie로 자동 갱신.refresh_token: ~30일 TTL. 만료 시npx -p velog-mcp-claude velog-mcp-setup재실행 필요.- 별도 refresh 엔드포인트 없음 — Velog 미들웨어가 자동 처리.
에러 처리
| 상황 | 메시지 |
|---|---|
| 토큰 만료 (401) | "토큰이 만료됐거나 유효하지 않습니다. npx -p velog-mcp-claude velog-mcp-setup을 다시 실행하세요." |
| 설정 파일 없음 | "설정 파일이 없습니다. npx -p velog-mcp-claude velog-mcp-setup을 실행하세요." |
| 네트워크 오류 | "Velog API에 연결할 수 없습니다. 네트워크를 확인하세요." |
| 잘못된 draft_id | "draft_id가 존재하지 않습니다. velog_draft_post를 먼저 호출하세요." |
| GraphQL 오류 | Velog 서버 에러 메시지 그대로 반환 |
주의사항
- draft는 MCP 서버 프로세스의 세션 메모리에 저장. Claude Desktop 재시작 시 소멸.
- 발행하지 않고 보존하려면
velog_publish_post(is_private: true)로 비공개 저장. - 이미지: 마크다운 외부 URL 참조 방식 (
) 사용.
면책 조항
이 프로젝트는 Velog의 공식 지원을 받지 않으며, Velog와 무관한 독립 오픈소스입니다.
- Velog의 공개 API가 없어 내부 GraphQL API를 리버스 엔지니어링하여 구현되었습니다.
- Velog 이용약관(ToS) 변경 또는 API 구조 변경으로 인해 예고 없이 동작이 중단될 수 있습니다.
- 이 도구 사용으로 발생하는 계정 제한, 정지 등의 불이익에 대해 개발자는 책임을 지지 않습니다.
- 본인 계정의 토큰만 사용하고, 타인의 계정 정보를 입력하지 마세요.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。