GitLab WeChat MCP 工具
一个用于获取 GitLab 代码提交记录并发送到企业微信的 MCP (Model Context Protocol) 工具。
功能特性
🔍 获取 GitLab 提交记录:支持按日期查询指定用户的代码提交
📊 智能日报生成:自动生成格式化的代码提交日报
💬 企业微信集成:支持 Webhook 和 API 两种方式发送消息
🛠 MCP 协议支持:可与支持 MCP 的 AI 助手无缝集成
⚙️ 灵活配置:支持环境变量和配置文件
🔒 错误处理:完善的错误处理和日志记录
安装
1. 获取项目代码
由于这是一个本地开发的项目,您已经有了完整的代码。如果需要在其他地方使用,可以:
方式1:直接使用当前目录(推荐)
方式2:复制到其他位置使用
如果您想在其他位置使用这个工具,比如复制到桌面:
方式3:使用Git管理(如果需要版本控制)
2. 安装依赖
如果遇到网络问题,可以使用国内镜像:
3. 测试连接
测试输出示例:
4. 配置环境变量
复制环境变量模板:
编辑 .env 文件,填入你的配置:
配置示例说明:
GITLAB_TOKEN: 类似glpat-xxxxxxxxxxxxxxxxxxxx的格式GITLAB_USERNAME: 你的GitLab用户名,如zhangsanWECHAT_WEBHOOK_URL: 企业微信机器人的完整URL地址
配置说明
GitLab 配置
获取 Personal Access Token:
登录 GitLab(如 https://gitlab.com)
点击右上角头像 → Settings(设置)
左侧菜单选择 "Access Tokens"(访问令牌)
填写表单:
Token name:
mcp-daily-report(可自定义)Expiration date: 选择过期时间(建议1年)
Scopes: 勾选
read_api和read_repository
点击 "Create personal access token"
重要:复制生成的token(格式如:
glpat-xxxxxxxxxxxxxxxxxxxx),离开页面后无法再次查看
配置参数示例:
GITLAB_URL=https://gitlab.com GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxx GITLAB_USERNAME=zhangsan
企业微信配置
支持两种方式:
方式1:Webhook(推荐,简单易用)
创建企业微信群机器人:
在企业微信中创建或进入一个群聊
点击群聊右上角 "..." → 群机器人 → 添加机器人
选择 "自定义机器人"
填写机器人名称:
GitLab日报机器人点击 "添加"
重要:复制生成的Webhook URL(格式如:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
配置示例:
WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
方式2:企业微信 API(高级用法)
获取企业信息:
登录企业微信管理后台(https://work.weixin.qq.com)
我的企业 → 企业信息 → 复制 "企业ID"
创建应用:
应用管理 → 自建 → 创建应用
填写应用名称:
GitLab日报选择可见范围
创建后获取 "AgentId" 和 "Secret"
配置示例:
WECHAT_CORP_ID=wwxxxxxxxxxxxxxxxx WECHAT_CORP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx WECHAT_AGENT_ID=1000002
使用方法
作为 MCP 服务器运行
开发模式(自动重启)
MCP 工具说明
本工具提供以下 3 个 MCP 工具:
1. get_gitlab_commits
获取 GitLab 用户在指定日期的代码提交记录。
参数:
date(必需):查询日期,格式 YYYY-MM-DDusername(可选):GitLab 用户名,默认使用配置的用户名projectId(可选):项目 ID,不指定则查询所有项目
使用示例:
获取今天的提交记录:
获取指定用户的提交记录:
获取特定项目的提交记录:
返回结果示例:
2. send_to_wechat
发送消息到企业微信。
参数:
message(必需):要发送的消息内容messageType(可选):消息类型,text或markdown,默认text
使用示例:
发送普通文本消息:
发送Markdown格式消息:
返回结果示例:
3. generate_daily_report
生成并发送 GitLab 提交记录的日报到企业微信。
参数:
date(必需):查询日期,格式 YYYY-MM-DDusername(可选):GitLab 用户名,默认使用配置的用户名projectId(可选):项目 ID,不指定则查询所有项目
使用示例:
生成今日日报:
生成指定用户的日报:
生成特定项目的日报:
返回结果示例:
日报格式示例
生成的日报包含以下信息:
完整使用流程示例
场景:每日自动生成并发送工作日报
配置完成后,测试连接:
手动获取今日提交记录: 使用MCP工具
get_gitlab_commits:
生成并发送日报: 使用MCP工具
generate_daily_report:
查看企业微信群消息: 日报会自动发送到配置的企业微信群中。
与 AI 助手集成
本工具支持 MCP 协议,可以与支持 MCP 的 AI 助手(如 Claude Desktop)集成使用。
Claude Desktop 配置
在 Claude Desktop 的配置文件中添加:
配置文件位置:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
配置后的使用方式: 在Claude Desktop中直接对话:
"帮我获取今天的GitLab提交记录"
"生成今日工作日报并发送到企业微信"
"查看昨天的代码提交情况"
故障排除
常见问题
GitLab Token 权限不足
确保 Token 具有
read_api和read_repository权限检查 Token 是否过期
企业微信消息发送失败
检查 Webhook URL 是否正确
确认机器人是否被正确添加到群组
验证企业微信 API 配置是否完整
找不到用户或项目
确认用户名拼写正确
检查项目 ID 是否存在
验证 Token 是否有访问相应项目的权限
调试模式
设置环境变量启用详细日志:
测试连接
可以通过 MCP 工具测试各个服务的连接状态:
测试 GitLab 连接
测试企业微信连接
发送测试消息
开发
项目结构
添加新功能
在相应的服务文件中添加新方法
在
index.js中注册新的 MCP 工具更新文档和示例
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!
更新日志
v1.0.0
初始版本发布
支持 GitLab 提交记录获取
支持企业微信消息发送
支持自动日报生成
完整的 MCP 协议支持
Related MCP Servers
- -security-license-qualityA custom server implementation that allows AI assistants to interact with GitLab repositories, providing capabilities for searching, fetching files, creating/updating content, and managing issues and merge requests.Last updated -1
- AsecurityFlicenseAqualityConnects AI assistants to GitLab, allowing users to manage merge requests, view reviews, and interact with discussions through natural language queries.Last updated -1215
- Asecurity-licenseAqualityEnables comprehensive GitLab integration allowing LLMs to manage projects, issues, merge requests, repository files, CI/CD pipelines, and perform batch operations. Supports advanced features like AI-optimized summaries, smart diffs, and atomic operations with rollback support.Last updated -72Apache 2.0
- -security-license-qualityEnables interaction with GitLab repositories through secure OAuth 2.0 authentication. Supports comprehensive GitLab operations including merge requests, issues, file management, commits, and branch operations through natural language.Last updated -21MIT License