WeChat Local Agent MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WECHAT_CLI_RELEASE_ZIP | No | Path to a local zip file of the wechat-cli release, used for offline installation. | |
| WECHAT_CLI_RELEASE_SHA256 | No | SHA256 checksum of the wechat-cli release zip, used to verify the offline zip. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| statusB | Check live-read readiness and opt-in enrichment capabilities without identity paths. |
| sessionsB | List sessions; use type_filter=group for group-chat workflows. |
| resolve_chatC | Resolve a display name to a stable talker; prefer type_filter=group when applicable. |
| searchB | Search local messages with optional chat, sender, type, and half-open time range. |
| timelineA | Read one bounded timeline page; loop with data.page.next_cursor until done. |
| read_chat_rangeA | Read one stable page inside an explicit [after,before) range; reuse next_cursor. |
| read_chat_dayB | Read one page for a day/natural period; loop with next_cursor until data.page.done. |
| read_multiple_chats_dayA | Read one page per chat for the same day; continue each chat with returned cursors. |
| count_messagesB | Count a bounded period without returning bodies; scans stable 200-message pages. |
| unreadB | List unread sessions, optionally restricted to group/private chats. |
| read_eventsA | Read one incremental event batch; no follow loop, sending, or UI control. |
| group_membersB | List group members and group nicknames for a resolved group chat. |
| contextB | Read bounded context around exactly one stable message anchor. |
| message_detailsB | Expand one message, including safe quote/forward/link/file structures without debug secrets. |
| message_mediaC | Locate existing local message media paths; requires WECHAT_MCP_ENABLE_MEDIA=1. |
| ocr_message_imagesC | OCR readable local images with macOS Vision; explicit MEDIA and OCR opt-in required. |
| extract_message_filesA | Extract text from local txt/PDF/Office files; explicit MEDIA and FILE_TEXT opt-in required. |
| fetch_message_linksB | Fetch public HTTPS links referenced by one message; explicit NETWORK opt-in required. |
| transcribe_message_voiceA | Transcribe a local voice file using a user-configured argv-only local transcriber. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools have clear, distinct purposes, especially the specialized enrichment tools (OCR, file extraction, voice transcription). The four message-reading tools (timeline, read_chat_range, read_chat_day, read_multiple_chats_day) are similar but their range semantics and usage patterns differ enough that descriptions should guide correct selection.
The majority of tools use a verb_noun pattern (read_chat_range, count_messages, resolve_chat), but a few single-word noun-style names (timeline, unread, context, status, sessions, search) and noun_noun names (message_details, message_media) break the pattern. The inconsistency is noticeable but not chaotic.
At 19 tools, the surface is on the heavier side but still scoped to a single domain (local WeChat data access). Each tool addresses a concrete feature, though some could potentially be merged (e.g., the reading paging tools), making the count borderline.
The tool set covers a comprehensive range of read-only operations: browsing, searching, counting, unread sessions, incremental events, context expansion, message details, and multiple enrichment capabilities (media, OCR, file text, links, voice). It lacks sending or UI control, which appears intentionally out of scope, leaving no major functional gaps for a local agent.