首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
servers2025-05-269分享
github
用于 GitLab API 的 MCP 服务器,可实现项目管理、文件操作等功能。
By modelcontextprotocol
2025-05-269
github
详情内容

GitLab MCP 服务器

这是一个为 GitLab API 提供支持的 MCP 服务器,支持项目管理、文件操作等多种功能。

功能特性

  • 自动分支创建:在创建/更新文件或推送更改时,如果分支不存在会自动创建
  • 完善的错误处理:对常见问题提供清晰的错误提示
  • Git 历史保留:操作过程中保持正确的 Git 历史记录,无需强制推送
  • 批量操作:支持单文件和多文件操作

工具命令

  1. create_or_update_file

    • 在项目中创建或更新单个文件
    • 输入参数:
      • project_id (字符串):项目ID或URL编码路径
      • file_path (字符串):创建/更新文件的路径
      • content (字符串):文件内容
      • commit_message (字符串):提交信息
      • branch (字符串):创建/更新文件的分支
      • previous_path (可选字符串):要移动/重命名文件的原始路径
    • 返回值:文件内容和提交详情
  2. push_files

    • 在单个提交中推送多个文件
    • 输入参数:
      • project_id (字符串):项目ID或URL编码路径
      • branch (字符串):推送目标分支
      • files (数组):要推送的文件数组,每个包含file_pathcontent
      • commit_message (字符串):提交信息
    • 返回值:更新后的分支引用
  3. search_repositories

    • 搜索 GitLab 项目
    • 输入参数:
      • search (字符串):搜索查询
      • page (可选数字):分页页码
      • per_page (可选数字):每页结果数(默认20)
    • 返回值:项目搜索结果
  4. create_repository

    • 创建新的 GitLab 项目
    • 输入参数:
      • name (字符串):项目名称
      • description (可选字符串):项目描述
      • visibility (可选字符串):'private'(私有)、'internal'(内部)或'public'(公开)
      • initialize_with_readme (可选布尔值):是否使用README初始化
    • 返回值:创建的项目详情
  5. get_file_contents

    • 获取文件或目录内容
    • 输入参数:
      • project_id (字符串):项目ID或URL编码路径
      • file_path (字符串):文件/目录路径
      • ref (可选字符串):获取内容的分支/标签/提交
    • 返回值:文件/目录内容
  6. create_issue

    • 创建新问题
    • 输入参数:
      • project_id (字符串):项目ID或URL编码路径
      • title (字符串):问题标题
      • description (可选字符串):问题描述
      • assignee_ids (可选数字数组):分配的用户ID
      • labels (可选字符串数组):要添加的标签
      • milestone_id (可选数字):里程碑ID
    • 返回值:创建的问题详情
  7. create_merge_request

    • 创建新的合并请求
    • 输入参数:
      • project_id (字符串):项目ID或URL编码路径
      • title (字符串):MR标题
      • description (可选字符串):MR描述
      • source_branch (字符串):包含更改的分支
      • target_branch (字符串):合并目标分支
      • draft (可选布尔值):是否创建为草稿MR
      • allow_collaboration (可选布尔值):是否允许上游成员提交
    • 返回值:创建的合并请求详情
  8. fork_repository

    • 分叉项目
    • 输入参数:
      • project_id (字符串):项目ID或URL编码路径
      • namespace (可选字符串):分叉目标命名空间
    • 返回值:分叉的项目详情
  9. create_branch

    • 创建新分支
    • 输入参数:
      • project_id (字符串):项目ID或URL编码路径
      • branch (字符串):新分支名称
      • ref (可选字符串):新分支的源分支/提交
    • 返回值:创建的分支引用

安装配置

个人访问令牌

创建 GitLab 个人访问令牌,需要以下权限:

  • 进入 GitLab 的"用户设置 > 访问令牌"
  • 选择所需范围:
    • api:完整API访问权限
    • read_api:只读访问权限
    • read_repositorywrite_repository:仓库操作权限
  • 创建令牌并安全保存

与 Claude Desktop 配合使用

将以下内容添加到你的 claude_desktop_config.json 文件中:

Docker 方式

{
  "mcpServers": { 
    "gitlab": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "GITLAB_PERSONAL_ACCESS_TOKEN",
        "-e",
        "GITLAB_API_URL",
        "mcp/gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<你的令牌>",
        "GITLAB_API_URL": "https://gitlab.com/api/v4" // 可选,自托管实例使用
      }
    }
  }
}

