Skip to main content
Glama

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 권한으로 저장됩니다.

Related MCP server: velog-mcp

설정

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 참고.

기능 제안

원하는 기능이 있으면 기능 제안 이슈로 남겨 주세요. 먼저 로드맵과 기존 이슈에 같은 제안이 있는지 확인하고, 있으면 👍 반응이나 댓글로 의견을 보태 주세요.

링크로 열면 제목 앞에 [기능 제안]이 붙고 아래 양식이 자동으로 채워집니다. 각 칸을 채워 주시면 검토가 빠릅니다.

## 하고 싶은 일
Claude에게 어떤 요청을 했을 때 무엇이 되길 원하는지
예) "내 시리즈 글 순서를 발행일 순으로 바꿔줘"

## 지금 불편한 점
현재 툴로는 왜 안 되는지, 어떻게 우회하고 있는지

## 참고 (선택)
Velog 웹에서 같은 동작을 하는 화면, 관련 API 요청 등

Velog 비공개 API에 없는 동작이거나 대량 발행·스팸처럼 정상적인 블로그 활동 범위를 벗어나는 기능은 구현하지 않을 수 있습니다.

면책 조항

내부 GraphQL API를 리버스 엔지니어링하여 구현되었습니다. API 구조 변경으로 예고 없이 동작이 중단될 수 있습니다.

Available Tools

6 tools
velog_delete_postC

Velog 포스트를 삭제합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes삭제할 포스트 ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. '삭제합니다' implies a destructive mutation, but it doesn't disclose whether this is permanent, requires specific permissions, affects related data, or has rate limits. For a destructive operation with zero annotation coverage, this is inadequate behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose with zero waste. It's appropriately sized for a simple deletion tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after deletion (e.g., success confirmation, error handling), whether the action is reversible, or any side effects. Given the complexity and lack of structured data, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'post_id' clearly documented as '삭제할 포스트 ID' (post ID to delete). The description doesn't add any additional parameter context beyond what the schema provides, which is acceptable given the high coverage. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('삭제합니다' - deletes) and resource ('Velog 포스트' - Velog post), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like velog_update_post or velog_publish_post, which also operate on Velog posts but with different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., needing to own the post), when deletion is appropriate versus updating, or what happens after deletion. With siblings like velog_update_post and velog_publish_post available, this gap is significant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

velog_draft_postB

Velog 포스트 초안을 세션 메모리에 저장합니다. 발행 전 사용자가 검토할 수 있도록 draft_id를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes포스트 제목
bodyYes마크다운 본문
tagsNo태그 목록
is_privateNo비공개 여부 (기본값: false)
short_descriptionNo포스트 요약

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the draft is saved to session memory and returns a draft_id for review, which is useful. However, it lacks critical details: it doesn't specify if this is a read-only or mutation operation (implied mutation but not explicit), doesn't mention authentication requirements, rate limits, or what happens to the draft after saving (e.g., expiration, storage duration). For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: it states the core action in the first sentence and the key outcome in the second. Every sentence earns its place by explaining what the tool does and why, with no redundant or vague language. It's appropriately sized for the tool's complexity, making it easy to understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description provides a basic but incomplete picture. It covers the purpose and high-level usage context but lacks behavioral details like mutation effects, authentication, or error handling. Without annotations or an output schema, the description should do more to explain the return value (draft_id usage) and operational constraints. It's minimally viable but has clear gaps for a tool that modifies data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with all parameters well-documented in the input schema (e.g., title, body, tags, is_private, short_description). The description doesn't add any parameter-specific information beyond what's in the schema, such as format details or usage examples. Given the high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't need to since the schema handles parameter semantics adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Velog 포스트 초안을 세션 메모리에 저장합니다' (saves a Velog post draft to session memory). It specifies the action (save to session memory) and resource (Velog post draft), distinguishing it from siblings like velog_publish_post (which publishes) or velog_update_post (which modifies existing posts). However, it doesn't explicitly differentiate from velog_update_post in terms of draft vs. published post editing, which could be clearer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: '발행 전 사용자가 검토할 수 있도록' (so users can review before publishing), suggesting this tool is for creating drafts prior to publication. However, it doesn't explicitly state when to use this vs. alternatives like velog_publish_post (direct publishing) or velog_update_post (editing existing posts), nor does it mention prerequisites or exclusions. The guidance is present but not comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

velog_get_postC

특정 Velog 포스트의 전체 내용을 가져옵니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
url_slugYes포스트 URL slug

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it retrieves '전체 내용' (entire content) which implies a read operation, but doesn't specify whether authentication is required, rate limits, error conditions, or what format/content is returned. For a read tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a simple single-parameter tool, the description is incomplete. While it states what the tool does, it doesn't provide enough context about authentication requirements, return format, error handling, or how it differs from sibling tools. For a tool that retrieves content, the agent needs more information about what 'entire content' includes and any access constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage with a clear parameter description ('포스트 URL slug'). The description adds no additional parameter information beyond what the schema already provides. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('가져옵니다' - fetches/retrieves) and resource ('특정 Velog 포스트의 전체 내용' - entire content of a specific Velog post). It distinguishes from siblings like velog_list_posts (list vs get specific) and velog_update_post (update vs retrieve). However, it doesn't explicitly differentiate from velog_draft_post or velog_publish_post in terms of content access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when you'd use velog_get_post instead of velog_list_posts (specific post vs listing), nor does it indicate any prerequisites like authentication requirements or when this tool should not be used. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

