微信mcp服务,实现消息收发 (WeChat MCP service implementing message sending and receiving)
The WeChat MCP server has 7 tools with basic definitions but significant quality gaps. Most tools have descriptions and schemas, but parameter descriptions are incomplete or generic. Naming is reasonably clear (verb_noun style), but parameter documentation is sparse. Output schemas are not documented. Error handling is minimal, no recovery guidance or validation feedback visible in code. The server exposes raw database/API complexity to the agent without abstraction.
Get the most recent WeChat messages from a specific contact or group
Get list of WeChat contacts
Get list of WeChat groups
Get WeChat messages from a specific contact or group with optional time range and pagination filtering
Send a file to a WeChat contact or group
Send a message to a WeChat contact or group
Execute custom SQL queries against WeChat message database
Missing output schema documentation for all tools. LLMs cannot anticipate response structure or plan chained calls.
Parameter 'sql' in sql_wechat_message accepts arbitrary SQL with no validation or injection protection visible. Agents can inject malicious queries.
No pagination support or result limits visible. get_wechat_message and get_wechat_contacts could return unbounded datasets, exhausting context windows.
Parameter descriptions are generic or missing detail. 'name' parameter lacks guidance on format, uniqueness, or resolution strategy. LLMs cannot distinguish contact names from group names without calling both tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling guidance visible. Code does not show recovery hints (e.g., 'Contact not found. Try get_wechat_contacts() first.').
send_wechat_message and send_wechat_file lack dry-run or confirmation steps. Agents cannot preview messages before sending; errors cause irreversible side effects.
Parameter 'start_createtime' and 'end_createtime' descriptions mention ISO format but do not specify if timezone is required or how null/empty strings are handled. Code shows both '' and None accepted; inconsistent.
get_wechat_contacts and get_wechat_groups lack descriptions entirely (under 20 chars). LLMs cannot determine when to call them vs other discovery tools.