GitLab MCP服务器

一个用Go语言实现的GitLab MCP服务器,为AI助手提供无缝访问GitLab仓库、问题、合并请求等功能。

  • by azra-ai-oss
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 azra-ai-oss/gitlab-mcp-server

使用说明

GitLab MCP服务器

A Go实现 模型上下文协议(MCP) GitLab服务器,为AI助手提供对GitLab存储库、问题、合并请求等的无缝访问。

为什么存在

这 官方GitLab MCP服务器 是用TypeScript编写的,需要Node.js运行时。这给以下团队带来了摩擦:

  • 不想安装Node.js --此服务器编译为 单静态二进制 (约10-15MB),运行时依赖性为零。下载它,设置您的令牌,然后运行它。
  • 需要更好的资源效率 --Node.js GitLab MCP服务器使用约30-50MB的RAM和约200ms的启动时间。此Go版本使用约5-10MB的RAM,启动时间<5ms,这在同时运行多个MCP服务器时很有意义。
  • 想要可靠的模式验证 --社区 定制gitlab mcp服务器 是专门为修复官方TypeScript服务器中的模式验证错误而创建的。此Go实现通过Go struct标签和官方Go MCP SDK免费获得正确的模式。
  • 更喜欢使用单个二进制文件进行分发 — go install,复制二进制文件,或使用Nix薄片。不 npm install,没有 node_modules,没有版本冲突。

快速开始

先决条件

  • 使用1.25+(或使用随附的Nix薄片: nix develop)
  • 具有适当作用域的GitLab个人访问令牌(api, read_api, read_repository, write_repository)

构建

go build -o gitlab-mcp-server .

配置您的AI客户端

添加到您的MCP客户端配置中(例如,Claude Desktop、Gemini CLI):

{
  "mcpServers": {
    "gitlab": {
      "command": "/path/to/gitlab-mcp-server",
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your-token-here",
        "GITLAB_API_URL": "https://gitlab.com/api/v4"
      }
    }
  }
}

GITLAB_API_URL 默认为 https://gitlab.com/api/v4 如果没有设置。如果需要,将其指向您的自托管实例。

可用工具

工具 说明
search_repositories 搜索GitLab项目
get_file_contents 从项目中获取文件内容
create_or_update_file 在项目中创建或更新单个文件
push_files 在一次提交中推送多个文件
create_repository 创建一个新的GitLab项目
create_issue 在项目中创建新问题
create_merge_request 在项目中创建新的合并请求
fork_repository 将项目分叉到您的帐户或命名空间
create_branch 在项目中创建新分支

发展

使用Nix(推荐)

# Enter dev shell with Go 1.25, gopls, etc.
nix develop

# Or if you have direnv:
direnv allow

构建与运行

export GITLAB_PERSONAL_ACCESS_TOKEN="your-token"
go build -o gitlab-mcp-server .
./gitlab-mcp-server

许可证

麻省理工学院