关于 GitLab MCP Server (noqta-gitlab-server)
GitLab MCP 服务将 GitLab API 操作提供给 AI 助手,适用于管理项目、议题和合并请求等工作。工具涵盖搜索、内容查询与创建更新,并支持自托管 GitLab 实例。
主要功能
- 01搜索项目与用户
- 02查询及管理议题
- 03创建分支和合并请求
- 04读取项目 Wiki 页面
- 05创建项目仓库
适用场景
- 01查找 GitLab 项目并查看详情
- 02批量更新项目议题
- 03创建分支并发起合并请求
MCP 相关
作为 MCP 服务,它向 MCP 客户端提供 GitLab API 工具,包括项目、议题、分支、合并请求和 Wiki 操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
GitLab MCP 服务(noqta-gitlab-server)
一个用于与 GitLab API 交互的模型上下文协议(MCP)服务。
此服务允许 AI 助手(例如通过 MCP 集成使用 Claude)直接通过自然语言命令在 GitLab 上执行各种操作,例如搜索代码库、管理议题、创建分支等。
功能 / 可用工具
此服务向 MCP 客户端公开以下工具:
search_repositories:按名称搜索 GitLab 项目。get_project_from_git_url:根据 git 远程 URL 获取 GitLab 项目详情。list_issues:列出特定 GitLab 项目的议题(可按状态、标签、指派人和范围筛选)。get_my_issues:列出已认证用户在所有项目中被指派或创建的议题(可按状态和范围筛选)。get_issue:根据 IID 获取项目中特定议题的详情。create_issue_note:向特定议题添加评论(备注)。update_issue:更新议题属性(例如标题、描述、标签、状态)。bulk_update_issues:一次性更新项目中多个议题的属性。create_branch:从指定引用在项目中创建新分支。create_issue:在项目中创建新议题。list_documentation_wiki_pages:列出已配置文档项目的文档 Wiki 页面。get_documentation_wiki_page:根据 slug 获取已配置文档项目的文档 Wiki 页面。list_wiki_pages:列出特定 GitLab 项目的 Wiki 页面(默认使用DOC_WIKI_PROJECT_PATH)。create_merge_request:创建新的合并请求。list_issue_notes:列出特定议题的评论(备注)。create_merge_request_note:向特定合并请求添加评论(备注)。search_user:按电子邮件或用户名搜索 GitLab 用户。create_repository:在用户或群组命名空间下创建新的 GitLab 项目(代码库)。
(有关每个工具的详细输入架构,请参阅服务的 ListTools 响应或源代码(src/index.ts)。)
前置条件
- Node.js(建议使用 LTS 版本)
- npm(通常随 Node.js 一起安装)
- GitLab 账户(gitlab.com 或可自托管实例)
- 具有
api和read_api范围的 GitLab 个人访问令牌。
安装与设置
-
克隆代码库:
git clone https://github.com/nooqta/noqta-gitlab-server.git # Replace with actual URL after creation cd noqta-gitlab-server -
安装依赖项:
npm install -
配置环境变量:
- 复制示例环境文件:
cp .env.example .env - 编辑
.env文件:- 生成 GitLab 个人访问令牌:前往 GitLab 个人资料 -> Settings -> Access Tokens。创建一个具有
api和read_api范围的令牌。 - 将生成的令牌粘贴到
.env中的GITLAB_PERSONAL_ACCESS_TOKEN变量。 - (可选) 如果使用可自托管的 GitLab 实例,请将
GITLAB_API_URL更新为指向该实例的 API 端点(例如,https://gitlab.yourcompany.com/api/v4)。否则,保留 gitlab.com 的默认值。 - (可选) 将
DOC_WIKI_HOME_URL设置为 Wiki 主页 URL。如果未设置DOC_WIKI_PROJECT_PATH,系统会根据此 URL 推导其值。
- 生成 GitLab 个人访问令牌:前往 GitLab 个人资料 -> Settings -> Access Tokens。创建一个具有
- 复制示例环境文件:
-
构建服务:
npm run build这会将 TypeScript 代码编译为 JavaScript,并输出到
build/目录。
运行服务
直接使用 Node.js 运行(克隆并构建后)
如果已克隆代码库并构建项目(npm run build),可以直接运行服务:
node build/index.js
使用 npx(发布到 npm 后)
将软件包发布到 npm(名称为 @nooqta/gitlab-mcp-server)后,你可以直接使用 npx 运行,无需克隆或手动安装。npx 会下载并执行该软件包。
npx @nooqta/gitlab-mcp-server
注意: 使用 npx 运行时,服务器仍需要在执行 npx 命令的环境中设置环境变量(GITLAB_PERSONAL_ACCESS_TOKEN 和可选的 GITLAB_API_URL),或者在运行 npx 的目录中通过 .env 文件提供这些变量。
服务器通过标准输入/输出(stdio)进行通信。如需持续运行,可考虑使用 pm2 或 systemd 等进程管理器。
集成(示例:Claude Desktop)
要将此服务器与 Claude Desktop 等 MCP 客户端搭配使用,请将其配置添加到客户端的设置文件中。
配置文件位置:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
claude_desktop_config.json 配置示例(使用 npx):
{
"mcpServers": {
"@nooqta/gitlab-mcp-server": {
"command": "npx",
"args": ["-y", "@nooqta/gitlab-mcp-server"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "...",
"GITLAB_API_URL": "..."
}
}
}
// Potentially other configurations...
}
claude_desktop_config.json 配置示例(使用本地构建):
{
"mcpServers": {
"@nooqta/gitlab-mcp-server": {
// Use the package name for consistency, even if running locally
"command": "/full/path/to/your/custom-gitlab-server/build/index.js",
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "...",
"GITLAB_API_URL": "..."
}
}
// Potentially other configurations...
}
}
重要安全提示: 此服务器使用 dotenv 从 .env 文件加载 GITLAB_PERSONAL_ACCESS_TOKEN 和 GITLAB_API_URL。切勿使用 env 属性将实际令牌或敏感 URL 直接写入 MCP 客户端配置文件(例如 claude_desktop_config.json)。请始终使用 .env 文件(本地运行时放在服务器项目目录中,或放在执行 npx 的目录中),或者通过操作系统环境提供这些变量。
开发
- 构建:
npm run build(编译 TypeScript 并设置可执行权限) - 监视模式:
npm run watch(文件更改时自动重新编译)
调试
由于 MCP 服务通过 stdio 通信,直接调试可能比较棘手。使用 MCP Inspector 可以更轻松地进行调试:
npm run inspector
此命令会在 Inspector 的监控下启动服务器。在浏览器中打开控制台输出提供的 URL,即可查看 MCP 消息和服务器日志。
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
贡献
欢迎贡献!请参阅 CONTRIBUTING.md 文件了解相关指南。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。