mcpField
G
gitlab-mcp-server

gitlab-mcp-server

ローカル
github.com/dubuqingfengバージョン管理959 週間前に更新

gitlab-mcp-server について

gitlab-mcp-serverは、AIエージェントにGitLabのMerge Request、ブランチ、ファイル情報とコードレビュー機能を提供します。プロジェクト種別ごとのレビュー規則も取得でき、Lark通知を設定できます。

主な機能

  1. 01Merge Requestの取得と一覧表示
  2. 02MR・ブランチ・コミットのレビュー
  3. 03ファイルの読み取りとブランチ一覧
  4. 04プロジェクト種別ごとのレビュー規則取得
  5. 05GitLabまたはLarkへのレビューコメント送信

活用シーン

  1. 01プロジェクトのMerge Requestを確認
  2. 02指定したブランチやコミットをレビュー
  3. 03技術スタックに応じたレビュー規則を参照
  4. 04MRレビューコメントを投稿して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 配置文件定义项目特定规则
  • 支持启用/禁用默认规则
  • 支持排除特定的默认规则
  • 可以添加额外的项目类型

详细使用说明请参考:

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。