🚀 GitLab MR MCP
一个用于与GitLab合并请求和问题交互的模型上下文协议(MCP)服务器。
📌 概述
本项目实现了一个使用模型上下文协议(MCP)的服务器,允许AI代理与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
📖 设置
- 克隆此仓库
- 安装依赖项:
npm install
- 将以下内容添加到您的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
# 可选环境变量,用于过滤`get_projects`工具可以访问的项目:
# https://docs.gitlab.com/api/access_requests/#valid-access-levels
export MR_MCP_MIN_ACCESS_LEVEL=min_access_level
# 应匹配项目路径或名称的搜索词
export MR_MCP_PROJECT_SEARCH_TERM=term
用于MCP客户端,您可以运行:
npx -y @modelcontextprotocol/inspector npm start
🛠️ 故障排除
如果您遇到权限问题(403 Forbidden),请检查:
- 您的GitLab令牌具有正确的范围(api, read_api)
- 令牌用户对项目具有适当的访问权限
- 项目ID是否正确
📜 许可证
🤝 贡献
欢迎贡献!请随时提交Pull Request。