velog_list_postsC

내 Velog 포스트 목록을 가져옵니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo가져올 포스트 수 (기본값: 20)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose aspects like authentication needs, rate limits, pagination behavior, or whether it returns all posts or a subset, which are critical for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Korean that directly states the purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It lacks details on return values (e.g., post format, metadata), behavioral traits, and differentiation from siblings, which are essential for effective tool use in this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents the 'limit' parameter with its type and default. The description adds no additional parameter semantics beyond what the schema provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('가져옵니다' - fetches/gets) and resource ('내 Velog 포스트 목록' - my Velog post list), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'velog_get_post' which might fetch a single post, leaving some ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives is provided. The description implies it's for listing posts, but it doesn't specify scenarios (e.g., browsing vs. detailed retrieval) or mention sibling tools like 'velog_get_post' for individual posts, leaving usage context unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

velog_publish_postA

초안(draft_id)을 Velog에 발행합니다. velog_draft_post 호출 후 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
draft_idYesvelog_draft_post에서 반환된 draft_id
is_privateNo비공개 발행 여부 (초안 설정 덮어씀)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions that is_private parameter '덮어씀' (overwrites) draft settings, it doesn't describe what publishing entails (e.g., makes content publicly visible, triggers notifications), potential side effects, authentication requirements, or error conditions. For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just two sentences in Korean. The first sentence states the core purpose, and the second provides crucial usage guidance. Every word earns its place with zero wasted text, making it front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description should do more to explain behavioral aspects. While it covers basic purpose and workflow prerequisites adequately, it lacks information about what publishing actually does, potential consequences, or what the tool returns. The completeness is minimal but not entirely inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema - it only reinforces that draft_id comes from velog_draft_post (already in schema) and mentions that is_private overwrites draft settings (slightly helpful context). Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('발행합니다' - publishes) and the resource ('초안' - draft), specifying it's for Velog. It distinguishes from siblings like velog_draft_post by indicating this tool publishes rather than creates drafts. However, it doesn't explicitly differentiate from velog_update_post which might also involve publishing changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool ('velog_draft_post 호출 후 사용하세요' - use after calling velog_draft_post), establishing a prerequisite workflow. It doesn't explicitly state when NOT to use it or name alternatives, but the sibling relationship is implied through the naming convention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

velog_update_postC

기존 Velog 포스트를 수정합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes수정할 포스트 ID
titleNo새 제목
bodyNo새 마크다운 본문
tagsNo새 태그 목록
is_privateNo비공개 여부
short_descriptionNo새 요약

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While '수정합니다' implies a mutation operation, it doesn't specify whether this requires authentication, what happens to unchanged fields, whether changes are reversible, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for a straightforward update operation and gets directly to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 6 parameters and no annotations or output schema, the description is inadequate. It doesn't explain what happens when fields are omitted, whether partial updates are supported, what authentication is required, or what the tool returns. The agent lacks crucial context for proper invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with all 6 parameters clearly documented in the input schema. The description adds no additional parameter information beyond what's already in the structured schema, so it meets the baseline expectation but doesn't provide extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('수정합니다' - modifies/updates) and resource ('기존 Velog 포스트' - existing Velog post), making the purpose immediately understandable. However, it doesn't differentiate from siblings like velog_draft_post or velog_publish_post, which also involve post modifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (like needing an existing post ID), nor does it clarify differences from velog_publish_post or velog_draft_post, leaving the agent to guess about appropriate usage contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedvelog_delete_post
    • First observedvelog_draft_post
    • First observedvelog_get_post
    • First observedvelog_list_posts
    • First observedvelog_publish_post
    • First observedvelog_update_post

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity: delete, draft, get, list, publish, and update are all specific actions targeting Velog posts. The descriptions reinforce this by specifying when to use each tool (e.g., velog_publish_post after velog_draft_post).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'velog_' prefix and snake_case: velog_delete_post, velog_draft_post, velog_get_post, velog_list_posts, velog_publish_post, velog_update_post. There are no deviations in naming style.

Tool Count5/5

With 6 tools, this server is well-scoped for managing Velog posts. Each tool earns its place by covering essential CRUD and lifecycle operations (drafting and publishing), avoiding both bloat and thin coverage.

Completeness5/5

The tool set provides complete CRUD and lifecycle coverage for Velog posts: create (via draft and publish), read (get and list), update, and delete. There are no obvious gaps, and the workflow from drafting to publishing is explicitly supported.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers