首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
wecom-bot-mcp-server2025-05-290分享
github
一个符合模型上下文协议(MCP)标准的微信企业机器人服务器实现方案。
By loonghao
2025-05-290
github
详情内容

MseeP.ai 安全评估徽章

WeCom Bot MCP 服务器

WeCom 机器人标志

这是一个符合模型上下文协议(MCP)的 WeCom(企业微信)机器人服务器实现。

PyPI 版本
Python 版本
代码覆盖率
代码风格:ruff
smithery 徽章

英文 | 中文

WeCom 机器人 MCP 服务器

功能特性

  • 支持多种消息类型:
    • 文本消息
    • Markdown 消息
    • 图片消息(base64 编码)
    • 文件消息
  • @提及支持(通过用户 ID 或手机号码)
  • 消息历史记录追踪
  • 可配置的日志系统
  • 完整的类型注解
  • 基于 Pydantic 的数据验证

系统要求

  • Python 3.10 或更高版本
  • WeCom 机器人 Webhook URL(从企业微信群设置中获取)

安装方式

有几种方法可以安装 WeCom Bot MCP 服务器:

1. 自动安装(推荐)

使用 Smithery(适用于 Claude Desktop):

npx -y @smithery/cli install wecom-bot-mcp-server --client claude

使用 VSCode 和 Cline 扩展:

  1. 从 VSCode 扩展市场安装 Cline 扩展
  2. 打开命令面板(Ctrl+Shift+P / Cmd+Shift+P)
  3. 搜索 "Cline: Install Package"
  4. 输入 "wecom-bot-mcp-server" 并按回车

2. 手动安装

从 PyPI 安装:

pip install wecom-bot-mcp-server

手动配置 MCP:

创建或更新您的 MCP 配置文件:

// 对于 Windsurf:~/.windsurf/config.json
{
  "mcpServers": {
    "wecom": {
      "command": "uvx",
      "args": [
        "wecom-bot-mcp-server"
      ],
      "env": {
        "WECOM_WEBHOOK_URL": "您的 Webhook URL"
      }
    }
  }
}

配置说明

设置环境变量

# Windows PowerShell
$env:WECOM_WEBHOOK_URL = "您的 Webhook URL"

# 可选配置
$env:MCP_LOG_LEVEL = "DEBUG"  # 日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL
$env:MCP_LOG_FILE = "自定义日志文件路径"  # 自定义日志文件路径

日志管理

日志系统使用 platformdirs.user_log_dir() 进行跨平台日志文件管理:

  • Windows:C:\Users\<用户名>\AppData\Local\hal\wecom-bot-mcp-server
  • Linux:~/.local/share/hal/wecom-bot-mcp-server
  • macOS:~/Library/Application Support/hal/wecom-bot-mcp-server

日志文件名为 mcp_wecom.log,存储在上述目录中。

使用方法

启动服务器

wecom-bot-mcp-server

使用示例(配合 MCP):

# 场景 1:向企业微信发送天气信息
用户:"今天深圳的天气怎么样?发到企业微信"
助手:"我将查询深圳今天的天气并发送到企业微信"

await mcp.send_message(
    content="深圳天气:\n- 温度:25°C\n- 天气:晴朗\n- 空气质量:良好",
    msg_type="markdown"
)

# 场景 2:发送会议提醒并@相关人员
用户:"提醒今天下午3点的项目评审会议,提醒张三和李四参加"
助手:"我将发送会议提醒"

await mcp.send_message(
    content="## 项目评审会议提醒\n\n时间:今天下午3:00\n地点:会议室A\n\n请准时参加!",
    msg_type="markdown",
    mentioned_list=["zhangsan", "lisi"]
)

# 场景 3:发送文件
用户:"把这个周报发到企业微信群"
助手:"我将发送周报"

await mcp.send_message(
    content=Path("weekly_report.docx"),
    msg_type="file"
)

直接 API 使用

发送消息

from wecom_bot_mcp_server import mcp

# 发送 Markdown 消息
await mcp.send_message(
    content="**Hello World!**", 
    msg_type="markdown"
)

# 发送文本消息并@用户
await mcp.send_message(
    content="Hello @user1 @user2",
    msg_type="text",
    mentioned_list=["user1", "user2"]
)

发送文件

from wecom_bot_mcp_server import send_wecom_file

# 发送文件
await send_wecom_file("/path/to/file.txt")

发送图片

from wecom_bot_mcp_server import send_wecom_image

# 发送本地图片
await send_wecom_image("/path/to/image.png")

# 发送 URL 图片
await send_wecom_image("https://example.com/image.png")

开发指南

设置开发环境

  1. 克隆仓库:
git clone https://github.com/loonghao/wecom-bot-mcp-server.git
cd wecom-bot-mcp-server
  1. 创建虚拟环境并安装依赖:
# 推荐使用 uv
pip install uv
uv venv
uv pip install -e ".[dev]"

# 或者使用传统方法
python -m venv venv
source venv/bin/activate  # Windows:venv\Scripts\activate
pip install -e ".[dev]"

测试

# 使用 uv(推荐)
uvx nox -s pytest

# 或者使用传统方法
nox -s pytest

代码风格检查

# 检查代码
uvx nox -s lint

# 自动修复代码风格问题
uvx nox -s lint_fix

构建与发布

# 构建包
uv build

# 构建并发布到 PyPI
uv build && twine upload dist/*

项目结构

wecom-bot-mcp-server/
├── src/
│   └── wecom_bot_mcp_server/
│       ├── __init__.py
│       ├── server.py
│       ├── message.py
│       ├── file.py
│       ├── image.py
│       ├── utils.py
│       └── errors.py
├── tests/
│   ├── test_server.py
│   ├── test_message.py
│   ├── test_file.py
│   └── test_image.py
├── docs/
├── pyproject.toml
├── noxfile.py
└── README.md

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

联系方式

  • 作者:longhao
  • 邮箱:hal.long@outlook.com
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档