WeCom MCP

WeCom MCP

Enables AI assistants to interact with Enterprise WeChat (WeCom) using natural language to manage meetings, book rooms, and search contacts. It supports multiple AI models and provides intelligent contact matching via Pinyin.

Category
访问服务器

README

WeCom MCP - 企业微信 AI 助手

基于 Laravel + MCP 协议构建的企业微信 AI 助手。用户通过自然语言指令,由 AI 自动识别意图并调用企业微信 API 完成操作。

"帮我明天下午3点和张三开个需求评审会" → AI 自动搜索联系人 → 创建会议 → 返回会议信息

功能特性

  • 自然语言驱动 — 用口语化指令完成企微操作,无需学习 API
  • MCP Tool 架构 — 基于 Model Context Protocol,可扩展的工具体系
  • 多模型支持 — Ollama / Claude / OpenAI / DeepSeek 一键切换
  • 拼音智能匹配 — 支持同音字、首字母缩写匹配联系人("王伟" = "汪伟")
  • 用户记忆 — 自动记住用户偏好和习惯,个性化响应
  • Claude Code Skills — 内置 API 文档查询 Skill,辅助开发

已支持的 MCP Tools

分类 Tool 说明
会议 CreateMeetingTool 创建在线会议
QueryMeetingsTool 查询会议列表
GetMeetingInfoTool 获取会议详情
UpdateMeetingTool 修改会议
CancelMeetingTool 取消会议
会议室 QueryMeetingRoomsTool 查询会议室列表
BookMeetingRoomTool 预定会议室
QueryRoomBookingsTool 查询预定记录
CancelRoomBookingTool 取消预定
联系人 SearchContactsTool 搜索联系人(拼音四级匹配)
记忆 SaveMemoryTool 保存用户偏好/习惯
DeleteMemoryTool 删除记忆

环境要求

  • PHP >= 8.2
  • Composer
  • SQLite(默认)或 MySQL
  • AI 模型(任选其一):
    • Ollama 本地部署(推荐开发环境,默认 qwen3:8b)
    • Claude API Key(Anthropic
    • OpenAI API Key
    • DeepSeek API Key

快速开始

1. 安装

git clone https://github.com/bangbangda/wecommcp.git
cd wecom-mcp
composer install
cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate

2. 配置 AI 模型

编辑 .env,选择一个 AI 驱动:

# 方式一:Ollama 本地模型(无需 API Key)
AI_DRIVER=ollama
OLLAMA_BASE_URL=http://localhost:11434/v1
OLLAMA_MODEL=qwen3:8b

# 方式二:Claude
AI_DRIVER=anthropic
ANTHROPIC_API_KEY=sk-ant-xxx

# 方式三:OpenAI
AI_DRIVER=openai
OPENAI_API_KEY=sk-xxx

# 方式四:DeepSeek
AI_DRIVER=deepseek
DEEPSEEK_API_KEY=sk-xxx

3. 配置企业微信

企业微信管理后台创建自建应用,获取以下信息填入 .env

WECOM_CORP_ID=your_corp_id
WECOM_AGENT_SECRET=your_agent_secret
WECOM_AGENT_ID=your_agent_id
WECOM_AGENT_TOKEN=your_callback_token
WECOM_AGENT_AES_KEY=your_callback_aes_key

# 通讯录同步(可选)
WECOM_CONTACT_SECRET=your_contact_secret

4. 同步通讯录

php artisan wecom:sync-contacts

5. 开始对话

php artisan chat

输入自然语言指令即可:

You: 帮我明天下午两点和张三开个项目评审会
AI: 我来帮你创建会议。先搜索一下"张三"...
    找到联系人张三(产品部)。
    已创建会议「项目评审会」:
    - 时间:明天 14:00-15:00
    - 参会人:张三
    - 会议链接:https://meeting.tencent.com/xxx

架构概览

用户(语音/文字)
    |
    v
+-------------+     +------------------+     +-----------------+
|   接入层     | --> |   AI 编排层       | --> |  MCP Tool 执行层 |
|  企微回调    |     |  AiDriver        |     |  企微 API 调用   |
|  CLI 入口    | <-- |  + Tool Use      | <-- |  结果返回        |
+-------------+     +------------------+     +-----------------+
                            |
                    +-------+-------+
                    |       |       |
                  Ollama  Claude  OpenAI ...

核心设计原则:

  • Tool 参数隔离 — Tool 只暴露业务参数(title、start_time),access_token、corp_id 等基础设施参数由 Service 层内部管理,LLM 不可见
  • AI 驱动抽象 — Manager 模式,内部统一为 Claude 风格消息格式,Driver 负责格式转换
  • 拼音四级匹配 — 精确 → 拼音全匹配 → 首字母 → 模糊,多候选时 AI 自动追问

项目结构

app/
├── Ai/                         # AI 驱动抽象层
│   ├── Contracts/AiDriver.php  # 驱动接口
│   ├── Drivers/                # AnthropicDriver, OpenAiCompatibleDriver
│   ├── Dto/                    # AiResponse, ToolCall
│   └── AiManager.php           # Laravel Manager 工厂
├── Mcp/
│   ├── Servers/WecomServer.php # MCP Server 入口
│   └── Tools/                  # 12 个 MCP Tool
├── Models/                     # Contact, RecentMeeting, UserMemory
├── Services/
│   ├── ChatService.php         # AI 对话编排(tool 循环)
│   ├── ContactsService.php     # 拼音四级匹配
│   └── WecomService.php        # 企微 API 封装
└── Console/Commands/           # CLI 命令
config/ai.php                   # AI 驱动配置
skills/                         # Claude Code Skills

常用命令

php artisan chat                      # 交互式对话
php artisan test                      # 运行测试
php artisan wecom:sync-contacts       # 同步企微通讯录
php artisan mcp:start wecom           # 启动 MCP Server

# 切换 AI 驱动
AI_DRIVER=anthropic php artisan chat
AI_DRIVER=deepseek php artisan chat

添加新的 AI 驱动

  1. config/ai.phpdrivers 中添加配置
  2. 如果使用 OpenAI 兼容 API:在 AiManager 中添加 createXxxDriver() 返回 OpenAiCompatibleDriver
  3. 如果 API 格式不同:创建新 Driver 实现 AiDriver 接口
  4. .env 中添加对应环境变量

开发路线图

  • [x] 第一期:MVP — MCP Server + Tool + AI 驱动抽象层 + CLI 对话
  • [ ] 第二期:接入企微 — 回调接口、异步队列、多轮对话上下文(进行中)
  • [ ] 第三期:功能扩展 — 智能排期、部门级邀请、用户偏好挖掘
  • [ ] 第四期:架构升级 — MCP HTTP 模式部署、接入 Claude Desktop

技术栈

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选