NPX 方式

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<你的令牌>",
        "GITLAB_API_URL": "https://gitlab.com/api/v4" // 可选,自托管实例使用
      }
    }
  }
}

与 VS Code 配合使用

快速安装,请使用以下一键安装按钮之一...

在 VS Code 中使用 NPX 安装 在 VS Code Insiders 中使用 NPX 安装

在 VS Code 中使用 Docker 安装 在 VS Code Insiders 中使用 Docker 安装

对于手动安装,请将以下 JSON 块添加到 VS Code 的用户设置(JSON)文件中。可以通过按 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 来完成。

可选地,你可以将它添加到工作区中的 .vscode/mcp.json 文件中。这将允许你与他人共享配置。

注意:在 .vscode/mcp.json 文件中不需要 mcp 键。

Docker 方式

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "gitlab_token",
        "description": "GitLab Personal Access Token",
        "password": true
      },
      {
        "type": "promptString",
        "id": "gitlab_url",
        "description": "GitLab API URL (optional)",
        "default": "https://gitlab.com/api/v4"
      }
    ],
    "servers": {
      "gitlab": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "mcp/gitlab"
        ],
        "env": {
          "GITLAB_PERSONAL_ACCESS_TOKEN": "${input:gitlab_token}",
          "GITLAB_API_URL": "${input:gitlab_url}"
        }
      }
    }
  }
}

NPX 方式

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "gitlab_token",
        "description": "GitLab Personal Access Token",
        "password": true
      },
      {
        "type": "promptString",
        "id": "gitlab_url",
        "description": "GitLab API URL (optional)",
        "default": "https://gitlab.com/api/v4"
      }
    ],
    "servers": {
      "gitlab": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-gitlab"
        ],
        "env": {
          "GITLAB_PERSONAL_ACCESS_TOKEN": "${input:gitlab_token}",
          "GITLAB_API_URL": "${input:gitlab_url}"
        }
      }
    }
  }
}

VS Code 使用方法

快速安装,请使用以下一键安装按钮...

在 VS Code 中使用 NPX 安装 在 VS Code Insiders 中使用 NPX 安装

在 VS Code 中使用 Docker 安装 在 VS Code Insiders 中使用 Docker 安装

要手动安装,请将以下 JSON 代码块添加到 VS Code 的用户设置 (JSON) 文件中。您可以按 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 来完成此操作。

或者,您可以将其添加到工作区中的 .vscode/mcp.json 文件中。这允许您与他人共享配置。

请注意,.vscode/mcp.json 文件中不需要 mcp 密钥。

Docker

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "gitlab_token",
        "description": "GitLab 个人访问令牌",
        "password": true
      },
      {
        "type": "promptString",
        "id": "gitlab_url",
        "description": "GitLab API URL (可选)",
        "default": "https://gitlab.com/api/v4"
      }
    ],
    "servers": {
      "gitlab": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "mcp/gitlab"
        ],
        "env": {
          "GITLAB_PERSONAL_ACCESS_TOKEN": "${input:gitlab_token}",
          "GITLAB_API_URL": "${input:gitlab_url}"
        }
      }
    }
  }
}

NPX

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "gitlab_token",
        "description": "GitLab 个人访问令牌",
        "password": true
      },
      {
        "type": "promptString",
        "id": "gitlab_url",
        "description": "GitLab API URL (可选)",
        "default": "https://gitlab.com/api/v4"
      }
    ],
    "servers": {
      "gitlab": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-gitlab"
        ],
        "env": {
          "GITLAB_PERSONAL_ACCESS_TOKEN": "${input:gitlab_token}",
          "GITLAB_API_URL": "${input:gitlab_url}"
        }
      }
    }
  }
}

构建

Docker构建:

docker build -t vonwig/gitlab:mcp -f src/gitlab/Dockerfile .

环境变量

  • GITLAB_PERSONAL_ACCESS_TOKEN: 你的GitLab个人访问令牌(必填)
  • GITLAB_API_URL: GitLab API 的基础URL(可选,默认为 https://gitlab.com/api/v4

许可证

本MCP服务器采用MIT许可证授权。这意味着您可以自由使用、修改和分发此软件,但须遵守MIT许可证的条款和条件。更多详情,请参阅项目仓库中的LICENSE文件。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档