WeCom MCP - 企业微信 AI 助手
基于 Laravel + MCP 协议构建的企业微信 AI 助手。用户通过自然语言指令,由 AI 自动识别意图并调用企业微信 API 完成操作。
"帮我明天下午3点和张三开个需求评审会" → AI 自动搜索联系人 → 创建会议 → 返回会议信息
功能特性
- 自然语言驱动 — 用口语化指令完成企微操作,无需学习 API
- MCP Tool 架构 — 基于 Model Context Protocol,可扩展的工具体系
- 多模型支持 — Ollama / Claude / OpenAI / DeepSeek 一键切换
- 拼音智能匹配 — 支持同音字、首字母缩写匹配联系人("王伟" = "汪伟")
- 用户记忆 — 自动记住用户偏好和习惯,个性化响应
- 个性化 Profile — 自定义 AI 名字、人设、欢迎语,进入会话自动问候
- 定时任务 — 一次性("30分钟后提醒我")和周期性("每天9点发日报提醒")定时消息
- 外部联系人管理 — 客户信息同步、搜索、回调实时更新,支持按时间范围查询
- 聊天记录智能分析 — 基于会话内容存档,AI 自动提取待办/决策/时间节点,每日生成工作日报推送
- Claude Code Skills — 内置 API 文档查询 Skill,辅助开发
已支持的 MCP Tools
| 分类 | Tool | 说明 |
|---|---|---|
| 会议 | CreateMeetingTool | 创建在线视频会议 |
| QueryMeetingsTool | 查询会议列表 | |
| GetMeetingInfoTool | 获取会议详情 | |
| UpdateMeetingTool | 修改会议 | |
| CancelMeetingTool | 取消会议 | |
| 日程 | CreateCalendarTool | 创建日历(私人/公共/企业) |
| QueryCalendarsTool | 查询日历列表 | |
| CreateScheduleTool | 创建日程,多日历时自动推荐 | |
| QuerySchedulesTool | 查询日程列表 | |
| GetScheduleDetailTool | 获取日程详情 | |
| CancelScheduleTool | 取消日程 | |
| 会议室 | QueryMeetingRoomsTool | 查询会议室列表 |
| BookMeetingRoomTool | 预定会议室 | |
| QueryRoomBookingsTool | 查询预定记录 | |
| CancelRoomBookingTool | 取消预定 | |
| 群聊 | CreateGroupChatTool | 创建群聊 |
| UpdateGroupChatTool | 修改群聊(改名/换群主/增减成员) | |
| GetGroupChatTool | 获取群聊详情 | |
| QueryGroupChatsTool | 查询我创建/参与的群聊 | |
| SendGroupMessageTool | 推送消息到群聊(支持 @成员) | |
| 联系人 | SearchContactsTool | 搜索内部联系人(拼音四级匹配) |
| 外部联系人 | SearchExternalContactsTool | 搜索外部联系人/客户(拼音四级匹配 + 备注名) |
| ListExternalContactsTool | 列出外部联系人,支持按员工和时间范围筛选 | |
| 记忆 | SaveMemoryTool | 保存用户偏好/习惯 |
| DeleteMemoryTool | 删除记忆 | |
| 个性化 | SetProfileTool | 设置 AI 名字/人设/欢迎语等 |
| GetProfileTool | 查看当前个性化配置 | |
| 定时任务 | CreateOnetimeTaskTool | 创建一次性定时任务("30分钟后提醒我") |
| CreateRecurringTaskTool | 创建周期性定时任务(每天/工作日/每周/每月) | |
| QueryScheduledTasksTool | 查询定时任务列表 | |
| CancelScheduledTaskTool | 取消定时任务 | |
| 文档 | CreateDocumentTool | 创建在线文档/表格/智能表格 |
| GetDocumentInfoTool | 获取文档基础信息 | |
| ShareDocumentTool | 获取文档分享链接 | |
| RenameDocumentTool | 重命名文档 | |
| DeleteDocumentTool | 删除文档 | |
| GetDocumentContentTool | 读取文档内容(提取为纯文本) | |
| UpdateDocumentContentTool | 编辑文档内容(追加/替换/插入) |
聊天记录智能分析
基于企微会话内容存档,每日自动分析员工聊天记录,提取结构化工作洞察并生成日报推送。
分层知识架构:
Layer 2: 用户日报(每人每天一份,推送给用户)
Layer 1: 对话摘要(每对话对每天一条,AI 分析压缩)
Layer 0: 原始聊天记录(外部 MySQL,按需回溯)
5 类洞察提取:
| 类型 | 说明 | 示例 |
|---|---|---|
| 待办事项 | 对话中的任务分配和工作请求 | "帮我看一下登录Bug" |
| 重要决策 | 双方达成一致的结论 | "就用方案B吧" |
| 关键时间节点 | 提到的截止日期 | "周五前提测" |
| 未回复检测 | 工作问题未得到回应 | 问了接口文档位置没回复 |
| 工作总结 | 对话核心内容概要 | 今日主要讨论了上线计划 |
待办生命周期管理:
open → completed(对话中确认完成)
open → expired(超期未完成)→ reminded(日报提醒)
reminded → completed / ignored / open(用户回复操作)
使用方式:
php artisan chat:analyze-daily # 分析昨天的聊天记录
php artisan chat:analyze-daily --date=2026-03-15 # 分析指定日期
php artisan chat:analyze-daily --backfill # 冷启动,回溯分析近 N 天
php artisan chat:push-reports # 推送日报给员工
php artisan chat:push-reports --force # 强制推送(忽略推送日限制)
环境要求
- PHP >= 8.2
- Composer
- MySQL
- AI 模型(任选其一):
快速开始
1. 安装
git clone https://github.com/bangbangda/wecommcp.git
cd wecom-mcp
composer install
cp .env.example .env
php artisan key:generate
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. 配置聊天分析(可选)
如果需要使用聊天记录智能分析功能,配置外部聊天记录数据库连接:
CHAT_RECORDS_DB_HOST=127.0.0.1
CHAT_RECORDS_DB_PORT=3306
CHAT_RECORDS_DB_DATABASE=chat_records
CHAT_RECORDS_DB_USERNAME=root
CHAT_RECORDS_DB_PASSWORD=
初始化分析配置:
php artisan db:seed --class=ChatAnalysisConfigSeeder
5. 同步通讯录
php artisan wecom:sync-contacts # 同步内部通讯录
php artisan wecom:sync-external-contacts # 同步外部联系人
6. 开始对话
php artisan chat
输入自然语言指令即可:
You: 帮我明天下午两点和张三开个项目评审会
AI: 我来帮你创建会议。先搜索一下"张三"...
找到联系人张三(产品部)。
已创建会议「项目评审会」:
- 时间:明天 14:00-15:00
- 参会人:张三
- 会议链接:https://meeting.tencent.com/xxx
架构概览
用户(语音/文字)
|
v
+-------------+ +------------------+ +-----------------+
| 接入层 | --> | AI 编排层 | --> | MCP Tool 执行层 |
| 企微
Tools 5
CreateMeetingToolCreates an online video meeting.SearchContactsToolSearches internal contacts using Pinyin matching.CreateOnetimeTaskToolCreates an one-time reminder task.BookMeetingRoomToolBooks a meeting room.SendGroupMessageToolSends a message to a group chat with support for @mentions.Environment Variables
WECOM_CORP_IDrequiredEnterprise WeChat Corp IDWECOM_AGENT_SECRETrequiredEnterprise WeChat Agent SecretAI_DRIVERrequiredAI model driver (ollama, anthropic, openai, deepseek)ANTHROPIC_API_KEYAPI key for Claude