Skip to main content
Glama

Velog MCP

Codex, Claude 등 MCP 클라이언트에서 Velog 글을 조회하고, 안전하게 초안·비공개 글을 작성하며, 로컬 검색·Markdown 내보내기를 제공하는 stdio MCP 서버입니다.

기능

구분

내용

조회

공개 글 목록, 본문, 키워드 검색

작성

초안 생성, 비공개 글 발행

Markdown 검사

제목 구조, 코드 펜스, 링크·이미지 접근성, 시크릿 패턴 검사

로컬 아카이브

공개 글 동기화, 키워드 검색, Markdown 내보내기

공개 발행은 기본으로 제공하지 않습니다. 서버를 시작할 때 VELOG_ALLOW_PUBLIC=1을 명시해야만 활성화됩니다.

Related MCP server: velog-mcp

설치

Windows와 Node.js 26.12.1 이상이 필요합니다.

npm install -g @emprimula/velog-mcp

Velog 계정 연결

velog-auth setup

명령을 실행하면 Velog 로그인 페이지가 열립니다. 로그인한 다음 개발자 도구에서 아래 위치의 refresh_token 값을 복사해 숨김 입력창에 붙여넣으세요.

F12 → Application → Cookies → https://velog.io → refresh_token

토큰은 현재 Windows 사용자에게만 복호화 가능한 DPAPI 형식으로 저장됩니다. 채팅이나 MCP 설정 파일에 토큰을 넣지 마세요.

velog-auth status
velog-auth logout

MCP 클라이언트 연결

Codex

codex mcp add velog -- velog-mcp

등록 후 Codex를 다시 시작하거나 새 채팅을 열면 됩니다.

Claude Desktop 등

MCP 설정에 아래 stdio 서버를 추가한 뒤 클라이언트를 다시 시작하세요.

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

이 서버는 PC에서 실행됩니다. 원격 MCP 서버나 Claude 웹 커넥터에는 바로 연결할 수 없습니다.

사용 예시

MCP 클라이언트에 다음처럼 요청합니다.

내 Velog 공개 글을 로컬에 동기화하고, database 키워드가 포함된 글을 찾아줘.

도구를 직접 호출한다면 다음 순서입니다.

velog_sync_local_index
{ "username": "내-velog-사용자명" }
velog_search_local_index
{ "username": "내-velog-사용자명", "query": "database", "limit": 10 }

동기화한 글을 Markdown 파일로 내보낼 수도 있습니다.

velog_export_local_posts
{ "username": "내-velog-사용자명" }

인덱스와 내보낸 파일은 %LOCALAPPDATA%\velog-mcp 아래에 저장됩니다. 직접 수정한 Markdown 파일은 다음 내보내기에서 덮어쓰지 않고 충돌로 표시합니다.

도구

도구

설명

변경 사항

velog_list_posts

공개 글 목록 조회

없음

velog_get_post

글 본문 조회

없음

velog_search_posts

Velog 공개 글 검색

없음

velog_format_markdown

발행 전 Markdown 검사

없음

velog_create_draft

초안 미리보기·생성

confirm: true일 때 초안 생성

velog_publish_post

글 미리보기·발행

기본 비공개, confirm: true 필요

velog_sync_local_index

공개 글을 로컬 인덱스에 동기화

로컬 파일 생성·갱신

velog_search_local_index

로컬 인덱스 키워드 검색

없음

velog_export_local_posts

동기화된 글을 Markdown으로 내보내기

로컬 파일 생성·갱신

안전 장치

  • 쓰기 작업은 confirm: true가 없으면 미리보기만 반환합니다.

  • 시크릿처럼 보이는 값이 본문에 있으면 쓰기 전에 차단합니다.

  • 뮤테이션 요청은 자동 재시도하지 않습니다.

  • Velog가 갱신한 refresh_token을 보내면 암호화 저장소도 갱신합니다.

  • 로컬 인덱스에는 Velog가 비공개로 표시한 글을 넣지 않습니다.

자동화 환경에서는 VELOG_REFRESH_TOKEN 환경 변수를 사용할 수 있습니다. 이 값은 암호화 저장소보다 우선하지만, 서버가 로컬에 저장하지는 않습니다.

개발

pnpm install
pnpm run typecheck
pnpm run build
pnpm test

실제 비공개 발행과 읽기 검증은 테스트 계정에서만 실행하세요.

pnpm run smoke:velog -- --confirm

이 명령은 고유한 비공개 테스트 글 하나를 만들고, 다시 읽어 검증합니다.

