Skip to content
MCP ThesaurusMCP Thesaurus

Velog

CommunityIncomplete39/100Claim

npm velog-mcp-claudestdioMITupdated 9d ago

Velog ๊ฐœ๋ฐœ์ž(@velopert)๋กœ๋ถ€ํ„ฐ ์šด์˜์„ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๋‹ต๋ณ€์„ ๋ฐ›์€ ๋…๋ฆฝ ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

SourceWebsite5

What can you do with Velog?

velog-mcp-claude

npm downloads CI license

Velog ๊ฐœ๋ฐœ์ž(@velopert)๋กœ๋ถ€ํ„ฐ ์šด์˜์„ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๋‹ต๋ณ€์„ ๋ฐ›์€ ๋…๋ฆฝ ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

Claude๊ฐ€ Velog์— ์ง์ ‘ ํฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑยท๋ฐœํ–‰ยท์ˆ˜์ •ยท์‚ญ์ œํ•˜๊ณ , ๋Œ“๊ธ€ยท์ข‹์•„์š”ยท๊ฒ€์ƒ‰ยทํŠธ๋ Œ๋”ฉ๊นŒ์ง€ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” MCP ์„œ๋ฒ„.

stdio ๊ธฐ๋ฐ˜ ํ‘œ์ค€ MCP ์„œ๋ฒ„๋ผ Claude Code, Claude Desktop, Codex CLI ๋“ฑ MCP๋ฅผ ์ง€์›ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ชจ๋‘ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

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 ๊ถŒํ•œ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์„ค์ •

Claude Code

claude mcp add velog -- npx -y velog-mcp-claude

์ „์—ญ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด:

claude mcp add --scope global velog -- npx -y velog-mcp-claude

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json์— ์ถ”๊ฐ€:

{
  "mcpServers": {
    "velog": {
      "command": "npx",
      "args": ["-y", "velog-mcp-claude"]
    }
  }
}

Codex CLI

codex mcp add velog -- npx -y velog-mcp-claude

๋˜๋Š” ~/.codex/config.toml์— ์ง์ ‘ ์ถ”๊ฐ€:

[mcp_servers.velog]
command = "npx"
args = ["-y", "velog-mcp-claude"]

๋“ฑ๋ก ํ™•์ธ์€ codex mcp list.

ํˆด ๋ชฉ๋ก

ํฌ์ŠคํŠธ

ํˆด ์„ค๋ช…
velog_draft_post ํฌ์ŠคํŠธ ์ดˆ์•ˆ ์ƒ์„ฑ
velog_publish_post ์ดˆ์•ˆ์„ Velog์— ๋ฐœํ–‰
velog_list_posts ๋‚ด ํฌ์ŠคํŠธ ๋ชฉ๋ก ์กฐํšŒ
velog_get_post ํŠน์ • ํฌ์ŠคํŠธ ์ „์ฒด ๋‚ด์šฉ ์กฐํšŒ (์กฐํšŒ์ˆ˜ ํฌํ•จ)
velog_update_post ๊ธฐ์กด ํฌ์ŠคํŠธ ์ˆ˜์ •
velog_delete_post ํฌ์ŠคํŠธ ์‚ญ์ œ
velog_upload_image ๋กœ์ปฌ ์ด๋ฏธ์ง€๋ฅผ Velog CDN์— ์—…๋กœ๋“œ
velog_import_from_github GitHub ๋ธ”๋กœ๊ทธ ๋งˆํฌ๋‹ค์šด์„ Velog ์ดˆ์•ˆ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
velog_git_to_post git ์ปค๋ฐ‹ ์ด๋ ฅ๊ณผ diff๋ฅผ ๋ถ„์„ํ•ด ๋ธ”๋กœ๊ทธ ์ดˆ์•ˆ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ

์‹œ๋ฆฌ์ฆˆ

ํˆด ์„ค๋ช…
velog_list_series ๋‚ด ์‹œ๋ฆฌ์ฆˆ ๋ชฉ๋ก ์กฐํšŒ
velog_create_series ์ƒˆ ์‹œ๋ฆฌ์ฆˆ ์ƒ์„ฑ
velog_update_series ์‹œ๋ฆฌ์ฆˆ ์ด๋ฆ„ยท์„ค๋ช… ์ˆ˜์ •
velog_append_to_series ํฌ์ŠคํŠธ๋ฅผ ์‹œ๋ฆฌ์ฆˆ์— ์ถ”๊ฐ€
velog_delete_series ์‹œ๋ฆฌ์ฆˆ ์‚ญ์ œ

