mcpField
G
gitlab-mcp-server

gitlab-mcp-server

本地服务
github.com/dubuqingfeng版本控制959 周前更新

关于 gitlab-mcp-server

gitlab-mcp-server 为 AI Agent 提供 GitLab Merge Request、分支和文件信息,以及代码审查工具。它还包含按项目类型提供审查规则的功能,并可配置 Lark 通知。

主要功能

  1. 01获取和列出 Merge Request
  2. 02审查 MR、分支及提交
  3. 03读取文件内容并列出分支
  4. 04按项目类型获取审查规则
  5. 05将审查备注发送至 GitLab 或 Lark

适用场景

  1. 01查看项目的 Merge Request 详情
  2. 02对指定分支或提交进行代码审查
  3. 03按技术栈查询审查规则
  4. 04发布 MR 审查备注并通知 Lark

MCP 相关

作为 MCP 服务,它向客户端提供 GitLab MR、分支、文件和代码审查规则工具,并支持写入 MR 备注。备注操作可配置为向 GitLab、Lark 或两者发送通知。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dubuqingfeng-gitlab": {
"command": "npx",
"args": [
"-y",
"@dubuqingfeng/gitlab-mcp-server"
],
"env": {
"GITLAB_TOKEN": "<GITLAB_TOKEN>",
"GITLAB_URL": "<GITLAB_URL>",
"LARK_WEBHOOK_URL": "<LARK_WEBHOOK_URL>",
"LARK_SECRET_KEY": "<LARK_SECRET_KEY>",
"LARK_ENABLE_NOTIFICATION": "<LARK_ENABLE_NOTIFICATION>",
"GITLAB_NOTE_MODE": "<GITLAB_NOTE_MODE>"
}
}
}
}
启动命令npx -y @dubuqingfeng/gitlab-mcp-server
需要配置的环境变量
GITLAB_TOKEN密钥Your API key for the gitlab
GITLAB_URLGitlab URL
LARK_WEBHOOK_URL密钥Lark 机器人 Webhook URL
LARK_SECRET_KEY密钥可选:签名密钥(如果机器人启用了签名验证)
LARK_ENABLE_NOTIFICATION可选:是否启用通知,默认为 true
GITLAB_NOTE_MODE可选:通知模式 - gitlab_only(仅GitLab)、lark_only(仅Lark)、both(两者都发),默认为 gitlab_only

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@dubuqingfeng/gitlab-mcp-server2.0.12

工具

13

收录的工具列表 · 更新于 2 周前

参数类型必填说明
projectIdstring是GitLab 项目 ID 或项目路径(例如,'group/project' 或 123)
mergeRequestIidnumber是合并请求 IID(GitLab UI 中显示的内部 ID)

详细介绍

来自项目 README

Gitlab Mcp server

支持服务:

  1. gitlab
  2. code-review-rules (代码审查规则)

场景

  1. gitlab 代码 review,获取信息
  2. 智能代码审查规则 - 根据项目类型提供代码审查建议

GitLab

GitLab 集成使用 @gitbeaker/rest 库支持获取 Merge Request 信息。

环境变量

export GITLAB_TOKEN="your_personal_access_token"
export GITLAB_URL="https://gitlab.com"  # 可选,默认为 gitlab.com(注意:不需要 /api/v4 后缀)

可用工具

  • get_merge_request: 获取特定 MR 的详细信息
  • list_merge_requests: 列出项目的 MR 列表
  • gitlab_code_review: 对 MR 进行综合代码审查
  • gitlab_branch_code_review: 对指定分支进行全面代码审查
  • gitlab_commit_review: 对指定提交进行代码审查
  • get_file_content: 获取仓库中特定文件的内容
  • list_branches: 列出项目的所有分支
  • write_gitlab_mr_note: 在 MR 中写入审查备注(支持灵活的通知模式)

依赖

  • @gitbeaker/rest: GitLab API 客户端库

详细使用说明请参考 GitLab 文档

Lark 机器人集成

支持通过 Lark(飞书)机器人发送通知,可以在写入 GitLab MR 评论时自动发送 Lark 通知。

环境变量

export LARK_WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/hook/xxx"  # Lark 机器人 Webhook URL
export LARK_SECRET_KEY="your_secret_key"  # 可选:签名密钥(如果机器人启用了签名验证)
export LARK_ENABLE_NOTIFICATION="true"  # 可选:是否启用通知,默认为 true
export GITLAB_NOTE_MODE="gitlab_only"  # 可选:通知模式 - gitlab_only(仅GitLab)、lark_only(仅Lark)、both(两者都发),默认为 gitlab_only

功能特性

  • 灵活的通知模式:可以选择只写 GitLab、只发 Lark 或两者都做
  • 支持富文本卡片消息,包含项目名称、MR 标题、评论内容等信息
  • 支持自定义 Lark 消息(文本或卡片格式)
  • 失败不影响主流程,确保 GitLab 操作的可靠性

通知模式说明

  • gitlab_only: 仅写入 GitLab MR 评论,不发送 Lark 通知(默认)
  • lark_only: 仅发送 Lark 通知,不写入 GitLab MR 评论
  • both: 同时写入 GitLab MR 评论并发送 Lark 通知

使用示例

// 使用环境变量配置的默认模式
await write_gitlab_mr_note({
  projectId: "group/project",
  mergeRequestIid: 123,
  note: "代码审查完成,LGTM!"
});

// 明确指定只写入 GitLab
await write_gitlab_mr_note({
  projectId: "group/project",
  mergeRequestIid: 123,
  note: "内部备注",
  notificationMode: "gitlab_only"
});

// 只发送 Lark 通知,不写入 GitLab
await write_gitlab_mr_note({
  projectId: "group/project",
  mergeRequestIid: 123,
  note: "团队通知:代码已审查",
  notificationMode: "lark_only"
});

// 强制两者都执行(覆盖环境变量)
await write_gitlab_mr_note({
  projectId: "group/project",
  mergeRequestIid: 123,
  note: "重要通知",
  notificationMode: "both"
});

Code Review Rules (代码审查规则)

智能代码审查规则系统,根据不同项目类型和文件扩展名提供相应的代码审查建议。

可用工具

  • get_code_review_rules: 获取适用于特定项目和文件的代码审查规则
  • list_all_code_review_rules: 列出所有可用的代码审查规则
  • get_project_types: 获取支持的项目类型信息

支持的项目类型

  • TypeScript / JavaScript
  • React
  • Node.js
  • Go
  • Python
  • Rust
  • Backend (通用后端规则)
  • Database (数据库相关)

规则类别

  • 🔒 Security (安全)
  • ⚡ Performance (性能)
  • 🔧 Maintainability (可维护性)
  • 🎨 Style (代码风格)
  • ✨ Best Practice (最佳实践)

项目特定规则

支持为特定项目配置专属的代码审查规则:

  • 可以通过外部 JSON 配置文件定义项目特定规则
  • 支持启用/禁用默认规则
  • 支持排除特定的默认规则
  • 可以添加额外的项目类型

详细使用说明请参考:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。