MCP server: read public WeChat Official Account articles, view their images locally
Two tools with basic schemas and minimal descriptions. read_wechat_article and view_wechat_image both have single string parameters with type definitions, but descriptions are extremely terse (under 50 chars each). No output schemas documented. No error handling guidance. No parameter constraints (enums, ranges). Tool names follow verb_noun pattern but lack clarity on what 'read' vs 'view' return. No idempotency hints or destructive operation markers. Security validation is strong (SSRF checks, domain whitelist) but not exposed in tool descriptions.
article -> markdown with image placeholders
image URL -> MCP ImageContent
Tool descriptions are under 50 characters and lack context. 'article -> markdown with image placeholders' and 'image URL -> MCP ImageContent' do not explain WHEN to use each tool, what format the output is, or dependencies between them.
No output schema documented. LLMs cannot plan downstream operations or extract fields from responses. What fields does read_wechat_article return? Is it {markdown: string, images: [...]}? Unknown.
Parameter descriptions are missing. The 'url' parameter in both tools has a description, but it is minimal and does not explain format constraints, examples of valid URLs, or what happens if the URL is invalid.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
No error handling guidance. If a URL fails validation (not mp.weixin.qq.com or *.qpic.cn), what error does the LLM receive? How should it recover? Code shows validation but tool descriptions do not guide the agent.
No tool annotations (readOnlyHint, idempotentHint). Both tools are read-only and idempotent, but this is not declared in the tool definition. LLMs cannot infer safety properties.