๋Œ“๊ธ€

ํˆด ์„ค๋ช…
velog_get_comments ํฌ์ŠคํŠธ ๋Œ“๊ธ€ ๋ชฉ๋ก ์กฐํšŒ (๋Œ€๋Œ“๊ธ€ ํฌํ•จ)
velog_write_comment ๋Œ“๊ธ€ ๋˜๋Š” ๋Œ€๋Œ“๊ธ€ ์ž‘์„ฑ
velog_update_comment ๋Œ“๊ธ€ ์ˆ˜์ •
velog_delete_comment ๋Œ“๊ธ€ ์‚ญ์ œ

์ข‹์•„์š”

ํˆด ์„ค๋ช…
velog_like_post ํฌ์ŠคํŠธ ์ข‹์•„์š”
velog_unlike_post ํฌ์ŠคํŠธ ์ข‹์•„์š” ์ทจ์†Œ

ํƒ์ƒ‰

ํˆด ์„ค๋ช…
velog_search_posts ํ‚ค์›Œ๋“œ๋กœ ํฌ์ŠคํŠธ ๊ฒ€์ƒ‰
velog_get_trending ํŠธ๋ Œ๋”ฉ ํฌ์ŠคํŠธ ์กฐํšŒ (day / week / month / year)
velog_trend_report ํŠธ๋ Œ๋”ฉ ํฌ์ŠคํŠธ ๋ถ„์„ ๋ฆฌํฌํŠธ
velog_topic_research ํŠธ๋ Œ๋”ฉ ํƒœ๊ทธ ร— ๋‚ด ํฌ์ŠคํŠธ ๊ต์ฐจ๋ถ„์„์œผ๋กœ ์•„์ง ์•ˆ ์“ด ์ธ๊ธฐ ์ฃผ์ œ ๋ฐœ๊ตด
velog_get_rss ํŠน์ • ์œ ์ €์˜ RSS ํ”ผ๋“œ ์กฐํšŒ (์ธ์ฆ ๋ถˆํ•„์š”)

๋‚ด ๊ณ„์ •

ํˆด ์„ค๋ช…
velog_list_tags ๋‚ด ํƒœ๊ทธ ๋ชฉ๋ก๊ณผ ํƒœ๊ทธ๋ณ„ ํฌ์ŠคํŠธ ์ˆ˜ ์กฐํšŒ
velog_list_temp_posts ์ž„์‹œ์ €์žฅ ํฌ์ŠคํŠธ ๋ชฉ๋ก ์กฐํšŒ
velog_get_notifications ์•Œ๋ฆผ ๋ชฉ๋ก ์กฐํšŒ (์ข‹์•„์š”ยท๋Œ“๊ธ€ยทํŒ”๋กœ์šฐ, ์ฝ์ง€ ์•Š์€ ์ˆ˜ ํฌํ•จ)
velog_get_reading_list ์ฝ์„ ๋ชฉ๋ก(๋ถ๋งˆํฌ) ์กฐํšŒ

git ์ปค๋ฐ‹ โ†’ ๋ธ”๋กœ๊ทธ ์ดˆ์•ˆ

์ตœ๊ทผ ์ปค๋ฐ‹ ์ด๋ ฅ๊ณผ diff๋ฅผ ๋ถ„์„ํ•ด Claude๊ฐ€ ํ•œ๊ตญ์–ด ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‚˜: "์˜ค๋Š˜ ์ž‘์—…ํ•œ ์ปค๋ฐ‹๋“ค๋กœ ๋ฒจ๋กœ๊ทธ ํฌ์ŠคํŠธ ์ž‘์„ฑํ•ด์ค˜"
๋‚˜: "์ง€๋‚œ 10๊ฐœ ์ปค๋ฐ‹ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธ”๋กœ๊ทธ ๊ธ€ ์จ์ค˜"
๋‚˜: "v0.19.0 ํƒœ๊ทธ ์ดํ›„ ๋ณ€๊ฒฝ์‚ฌํ•ญ์œผ๋กœ ํฌ์ŠคํŠธ ์ดˆ์•ˆ ๋งŒ๋“ค์–ด์ค˜"
  • repo_path: ๋ถ„์„ํ•  ๋กœ์ปฌ git ์ €์žฅ์†Œ ๊ฒฝ๋กœ (๊ธฐ๋ณธ๊ฐ’: ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ)
  • commits: ๊ฐ€์ ธ์˜ฌ ์ตœ๊ทผ ์ปค๋ฐ‹ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 5)
  • since: ํŠน์ • ์ปค๋ฐ‹ยทํƒœ๊ทธ ์ดํ›„ ๋ฒ”์œ„ ์ง€์ • (์˜ˆ: v0.19.0, HEAD~10)
  • include_diff: ์ฝ”๋“œ diff ํฌํ•จ ์—ฌ๋ถ€ (๊ธฐ๋ณธ๊ฐ’: true)
  • max_diff_lines: diff์—์„œ ๊ฐ€์ ธ์˜ฌ ์ตœ๋Œ€ ์ค„ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 200)
  • tags: ํฌ์ŠคํŠธ์— ๋„ฃ์„ ํƒœ๊ทธ ํžŒํŠธ (๋ฏธ์ง€์ • ์‹œ ํŒŒ์ผ ํ™•์žฅ์ž๋กœ ์ž๋™ ์ถ”๋ก )

