mcpField
🚀
🚀 GitLab MR MCP

🚀 GitLab MR MCP

本地服务
github.com/kopfrechner版本控制942 天前更新

关于 🚀 GitLab MR MCP

GitLab MR MCP 是一个 MCP 服务,让 AI Agent 与 GitLab 仓库交互,用于管理合并请求和议题并辅助代码审查。

主要功能

  1. 01列出可访问的 GitLab 项目
  2. 02查看合并请求详情、差异与评论
  3. 03添加普通评论与行级评论
  4. 04设置合并请求标题和描述

适用场景

  1. 01让 AI Agent 辅助审查合并请求
  2. 02通过行级评论反馈代码修改意见

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 GitLab 合并请求与议题相关的工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"gitlab-mr": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

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

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai Security Assessment Badge

GitHub stars License smithery badge

🚀 GitLab MR MCP

用于与 GitLab 合并请求和问题交互的模型上下文协议(MCP)服务。

📌 概述

本项目使用模型上下文协议(MCP)实现了一个服务,允许 AI Agent 与 GitLab 仓库交互。它提供以下工具:

  • 列出可用的 GitLab 项目
  • 获取合并请求详情和评论
  • 获取合并请求差异
  • 为合并请求添加评论
  • 为合并请求差异中的代码添加针对特定行的评论
  • 获取问题详情
  • 设置合并请求标题和描述

📦 安装

⚡ 使用 Smithery

通过 Smithery 自动为 Claude Desktop 安装 GitLab MR MCP:

npx -y @smithery/cli@latest install @kopfrechner/gitlab-mr-mcp --client claude --config '"{\"gitlabMrMcpToken\":\"YOUR_GITLAB_TOKEN\", \"gitlabMrMcpHost\": \"YOUR_GITLAB_HOST\"}"'
🛠️ 手动安装
🔧 先决条件
  • Node.js
  • 具有 API 访问权限的 GitLab 访问令牌
  • GitLab 项目 ID
📖 设置
  1. 克隆此仓库
  2. 安装依赖:
npm install
  1. 将以下内容添加到 MCP 客户端配置中:
{
  "mcpServers": {
    "gitlab-mr-mcp": {
      "command": "node",
      "args": ["/path/to/gitlab-mr-mcp/index.js"],
      "env": {
        "MR_MCP_GITLAB_TOKEN": "your_gitlab_token",
        "MR_MCP_GITLAB_HOST": "your_gitlab_host"
      }
    }
  }
}

🛠️ 可用工具

  • get_projects 获取令牌可访问的 GitLab 项目列表。

  • list_open_merge_requests 列出指定项目中所有未关闭的合并请求。

  • get_merge_request_details 获取特定合并请求的详细信息。

  • get_merge_request_comments 获取特定合并请求的评论,包括讨论备注和差异备注。

  • add_merge_request_comment 为合并请求添加一般评论。

  • add_merge_request_diff_comment 为合并请求中文件的特定行添加评论。

  • get_merge_request_diff 获取合并请求的差异。

  • get_issue_details 获取特定问题的详细信息。

  • set_merge_request_title 设置合并请求的标题

  • set_merge_request_description 设置合并请求的描述

🏗️ 开发

🔍 运行 Inspector

设置环境变量:

export MR_MCP_GITLAB_TOKEN=your_gitlab_token
export MR_MCP_GITLAB_HOST=your_gitlab_host

# Optional env vars to filter the projects the `get_projects` tool has access to:
# https://docs.gitlab.com/api/access_requests/#valid-access-levels
export MR_MCP_MIN_ACCESS_LEVEL=min_access_level
# Search term that should match the project path or name 
export MR_MCP_PROJECT_SEARCH_TERM=term 

如需与 MCP 客户端配合使用,可以运行:

npx -y @modelcontextprotocol/inspector npm start

🛠️ 故障排查

如果遇到权限问题(403 Forbidden),请检查:

  1. GitLab 令牌具有正确的作用域(api、read_api)
  2. 令牌用户对项目具有适当的访问权限
  3. 项目 ID 正确

📜 许可证

MIT

🤝 参与贡献

欢迎贡献!请随时提交 Pull Request。

评论

支持 Markdown

第一次接触 MCP?

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

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