제한 사항

  • Velog GraphQL API는 공식 문서가 없는 내부 API이므로 예고 없이 변경될 수 있습니다.

  • 현재 계정 연결 도우미는 Windows만 지원합니다.

  • 시맨틱 검색은 제공하지 않습니다.

  • 이 프로젝트는 Velog 또는 Chaf Inc.와 관련이 없습니다.

라이선스

MIT

Available Tools

9 tools
velog_create_draftB

Preview or create a private Velog draft. Writing requires confirm=true.

NameRequiredDescriptionDefault
bodyYes
tagsNo
titleYes
confirmNo
urlSlugNo

TDQS

B3.2/5.0
Behavior3/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. It usefully discloses that created content is a private draft (not published) and that a confirm gate guards the write, which is meaningful behavioral context. It omits auth requirements, what preview returns, and behavior on slug conflicts, so disclosure remains incomplete for a mutating tool.

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?

Two short, front-loaded sentences with zero filler. The purpose leads and the gating constraint follows immediately.

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 5-parameter mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin. It doesn't clarify urlSlug/tags semantics, preview return shape, or failure modes, so an agent cannot call it with full confidence.

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

Parameters2/5

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

Schema description coverage is 0% across 5 parameters. The description explains only 'confirm' (must be true for writing); title and body are self-evident, but tags and especially urlSlug receive no semantic explanation anywhere, leaving notable gaps.

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?

States a specific verb and resource ('create a private Velog draft') and disambiguates draft from published content via 'private'. It does not explicitly name velog_publish_post as the publish alternative, but the draft/private framing implicitly differentiates it from the publish sibling.

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 sentence 'Writing requires confirm=true' gives a concrete gating condition for when actual creation occurs, and 'Preview or create' implies confirm=false yields a preview. However, it never states when to use this vs. velog_publish_post or how preview output differs, leaving usage coverage partial.

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

velog_export_local_postsB

Export posts already synced into the local index as Markdown files without making a network request.

NameRequiredDescriptionDefault
usernameYes

TDQS

B3/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden. It usefully discloses the no-network trait, but for a tool that writes files to disk it says nothing about where files land, whether existing files are overwritten, or how errors surface — the details an agent most needs before invoking a filesystem mutation.

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?

A single tight sentence with the key scoping constraints (local index, no network) front-loaded. Every clause earns its place and nothing is wasted.

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?

With no annotations, no output schema, and zero parameter documentation, the description is too thin for an export tool. An agent cannot determine the destination of the exported Markdown, the meaning of 'username', or whether a prior sync is required before calling it.

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

Parameters2/5

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

Schema description coverage is 0%, and the single parameter 'username' is never mentioned in the description. The one input that determines whose posts get exported is left entirely unexplained, with no indication of whether it is a blog identifier, an account name, or what happens with an unknown user.

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?

States a specific verb (Export) and resource (posts already synced into the local index) with the output form (Markdown files). The phrase 'already synced into the local index' implicitly separates it from network-facing siblings like velog_list_posts and velog_get_post, though no sibling is named explicitly.

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 'without making a network request' clause implies when this tool is preferable to network-backed siblings, and 'already synced' hints that velog_sync_local_index must run first. However, neither the prerequisite nor the alternative tools are named, so the routing guidance is only implied.

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

velog_format_markdownC

Audit Velog Markdown for structure, accessibility, and secret-like content before saving.

NameRequiredDescriptionDefault
bodyYes
tagsNo
titleYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. 'Audit' implies a read-only check, but it never states whether the body is modified, whether findings block a save, what severity levels exist, or what the response looks like. For a validation tool invoked before a write, the absence of any statement about mutability or output is a real gap.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, and the three audit dimensions are enumerated compactly. It is efficient, though the brevity is part of why other dimensions are underspecified.

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?

No annotations, no output schema, and 0% parameter documentation. The description should therefore explain what an audit returns and whether it alters input, and it does neither. An agent cannot tell what to do with the result or how it relates to the create/publish siblings.

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

Parameters2/5

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

Schema description coverage is 0% for three parameters, and the description mentions none of them. 'Velog Markdown' loosely implies the body is the audited content, but title, tags, and their constraints (max lengths, tag limits) get no semantic treatment anywhere. The description does not compensate for the coverage gap.

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

Purpose3/5

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

The description gives a specific verb ('Audit') and resource ('Velog Markdown') plus the three check categories (structure, accessibility, secret-like content). However, it conflicts with the tool name 'velog_format_markdown', which suggests reformatting rather than auditing — an agent reading the name may expect the content to be rewritten. That tension leaves the core purpose only partially resolved.

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?

'before saving' hints at a workflow position but names no alternative. Siblings like velog_create_draft and velog_publish_post are obvious candidates for a 'run this first, then call X' instruction, and none are referenced. No when-not conditions are given either.

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

