An MCP server that automates WeChat on macOS using the Accessibility API and screen capture. It enables LLMs to interact with WeChat chats programmatically.
Features
- 📨 Fetch recent messages from any chat (contact or group)
- ✍️ Send automated replies based on chat history
- 📷 Publish text-only Moments posts, with optional draft-only mode
- 👥 Add contacts using WeChat ID with configurable privacy
- 🔍 Smart chat search with exact name matching
- 🤖 5 specialized Claude Code sub-agents for smart WeChat automation
Quick Start
Installation
pip install wechat-mcp-server
Setup with Claude Code
# If installed via pip
claude mcp add --transport stdio wechat-mcp -- wechat-mcp
# If using uv for development
claude mcp add --transport stdio wechat-mcp -- uv --directory $(pwd) run wechat-mcp
Setup with Claude Desktop
// If installed via pip
{
"mcpServers": {
"wechat-mcp": {
"type": "stdio",
"command": "wechat-mcp"
}
}
}
// If using uv for development
{
"mcpServers": {
"wechat-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"{path/to/wechat-mcp}",
"run",
"wechat-mcp"
],
}
}
}
Setup with Codex
# If installed via pip
codex mcp add wechat-mcp -- wechat-mcp
# If using uv for development
codex mcp add wechat-mcp -- uv --directory $(pwd) run wechat-mcp
macOS Permissions
⚠️ Important: Grant Accessibility permissions to your terminal:
- Open System Settings → Privacy & Security → Accessibility
- Add your terminal application (Terminal.app, iTerm2, etc.)
- Ensure WeChat is running before using the server
Usage
Basic Commands
# Run with default stdio transport
wechat-mcp --transport stdio
# Run with HTTP transport
wechat-mcp --transport streamable-http
# Run with SSE transport
wechat-mcp --transport sse
Available MCP Tools
fetch_messages_by_chat- Get recent messages from a chatreply_to_messages_by_chat- Send a reply to a chatadd_contact_by_wechat_id- Add a new contact using a WeChat ID and send a friend requestpublish_moment_without_media- Publish a text-only Moments post (no photos or videos); optionally only prepare a draft without posting viapublish=False
See detailed API documentation for full tool specifications.
Claude Code Sub-Agents
This project includes 5 intelligent sub-agents designed specifically for WeChat automation. They enable natural language control of WeChat through Claude Code.
Available Sub-Agents
- Chat-summarizer - Summarize chat history and extract key information
- Auto-replier - Auto-generate and send appropriate replies
- Message-searcher - Search chat history for specific content
- Multi-chat-checker - Monitor multiple chats and prioritize messages
- Chat-insights - Analyze relationship dynamics and communication patterns
📖 View complete sub-agents guide
Development
Local Setup with uv
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and setup
git clone https://github.com/yourusername/WeChat-MCP.git
cd WeChat-MCP
uv sync
# Run locally
uv run wechat-mcp --transport stdio
Documentation
- 📘 Detailed Guide - Complete API documentation and architecture
- 🤖 Sub-Agents Guide - How to use Claude Code sub-agents
Requirements
- macOS (uses Accessibility API)
- WeChat for Mac installed and running
- Python 3.12+
- Accessibility permissions for terminal
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details
Metadata
Release files for wechat-mcp-server 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wechat_mcp_server-0.2.0.tar.gz | 154.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wechat_mcp_server-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 178.1 kB
Release files / wechat_mcp_server-0.2.0.tar.gz
| Download URL | wechat_mcp_server-0.2.0.tar.gz |
|---|---|
| Size | 154.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1309811d63ee23c96206ed4ffbc5b2fdbb18024f38d1d625da28170651b7491d
|
|
BLAKE2b-256 checksum How to use checksums |
05a408b259075ce742f29757b7a301c6b685079f25fee245711c5fb9fa2f370d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.
Transparency logRelease files / wechat_mcp_server-0.2.0-py3-none-any.whl
| Download URL | wechat_mcp_server-0.2.0-py3-none-any.whl |
|---|---|
| Size | 23.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
940bcc507ed6f8b90af83da7810ecf6f3664e431027c396ee1b47bf2bb686625
|
|
BLAKE2b-256 checksum How to use checksums |
3ae2ae291b2c5728bfa72d7ecf8e098135f41f4c35791bb78708d1dfe647e918
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.
Transparency log