MCP server for Velog blogging platform - Read, write, and manage Velog posts via Model Context Protocol
Velog-mcp has well-structured tool definitions with consistent naming (verb_noun pattern) and complete Zod schemas for all 10 tools. Descriptions are present and actionable (avg ~80 chars). However, output schemas are not documented, responses are JSON.stringify'd without field documentation, forcing LLMs to infer structure. Error handling is minimal: auth failures return plain text, API errors are not categorized or recovery-guided. Parameter descriptions are adequate but lack format constraints (e.g., no regex for url_slug, no guidance on post ID format). Destructive operations (delete_post) lack confirmation patterns. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels.
Delete a post on Velog (requires authentication)
Edit an existing post on Velog (requires authentication)
Get a user's series list on Velog
Get trending posts from Velog
Get a list of posts by a Velog user
Get a Velog user's profile information
Open a browser to log in to Velog and save authentication tokens
Output schemas not documented. Tools return JSON.stringify'd responses without field documentation. LLMs cannot infer which fields are present, their types, or how to chain results to downstream tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools have explicit Risk levels (READ_ONLY, WRITE, DESTRUCTIVE) but these are not exposed via MCP tool annotations, forcing LLMs to infer risk from descriptions alone.
Destructive operations lack confirmation pattern. delete_post accepts only a post ID with no dry-run, confirmation step, or undo mechanism. Agents can permanently delete posts without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Read a specific Velog post with full content, comments, and metadata
Search for posts on Velog by keyword
Create a new post on Velog (requires authentication)
Error handling is generic and non-actionable. Auth failures return plain text; API errors are not categorized (retryable vs fatal). LLMs receive no guidance on recovery steps or whether to retry.
Parameter format constraints missing. url_slug, post ID, and series_id lack format descriptions (regex, length, character restrictions). LLMs cannot validate inputs before calling tools.