velog_get_postB

Read one public Velog post, including its Markdown body.

NameRequiredDescriptionDefault
urlSlugYes
usernameYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose two useful behavioral facts: only public posts are readable (so drafts/private content is out of scope) and the response includes the Markdown body. It says nothing about behavior on missing/private posts, authentication requirements, or rate limits.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the scope qualifier ('public') and the return content ('Markdown body') are packed in efficiently. Brevity borders on under-specification, but nothing written is wasted.

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 two-required-param tool with no annotations, no output schema, and 0% schema coverage, the description is too thin. An agent still lacks any explanation of the parameters or of failure modes, which the structured fields do not supply.

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

Parameters2/5

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

Schema description coverage is 0% with two required parameters (username, urlSlug), so the description must compensate and does not. It never explains that username is the author handle and urlSlug is the post identifier, leaving both fields semantically undocumented.

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?

States a concrete verb and resource: 'Read one public Velog post, including its Markdown body.' The word 'one' and 'public' implicitly separate it from velog_list_posts and velog_search_posts, but no sibling is named explicitly.

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?

Usage is only implied: an agent can infer this is the tool for fetching a single known post by username/urlSlug rather than searching or listing. There is no explicit when-to-use, no when-not-to-use, and no pointer to alternatives such as velog_search_posts when the slug is unknown.

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

velog_list_postsC

List public posts for one Velog username.

NameRequiredDescriptionDefault
tagNo
limitNo
cursorNo
usernameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, and it discloses only that results are public posts. It says nothing about cursor-based pagination behavior, default result size, rate limits, or what the response includes, which are the key operational traits for a listing tool.

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

Conciseness3/5

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

A single front-loaded sentence with zero waste, but the brevity reflects under-specification rather than discipline — the pagination and filtering mechanics an agent needs are absent.

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 4-parameter listing tool with no annotations and no output schema, the description leaves pagination, filtering, result shape, and limits entirely unaddressed. An agent could invoke it but cannot predict behavior or page through results correctly.

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

Parameters2/5

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

Schema description coverage is 0% across 4 parameters, so the description must compensate but only covers 'username'. The tag filter, limit (default 20, max 50), and cursor pagination are completely unexplained in both the schema and 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 gives a specific verb ('List') and resource ('public posts'), and scopes it to a single Velog username, which cleanly separates it from velog_get_post (single post) and velog_search_posts. It does not explicitly name those siblings, which keeps it below a 5.

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?

There is no statement of when to use this versus velog_search_posts, velog_search_local_index, or velog_get_post, and no prerequisites or exclusions. The agent must infer the choice 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_publish_postB

Preview or publish a private Velog post. Writing requires confirm=true.

NameRequiredDescriptionDefault
bodyYes
tagsNo
titleYes
confirmNo
urlSlugNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It usefully discloses that posts are private and that confirm=true is a write gate, which is real value, but it omits what publishing actually does (irreversibility, whether a URL/slug is returned or reused), auth requirements, and rate limits.

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

Conciseness4/5

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

Two tight, front-loaded sentences with no filler. Brevity is a virtue here, though it shades into under-specification for a five-parameter mutation tool.

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 no annotations, no output schema, and zero schema descriptions on five parameters, the definition is too thin. It should at minimum explain urlSlug behavior, what preview returns, and what distinguishes this from the sibling draft tool.

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

Parameters2/5

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

Schema description coverage is 0% across five parameters, and the description only explains one of them (confirm). title, body, tags and especially urlSlug (unique? auto-generated? collision behavior?) get no semantic help from either the schema or 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?

Specific verb pair (preview/publish) plus resource (a private Velog post), so the agent knows this is the posting tool rather than a formatting or listing one. It does not explicitly contrast itself with the sibling velog_create_draft, leaving the publish-vs-draft distinction to inference from the name.

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?

'Writing requires confirm=true' implies a preview-first flow and tells the agent one gating condition. It never states when to call this instead of velog_create_draft, nor whether confirm=true can be set on the first call or whether a preview must precede it.

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

velog_search_local_indexC

Search posts previously synced into the local keyword index.

NameRequiredDescriptionDefault
limitNo
queryYes
usernameYes

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 the full behavioral burden. It discloses the sync dependency but says nothing about matching semantics (keyword vs substring), read-only safety, behavior on an empty or stale index, or result ordering — all material for a search tool.

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

Conciseness4/5

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

One front-loaded sentence with no filler. It is efficient, though the brevity reflects under-specification rather than disciplined trimming.

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?

Three parameters with zero descriptions, no annotations, and no output schema leave the agent without essentials: which user's index is searched, how many results return, and what happens if nothing has been synced. The single sentence is not enough for this complexity.

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

