wecom-bot-mcp-server
A Python server implementation for WeCom (WeChat Work) bot that follows the Model Context Protocol (MCP). This server provides a standardized interface for handling automated messaging and context-aware interactions within enterprise WeChat environments.
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| send_message Send message to WeCom with optional @mentions.
MENTION USERS:
When users want to notify/remind/cc someone, convert their intent to <@userid> syntax:
- "remind Zhang San" → Add <@zhangsan> in content, use msg_type='markdown'
- "notify @alice and @bob" → Add <@alice> <@bob> in content, use msg_type='markdown'
- "let everyone know" → Add <@all> in content, use msg_type='markdown'
User ID conventions:
- Chinese names → pinyin: "张三" → "zhangsan", "李四" → "lisi"
- English names → lowercase: "Alice" → "alice"
- Explicit usernames → preserve: "@zhangwei" → "zhangwei"
Args:
content: Message content. Include <@userid> for mentions in markdown mode.
Examples: "Hi <@zhangsan>, please review!" or "<@all> Team meeting at 3 PM"
msg_type: Message type. Use 'markdown' for @mentions, 'markdown_v2' for general content.
mentioned_list: User IDs to mention (only for text messages).
mentioned_mobile_list: Mobile numbers to mention (only for text messages).
bot_id: Bot identifier for multi-bot setups. If None, uses the default bot.
Returns:
dict: Response with status and message
Raises:
WeComError: If sending message fails
| write | true | unknown |
| send_wecom_file Send file to WeCom.
Args:
file_path: Path to the file to send
bot_id: Bot identifier for multi-bot setups. If None, uses the default bot.
Returns:
dict: Response with file information and status
Raises:
WeComError: If file sending fails
| write | true | unknown |
| send_wecom_template_card_news_notice MCP tool wrapper for sending a news_notice template card. | write | true | unknown |
| send_wecom_image Send image to WeCom.
Args:
image_path: Path to the image file to send
bot_id: Bot identifier for multi-bot setups. If None, uses the default bot.
Returns:
dict: Response with image information and status
Raises:
WeComError: If image sending fails
| write | true | unknown |
| send_wecom_template_card_text_notice MCP tool wrapper for sending a text_notice template card.
The structure of the template card fields follows the WeCom template_card
documentation and notify-bridge examples.
| write | true | unknown |
| list_wecom_bots List all configured WeCom bots.
Use this tool to discover available bots before sending messages.
Each bot has an id, name, and optional description.
Returns:
dict: Contains 'bots' list and 'count' of available bots.
Each bot entry has: id, name, description, has_webhook
| read | false | unknown |
- repohttps://github.com/loonghao/wecom-bot-mcp-server
- homepagehttps://loonghao.github.io/wecom-bot-mcp-server/
- licenseMIT
- adoption98 stars · 19 forks
The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.
Add the “as seen on MCPExplorer” badge to your README.
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →