MCP server for automatically creating blog posts in your tech blog
This server has mixed quality. Tool names are action-verb clear and well-formed (create_blog_post, patch_blog_post, get_all_tags). Descriptions are present in Chinese and broadly adequate (ranging 15 - 186 chars). However, schemas lack several critical elements: no output schemas are documented anywhere; parameters have descriptions but some are sparse; no error handling guidance is visible; no input validation or recovery paths are specified. The tools themselves are reasonably well-defined in JSON Schema with proper type declarations and nested object structures for the batch tool. But the absence of documented output schemas, missing error handling patterns, and lack of tool annotations (destructiveHint, idempotentHint) for write operations significantly limit production readiness. A blog creation tool that modifies state (create_blog_post, patch_blog_post) should declare destructiveHint or at minimum warn about side effects, neither is present.
在你的技术博客中创建新文章
批量创建多篇博客文章
查询博客中所有的标签(tags)
根据文章 URL 读取文章内容后做局部修改(不整篇替换)。传入文章链接和若干「查找-替换」对,只修改匹配到的部分。
Output schemas not documented. No tool response schema is visible in the code. mcp-server.ts shows hardcoded response text but no structured return type definitions. Agents cannot plan downstream calls or extract typed fields.
Write operations lack destructive/side-effect annotations. create_blog_post and patch_blog_post modify persistent state but have no toolAnnotations (destructiveHint, idempotentHint). Agents cannot reason about retry safety or transaction semantics.
No error handling guidance. The sendResponse() method returns error.code=-1 and error.message for all failures, but provides no recovery hints (e.g., 'Try search_blogs() first', 'Retry eligible'). Agents get no guidance on what to do after a failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 53 | 2024-11-05+ | v1 |
Missing parameter constraints and formats. 'date' parameter accepts ISO 8601 but has no format constraint (e.g., format: 'date-time'); 'readTime' has no min/max bounds. LLMs can pass invalid dates or negative read times.
Batch tool lacks per-item failure reporting. create_multiple_blog_posts returns aggregate success/fail count, but the detailed JSON result is dumped as-is. If 3 of 10 articles fail, the agent cannot isolate which ones or retry selectively, it must retry all or lose partial progress.
No documented pagination or limits. get_all_tags returns all tags with no pagination control. If the blog has thousands of tags, this wastes tokens and risks context window exhaustion.