GitLab合并请求协议服务器

一个基于模型上下文协议(MCP)的服务器,用于AI代理与GitLab合并请求和问题的交互,提供项目列表、合并请求详情、评论和差异等功能。

  • by kopfrechner
  • JavaScript
  • 本地部署
  • 94 星标
  • 更新于
在 GitHub 查看 kopfrechner/gitlab-mr-mcp

使用说明

🚀 GitLab MR MCP

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

📌 概述

该项目使用模型上下文协议(MCP)实现了一个服务器,该协议允许AI代理与GitLab存储库进行交互。它提供了以下工具:

  • 列出可用的GitLab项目
  • 获取合并请求详细信息和注释
  • 获取合并请求差异
  • 为合并请求添加评论
  • 在合并请求差异中向代码添加特定行的注释
  • 正在获取问题详细信息
  • 设置合并请求标题和描述

📦 安装

⚡ 使用Smithery

要通过Smithery自动安装GitLab MR MCP for Claude Desktop,请执行以下操作:

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 设置合并请求的描述

🏗️ 发展

🔍 运行检查器

设置环境变量:

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禁止),请检查:

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

📜 许可证

麻省理工学院

🤝 贡献

欢迎投稿!请随时提交拉取请求。