返回市场
GitLab-MCP-服务器

GitLab-MCP-服务器

作者:dubuqingfeng8 星标更新:2025-09-10

项目介绍

【技术文档摘要】: Gitlab Mcp server

支持服务:

  1. gitlab
  2. 代码审查规则

场景

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

GitLab

GitLab集成和使用 @gitbeaker/rest 库支持获取合并请求信息。

环境变量

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 文档

飞书机器人集成

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

环境变量

export LARK_WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/hook/xxx"  # 飞书机器人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(仅飞书)、both(两者都发),默认为 gitlab_only

功能

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

通知模式描述

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

使用示例

// 使用环境变量配置的默认模式
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"
});

// 只发送飞书通知,不写入 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"
});

代码审查规则

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

可用工具

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

支持的项目类型

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

规则类别

  • 🔒 安全
  • ⚡ 性能
  • 🔧 维护性
  • 🎨 风格(代码风格)
  • ✨ 最佳实践

项目特定规则

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

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

详细使用说明,请参阅: