GitLab多实例管理服务器

GitLab MCP Server是一个专为自托管GitLab实例设计的令牌优化服务器,支持多配置文件管理、项目缓存和完整的GitLab工作流程。

  • by DKeken
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 DKeken/gitlab-mcp

使用说明

GitLab MCP服务器

令牌优化 模型上下文协议 服务器 自托管GitLab 实例,专为 克劳德代码.

特性

  • 多配置文件PAT管理 --在多个GitLab实例之间切换
  • 紧凑的文本响应 --LLM上下文的最小令牌使用量
  • 项目缓存 -避免多余的API调用(2分钟TTL)
  • 完整的GitLab工作流程 --问题、合并请求、管道、注释
  • 环境或配置文件身份验证 --灵活的凭证管理

设置

1.安装依赖项

bun install

2.获取GitLab个人访问令牌

  1. 转到您的GitLab实例→ 设置 → 访问令牌
  2. 创建具有作用域的令牌: api, read_user

3.配置

选项A:环境变量

export GITLAB_BASE_URL="https://gitlab.example.com"
export GITLAB_TOKEN="your-personal-access-token"
export GITLAB_DEFAULT_PROJECT="group/subgroup/repo"  # optional

选项B:使用 set_gitlab_pat 工具 在运行时,配置文件存储在 ~/.config/gitlab-mcp-server/config.json 和 0600 权限。

4.添加到克劳德代码

添加到您的 ~/.claude/settings.json 或项目 .claude/settings.json:

{
  "mcpServers": {
    "gitlab": {
      "command": "bun",
      "args": ["run", "/path/to/gitlab-mcp-server/index.ts"],
      "env": {
        "GITLAB_BASE_URL": "https://gitlab.example.com",
        "GITLAB_TOKEN": "your-personal-access-token",
        "GITLAB_DEFAULT_PROJECT": "group/subgroup/repo"
      }
    }
  }
}

可用工具

配置文件管理

工具 说明
set_gitlab_pat 保存或更新GitLab PAT配置文件
list_gitlab_profiles 列出已保存的配置文件(标记已屏蔽)
use_gitlab_profile 切换活动配置文件
delete_gitlab_profile 删除已保存的配置文件
get_authenticated_user 验证PAT并显示当前用户

项目

工具 说明
get_projects 列出可访问的项目(搜索、筛选)
get_project 按ID或路径获取项目详细信息

问题

工具 说明
get_issues 列出过滤器的问题(状态、标签、受让人)
get_issue 完整的问题细节和最近的笔记
create_issue 创建新问题
add_issue_note 向问题添加评论

合并请求

工具 说明
get_merge_requests 列出带有过滤器的MR(州、受让人)
get_merge_request 完整的MR详细信息,包括最近的注释
create_merge_request 创建新的合并请求
add_merge_request_note 向合并请求添加注释

管道

工具 说明
get_pipelines 列出最近的管道(按引用、状态过滤)
get_pipeline 包含工作细分的管道详细信息
retry_pipeline 重试管道中所有失败的作业
cancel_pipeline 取消正在运行的管道

多实例支持

所有工具都使用活动配置文件。在GitLab实例之间切换:

# Save profiles
set_gitlab_pat(name: "work", baseUrl: "https://gitlab.company.com", token: "...")
set_gitlab_pat(name: "oss", baseUrl: "https://gitlab.com", token: "...")

# Switch
use_gitlab_profile(name: "work")

项目可以通过ID或路径引用:

projectId: "123"
projectPath: "group/subgroup/repo"

如果 defaultProject 在配置文件中设置,当两者都没有提供时使用。

许可证

麻省理工学院