Parameters2/5

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

Schema description coverage is 0% and all three parameters (username, query, limit) are bare typed fields. The description mentions neither the required username scoping nor the limit cap of 50, so it does not compensate for the schema gap.

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?

States a specific verb (search) and a specific resource (posts in the local keyword index), and 'previously synced' scopes it away from a live API search. It stops short of naming velog_search_posts as the live counterpart, so an agent must infer the distinction.

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?

'Previously synced into the local keyword index' implies a prerequisite (content must have been synced first) and hints at the sync sibling, but there is no explicit when-to-use/when-not statement or named alternative such as velog_search_posts for live results.

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

velog_search_postsB

Search public Velog posts by keyword, optionally within one username.

NameRequiredDescriptionDefault
limitNo
queryYes
usernameNo

TDQS

B3.1/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. 'Public' is a useful constraint implying no auth and no private content, but it says nothing about rate limits, pagination, result size (the schema caps limit at 50) or what a result contains.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though its brevity edges toward under-specification rather than optimal density.

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?

With no annotations, no output schema, and 0% schema description coverage, the description should explain return shape and the limit parameter. It leaves nearly all behavioral and return-value context to inference.

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 0% for three parameters. The description implicitly covers 'query' (keyword) and 'username' (optionally one username), but never mentions 'limit' or its 1–50 range, so a third of the surface remains undocumented in prose and schema alike.

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?

States a specific verb and resource ('Search public Velog posts') plus the two scoping dimensions (keyword, username). The word 'public' implicitly distinguishes it from the sibling velog_search_local_index, though the sibling is never named.

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?

'Optionally within one username' hints at the narrowing use case, but there is no explicit when-to-use/when-not guidance and no mention of the close alternative velog_search_local_index for local content. Usage is inferable rather than stated.

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

velog_sync_local_indexA

Sync all public posts for one Velog username into the local keyword index.

NameRequiredDescriptionDefault
usernameYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose meaningful behavior — scope is 'all public posts' and the effect is a write into the local keyword index — but it says nothing about rate limits, network dependence, whether the index is replaced or merged, or error handling.

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?

A single sentence that front-loads the action and scope with zero filler. Nothing could be removed without losing information.

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?

For a one-parameter tool with no annotations and no output schema, the description is minimally viable but leaves gaps: what the tool returns (count of indexed posts?), whether re-syncing duplicates or overwrites entries, and how failures surface are all unstated.

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?

With one required parameter at 0% schema description coverage, the description must compensate. It clarifies the parameter is a single Velog username, but gives no format guidance (e.g. '@' prefix, casing, URL slug vs handle) beyond the schema's length bounds.

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?

States a specific verb (sync) and resource (all public posts for one Velog username) plus the destination (local keyword index), which separates it from read-only siblings like velog_list_posts and velog_search_posts. It does not explicitly contrast with velog_export_local_posts, so it stops short of full sibling differentiation.

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?

Usage is only implied: an agent can infer this is the tool to run before velog_search_local_index, but the description never says so, nor does it state prerequisites or that only public posts are eligible. No exclusions or alternatives are named.

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. 9 tool updatesv0.1.1
    • First observedvelog_create_draft
    • First observedvelog_export_local_posts
    • First observedvelog_format_markdown
    • First observedvelog_get_post
    • First observedvelog_list_posts
    • First observedvelog_publish_post
    • First observedvelog_search_local_index
    • First observedvelog_search_posts
    • First observedvelog_sync_local_index

TDQS

B3.3/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clearly distinct purposes: public retrieval, local-index operations, markdown auditing, and draft/publish actions are separated. The closest overlaps are velog_search_posts vs. velog_search_local_index and velog_list_posts vs. velog_sync_local_index, but descriptions make the network/local distinction clear.

Naming Consistency5/5

All tools use a consistent velog_ prefix followed by snake_case verb_noun naming. The pattern is predictable throughout the set, including read, search, sync, export, create, and publish operations.

Tool Count5/5

Nine tools is well-scoped for a Velog MCP server covering public reading, local indexing, markdown validation, and draft/publish workflows. Each tool appears to earn its place without excessive fragmentation.

Completeness4/5

The set covers the core lifecycle: listing/reading/searching public posts, syncing and searching a local index, exporting synced posts, validating markdown, and creating/publishing drafts. Minor gaps remain around editing or deleting existing posts and managing private/draft listings, but the main workflows are supported.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables publishing local Markdown files to Velog with idempotent updates. Supports login, post management, and series operations through natural language.
    10
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Automates writing and publishing posts to velog.io via MCP, including login and session management.
    5
    3 npm
    MIT