GitHub ๋ธ”๋กœ๊ทธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

Jekyll / Hugo ๋“ฑ front matter๊ฐ€ ์žˆ๋Š” ๋งˆํฌ๋‹ค์šด์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. dry_run: true๋กœ ๋จผ์ € ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋‚˜: "๋‚ด ๊นƒํ—ˆ๋ธŒ ๋ธ”๋กœ๊ทธ _posts ํด๋” ๊ธ€๋“ค์„ ๋ฒจ๋กœ๊ทธ ์ดˆ์•ˆ์œผ๋กœ ์˜ฎ๊ฒจ์ค˜"
  • ์ƒ๋Œ€ ๊ฒฝ๋กœ ์ด๋ฏธ์ง€๋Š” GitHub raw URL๋กœ ์ž๋™ ๋ณ€ํ™˜
  • Private ์ €์žฅ์†Œ๋Š” github_token ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ ‘๊ทผ

GitHub API ํ•œ๋„ ์ดˆ๊ณผ ์‹œ

ํ† ํฐ ์—†์ด ์‚ฌ์šฉํ•˜๋ฉด 60ํšŒ/์‹œ๊ฐ„ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. dry_run: true ํ•œ ๋ฒˆ๋งŒ์œผ๋กœ๋„ ํ•œ๋„์˜ ์ƒ๋‹น ๋ถ€๋ถ„์ด ์†Œ์ง„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด github_token์„ ๋ฐœ๊ธ‰ํ•ด ์ „๋‹ฌํ•˜์„ธ์š”.

ํ† ํฐ ๋ฐœ๊ธ‰: GitHub โ†’ Settings โ†’ Developer settings โ†’ Personal access tokens โ†’ Tokens (classic) โ†’ Generate new token

  • ๊ณต๊ฐœ ์ €์žฅ์†Œ: ์Šค์ฝ”ํ”„ ์—†์ด ์ƒ์„ฑํ•ด๋„ ๋˜์ง€๋งŒ, public_repo๋ฅผ ์ฒดํฌํ•˜๋ฉด ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค
  • ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ: repo ์ฒดํฌ

ํ† ํฐ์„ ์ „๋‹ฌํ•˜๋ฉด 5,000ํšŒ/์‹œ๊ฐ„์œผ๋กœ ํ•œ๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

์ธ์ฆ

  • access_token: ~24์‹œ๊ฐ„ TTL, Velog ์„œ๋ฒ„๊ฐ€ ์ž๋™ ๊ฐฑ์‹ 
  • refresh_token: ~30์ผ TTL. ๋งŒ๋ฃŒ ์‹œ npx -p velog-mcp-claude velog-mcp-setup ์žฌ์‹คํ–‰

์ฃผ์˜์‚ฌํ•ญ

  • draft๋Š” MCP ์„œ๋ฒ„ ์„ธ์…˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋จ. ์žฌ์‹œ์ž‘ ์‹œ ์†Œ๋ฉธ, 24์‹œ๊ฐ„ ํ›„ ์ž๋™ ๋งŒ๋ฃŒ.
  • ๋ณด์กดํ•˜๋ ค๋ฉด velog_publish_post(is_private: true)๋กœ ๋น„๊ณต๊ฐœ ์ €์žฅ.

๋กœ๋“œ๋งต

docs/roadmap.md ์ฐธ๊ณ .

๋ฉด์ฑ… ์กฐํ•ญ

๋‚ด๋ถ€ GraphQL API๋ฅผ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋งํ•˜์—ฌ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. API ๊ตฌ์กฐ ๋ณ€๊ฒฝ์œผ๋กœ ์˜ˆ๊ณ  ์—†์ด ๋™์ž‘์ด ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.