面向 AI 客户端的综合 GitLab MCP 服务器,支持 stdio/SSE/Streamable HTTP 传输与多种认证方式,覆盖项目、MR、Issues、Pipeline、Wiki 等 GitLab 全域能力。
GitLab MCP Server 是一个基于 TypeScript/Node.js 实现的 MCP(Model Context Protocol)服务器,将 GitLab 平台的核心能力标准化暴露给 AI 编码助手。项目支持三种传输协议(stdio、SSE、Streamable HTTP),提供四种认证方式(PAT、本地 OAuth2、MCP OAuth Proxy、Remote Authorization),可适配从个人本地开发到企业级多租户远程部署的全场景需求。
在 GitLab API 覆盖方面,支持项目管理、仓库浏览、Merge Requests、Issues、Pipelines(需显式启用)、Wiki(需显式启用)、Releases、Labels、Milestones(需显式启用)等核心领域,并通过 discover_tools 实现动态工具发现,按需激活能力子集。
运行时安全方面,提供只读模式(GITLAB_READ_ONLY_MODE)、会话隔离、超时控制(默认 1 小时)、速率限制(默认 60 req/min/会话)、并发会话上限(默认 1000)等治理机制。无状态模式(OAUTH_STATELESS_MODE)配合共享密钥可支持多 Pod HPA 水平扩展。
部署形态灵活:可通过 npx @zereight/mcp-gitlab 零配置本地启动,也可通过 Docker 镜像 zereight050/gitlab-mcp 部署为远程共享服务,还支持在 GitLab CI 环境中通过 JOB-TOKEN 直接使用。兼容 Claude Code、Cursor、Cline、GitHub Copilot 等主流 MCP 客户端,并通过 smithery.yaml 接入 Smithery 平台。
快速开始(npx 本地 stdio):
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": [
"-y",
"@zereight/mcp-gitlab",
"--token=YOUR_GITLAB_TOKEN",
"--api-url=https://gitlab.com/api/v4"
],
"tools": ["*"]
}
}
}
Docker 远程部署(Streamable HTTP):
docker run -i --rm \
-e HOST=0.0.0.0 \
-e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
-e GITLAB_API_URL="https://gitlab.com/api/v4" \
-e STREAMABLE_HTTP=true \
-p 3333:3002 \
zereight050/gitlab-mcp
核心 CLI 参数:
| 参数 | 说明 |
|---|---|
--token | GitLab PAT |
--api-url | GitLab API 基础 URL |
--read-only=true | 启用只读模式 |
--use-wiki=true | 启用 Wiki API |
--use-milestone=true | 启用 Milestone API |
--use-pipeline=true | 启用 Pipeline API |
认证方式对比:
| 模式 | 适用场景 |
|---|---|
| PAT | 本地个人使用、CI 环境 |
| 本地 OAuth2 | 需要用户交互的本地场景 |
| MCP OAuth Proxy | Claude.ai 等远程客户端 |
| Remote Authorization | 多用户/多租户,每请求携带 Token |
| JOB-TOKEN | GitLab CI/CD 流水线内 |