面向 AI Agent 的微信公众号文章阅读工具,提供 CLI、MCP server 和 Python API。(WeChat article reader for AI agents, providing CLI, MCP server, and Python API.)
The server defines 3 tools with complete input schemas and descriptions, but quality varies. All tools start with action verbs (read_, open_, list_) which is good. However, descriptions are functional but generic (10-100 chars), and lack LLM optimization details like when to use each tool, prerequisites, and dependencies between them. The read_article and open_article tools have nearly identical parameters and similar descriptions, creating confusion about their distinct use cases. Parameter descriptions are present but minimal. Output schemas are not documented anywhere in the visible code, which violates the 'documented return types' baseline (100% of A+ tools have this). Error handling is mentioned as a feature but not visible in the code sample provided.
List attachable WeChat browser tabs from the Chrome DevTools Protocol endpoint, optionally filtered to WeChat-only tabs.
Open a WeChat article in the browser and report current page status without waiting for full content extraction.
Read a WeChat article, returning full content including title, author, content, and metadata.
read_article and open_article have near-identical parameter sets and ambiguous descriptions. LLMs cannot clearly distinguish when to use each tool. Descriptions do not explain: read_article extracts full content, while open_article only reports page status without waiting for extraction.
Output schemas are not documented in the visible code. The tool descriptions say 'returning full content including title, author, content, and metadata' but the actual response structure (fields, types, pagination, nested objects) is never defined. LLMs cannot plan downstream calls or extract data reliably.
Parameter descriptions are minimal and under 20 characters for most params. E.g., 'Timeout in seconds', 'Browser family to launch when launch mode is used', 'Target a specific browser tab by ID'. These lack context about expected ranges, when to use them, and what happens if omitted.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2025-06-18+ | v2 |
Tool descriptions do not explain prerequisites, dependencies, or when one tool should be called instead of another. E.g., 'Call list_wechat_tabs first to discover available browser connections', or 'read_article requires the browser to be running; if attach strategy fails, retry with launch strategy'.
No enum constraints documented for strategy parameter ('auto', 'attach', 'launch', 'playwright') or channel parameter ('chrome', 'chromium'). While the schema includes enums, parameter descriptions do not explain what each option does or when to use it. LLMs must guess.
Timeout parameter lacks guidance: no specified minimum (schema says >=1), no typical range (30 seconds? 5 seconds?), no explanation of what happens on timeout. wait_for_manual_verify similarly lacks context, why 0-N seconds? What happens at 0?