wxauto automation MCP Server for AI development tools - provides WeChat automation via the MCP protocol for Claude, Cursor, and other AI tools
wxauto-mcp has 19 tools with descriptions in Chinese covering WeChat automation. Tool definitions are directly visible in the source code. However, critical quality gaps limit the score: (1) Descriptions are terse and lack structured context on when/why to use tools. Most are 20-80 chars, well below the 50-200 char production baseline. (2) Parameter descriptions are minimal; many lack type clarity or constraints. (3) No output schemas are documented, responses are completely opaque to the LLM. (4) No error handling guidance, tools provide no recovery hints if they fail. (5) Security concerns: wechat_initialize and wechat_activate accept credentials as parameters (license_key), violating secret-injection patterns. (6) Naming follows verb_noun convention (good), but many parameter names lack semantic clarity (e.g., 'who' is ambiguous, is it a username, phone, or internal ID?). Overall, the tools are functional but underdocumented for agentic use, an LLM would struggle to understand when to call send_message vs send_files vs send_url_card without deeper reasoning.
接受新的好友请求。参数: content (好友请求内容,必填), exact (是否精确匹配,默认false), remark (备注名,可选), tags (标签列表,可选)
添加新好友。参数: keywords (搜索关键词,必填), addmsg (验证消息,可选), remark (备注名,可选), tags (标签列表,可选), permission (权限,可选:朋友圈/仅聊天,默认朋友圈), timeout (超时时间,默认5秒)
检查文件是否存在。参数: filepath (文件路径)
获取当前聊天窗口信息
获取好友列表。参数: n (获取数量,默认10), save_avatar (是否获取头像,默认false)
获取历史消息。参数: n (获取数量,默认50)
获取当前聊天窗口的所有消息
No output schemas documented for any tool. LLMs cannot infer response structure, field names, or types, forces agents to guess or fail. Critical for tool chaining and data extraction.
Credentials (license_key) exposed as tool parameters in wechat_initialize and wechat_activate. Violates secret-injection pattern, credentials leak into agent logs, traces, and prompt history.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
获取新的好友请求列表。参数: acceptable (是否过滤掉已接受的好友申请,默认true)
获取下一个聊天窗口的新消息。参数: filter_mute (是否过滤消息免打扰,默认false)
获取微信运行状态
批量发送消息。参数: messages (JSON数组,每项包含msg和who)
发送目录下的所有文件。参数: directory (目录路径), who (接收人,可选), pattern (文件匹配模式,默认*)
发送文件。参数: filepath (文件路径,支持逗号分隔的多个文件), who (接收人,可选), exact (精确匹配,默认false)
发送图片。参数: filepath (图片路径), who (接收人,可选)
发送文本消息。参数: msg (消息内容), who (接收人,可选), at (@对象,可选), exact (精确匹配,默认false)
发送链接卡片。参数: url (链接地址,必填), friends (发送对象,单个名称或列表,可选), message (附加消息,可选), timeout (等待时间,默认10秒)
切换到指定聊天窗口。参数: who (联系人名称), exact (精确匹配,默认false)
激活 wxautox4。参数: license_key (激活密钥, 必填)
初始化微信实例。参数: resize (自动调整窗口, 默认true), debug (调试模式, 默认false), license_key (激活密钥, 可选)
Descriptions are excessively terse and in Chinese. Median ~40-50 chars vs production baseline of 50-200 chars. Many tools are incomprehensible to non-Chinese-speaking LLMs and humans. Descriptions fail to explain when/why to use tools or what side effects occur.
Parameter 'who' used across multiple tools (send_message, switch_chat, send_files, send_image, etc.) is semantically ambiguous. Does it accept username, display name, remark, phone, or internal ID? No guidance on format or priority if multiple matches exist. Violates parameter-naming clarity rules.
No error handling or recovery guidance in any tool description. If a tool fails (user not found, file missing, send timeout), the agent has no actionable next step. Responses provide no guidance on retryability or alternatives.
Numeric parameters lack bounds. 'n' in get_history and get_friends has no min/max; 'timeout' in send_url_card and add_friend has no range. Agents could pass unreasonable values (n=999999, timeout=0 or negative).
Complex parameter 'messages' in send_bulk_messages is passed as JSON string, not structured array. Requires agent to manually serialize JSON, error-prone. Should accept array[{msg: string, who: string}] instead.
No documentation of pagination or result limits. Tools like get_messages, get_friends, get_history offer no cursor, offset, or indication of result size. Will an agent trying get_messages receive 1 message or 10,000?
Tool 'check_file_exists' is a utility that should be called before send_files/send_image/send_directory_files, but no error handling in the send tools guides the agent to this dependency. Breaks tool composition.