G

GitLab MCP

@zereight/gitlab-mcp
Hosted
1 Stars 1.1k 次浏览 zereight 更新于 2026-08-23

识别到的语言类型为:英语 翻译结果:GitLab MCP

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "GitLab communication server": {
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "command": "npx",
      "env": {
        "GITLAB_API_URL": "your_gitlab_api_url",
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
        "GITLAB_READ_ONLY_MODE": "true"
      }
    }
  }
}

该服务需要配置环境变量:GITLAB_API_URL、GITLAB_PERSONAL_ACCESS_TOKEN

可用工具 (13 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

create_or_update_file 6 个参数 需填 5 项

Create or update a single file in a GitLab project

必填参数:project_id、file_path、content、commit_message、branch

search_repositories 3 个参数 需填 1 项

Search for GitLab projects

必填参数:search

create_repository 4 个参数 需填 1 项

Create a new GitLab project

必填参数:name

get_file_contents 3 个参数 需填 2 项

Get the contents of a file or directory from a GitLab project

必填参数:project_id、file_path

push_files 4 个参数 需填 4 项

Push multiple files to a GitLab project in a single commit

必填参数:project_id、branch、files、commit_message

create_issue 6 个参数 需填 2 项

Create a new issue in a GitLab project

必填参数:project_id、title

create_merge_request 7 个参数 需填 4 项

Create a new merge request in a GitLab project

必填参数:project_id、title、source_branch、target_branch

fork_repository 2 个参数 需填 1 项

Fork a GitLab project to your account or specified namespace

必填参数:project_id

create_branch 3 个参数 需填 2 项

Create a new branch in a GitLab project

必填参数:project_id、branch

get_merge_request 2 个参数 需填 2 项

Get details of a merge request

必填参数:project_id、merge_request_iid

get_merge_request_diffs 3 个参数 需填 2 项

Get the changes/diffs of a merge request

必填参数:project_id、merge_request_iid

update_merge_request 11 个参数 需填 2 项

Update a merge request

必填参数:project_id、merge_request_iid

create_note 4 个参数 需填 4 项

Create a new note (comment) to an issue or merge request

必填参数:project_id、noteable_type、noteable_iid、body

服务介绍

更好的 GitLab MCP 服务器

@zereight/mcp-gitlab

smithery 徽章

GitLab MCP(模型上下文协议)服务器。包含对原始 GitLab MCP 服务器的错误修复和改进。

使用方法

与 Claude App、Cline、Roo Code、Cursor 配合使用

在与 Claude App 配合使用时,您需要直接设置您的 API 密钥和 URL。

{
  "mcpServers": {
    "GitLab communication server": {
      "command": "npx",
      "args": ["-y", "@zereight/mcp-gitlab"],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
        "GITLAB_API_URL": "your_gitlab_api_url",
        "GITLAB_READ_ONLY_MODE": "true"
      }
    }
  }
}

环境变量

  • GITLAB_PERSONAL_ACCESS_TOKEN: 您的 GitLab 个人访问令牌。
  • GITLAB_API_URL: 您的 GitLab API URL。(默认值:https://gitlab.com/api/v4
  • GITLAB_READ_ONLY_MODE: 当设置为 'true' 时,限制服务器仅暴露只读操作。这在增强安全性或不需要写入权限时非常有用。对于与 Cursor 一起使用并受其 40 个工具限制的情况也很有用。

工具 🛠️

  1. create_or_update_file

    • Create or update a single file in a GitLab project. 📝
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • file_path (string): Path to create/update the file
      • content (string): File content
      • commit_message (string): Commit message
      • branch (string): Branch to create/update the file in
      • previous_path (optional string): Previous file path when renaming a file
    • Returns: File content and commit details
  2. push_files

    • Push multiple files in a single commit. 📤
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • branch (string): Branch to push to
      • files (array): Array of files to push, each with file_path and content properties
      • commit_message (string): Commit message
    • Returns: Updated branch reference
  3. search_repositories

    • Search for GitLab projects. 🔍
    • Inputs:
      • search (string): Search query
      • page (optional number): Page number (default: 1)
      • per_page (optional number): Results per page (default: 20, max: 100)
    • Returns: Project search results
  4. create_repository

    • Create a new GitLab project. ➕
    • Inputs:
      • name (string): Project name
      • description (optional string): Project description
      • visibility (optional string): Project visibility level (public, private, internal)
      • initialize_with_readme (optional boolean): Initialize with README
    • Returns: Details of the created project
  5. get_file_contents

    • Get the contents of a file or directory. 📂
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • file_path (string): Path to the file/directory
      • ref (optional string): Branch, tag, or commit SHA (default: default branch)
    • Returns: File/directory content
  6. create_issue

    • Create a new issue. 🐛
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • title (string): Issue title
      • description (string): Issue description
      • assignee_ids (optional number[]): Array of assignee IDs
      • milestone_id (optional number): Milestone ID
      • labels (optional string[]): Array of labels
    • Returns: Details of the created issue
  7. create_merge_request

    • Create a new merge request. 🚀
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • title (string): Merge request title
      • description (string): Merge request description
      • source_branch (string): Branch with changes
      • target_branch (string): Branch to merge into
      • allow_collaboration (optional boolean): Allow collaborators to push commits to the source branch
      • draft (optional boolean): Create as a draft merge request
    • Returns: Details of the created merge request
  8. fork_repository

    • Fork a project. 🍴
    • Inputs:
      • project_id (string): Project ID or namespace/project_path to fork
      • namespace (optional string): Namespace to fork into (default: user namespace)
    • Returns: Details of the forked project
  9. create_branch

    • Create a new branch. 🌿
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • name (string): New branch name
      • ref (optional string): Ref to create the branch from (branch, tag, commit SHA, default: default branch)
    • Returns: Created branch reference
  10. get_merge_request

    • Get details of a merge request. ℹ️
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • merge_request_iid (number): Merge request IID
    • Returns: Merge request details
  11. get_merge_request_diffs

    • Get changes (diffs) of a merge request. diff
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • merge_request_iid (number): Merge request IID
      • view (optional string): Diff view type ('inline' or 'parallel')
    • Returns: Array of merge request diff information
  12. update_merge_request

    • Update a merge request. 🔄
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • merge_request_iid (number): Merge request IID
      • title (optional string): New title
      • description (string): New description
      • target_branch (optional string): New target branch
      • state_event (optional string): Merge request state change event ('close', 'reopen')
      • remove_source_branch (optional boolean): Remove source branch after merge
      • allow_collaboration (optional boolean): Allow collaborators to push commits to the source branch
    • Returns: Updated merge request details
  13. create_note

    • Create a new note (comment) to an issue or merge request. 💬
    • Inputs:
      • project_id (string): Project ID or namespace/project_path
      • noteable_type (string): Type of noteable ("issue" or "merge_request")
      • noteable_iid (number): IID of the issue or merge request
      • body (string): Note content
    • Returns: Details of the created note
  14. list_projects

    • List accessible projects with rich filtering options 📊
    • Inputs:
      • Search/filtering:
        • search
        • owned
        • membership
        • archived
        • visibility
      • Features filtering:
        • with_issues_enabled
        • with_merge_requests_enabled
      • Sorting:
        • order_by
        • sort
      • Access control:
        • min_access_level
      • Pagination:
        • page
        • per_page
        • simple
    • Returns: Array of projects
  15. list_labels

    • List all labels for a project with filtering options 🏷️
    • Inputs:
      • project_id (string): Project ID or path
      • with_counts (optional): Include issue and merge request counts
      • include_ancestor_groups (optional): Include ancestor groups
      • search (optional): Filter labels by keyword
    • Returns: Array of labels
  16. get_label

    • Get a single label from a project
    • Inputs:
      • project_id (string): Project ID or path
      • label_id (number/string): Label ID or name
      • include_ancestor_groups (optional): Include ancestor groups
    • Returns: label details
  17. create_label

    • Create a new label in an object 🏷️➕
    • Inputs:
      • project_id (string): Project ID or path
      • name (string): Label name
      • color (string): Color in hex format (e.g., "#FF0000")
      • description (optional): Label description
      • priority (optional): Label priority
    • Returns: Created label details
  18. update_label

    • Update an existing label in a project 🏷️✏️
    • Inputs:
      • project_id (string): Project ID or path
      • label_id (number/string): Label ID or name
      • new_name (optional): New label name
      • color (optional): New color in hex format
      • description (optional): New description
      • priority (optional): New priority
    • Returns: Updated label details
  19. delete_label

    • Delete a label from a project 🏷️❌
    • Inputs:
      • project_id (string): Project ID or path
      • label_id (number/string): Label ID or name
    • Returns: Success message
  20. list_group_projects

    • List all projects in a GitLab group. 📂
    • Inputs:
      • group_id (string): Project ID or namespace/project_path
      • Filtering options:
        • include_subgroups (optional boolean): Include projects from subgroups
        • search (optional string): Search term to filter projects
        • archived (optional boolean): Filter for archived projects
        • visibility (optional string): Filter by project visibility (public/internal/private)
        • with_programming_language (optional string): Filter by programming language
        • starred (optional boolean): Filter by starred projects
      • Feature filtering:
        • with_issues_enabled (optional boolean): Filter projects with issues feature enabled
        • with_merge_requests_enabled (optional boolean): Filter projects with merge requests feature enabled
        • min_access_level (optional number): Filter by minimum access level
      • Pagination:
        • page (optional number): Page number
        • per_page (optional number): Results per page
      • Sorting:
        • order_by (optional string): Field to sort by
        • sort (optional string): Sort direction (asc/desc)
      • Additional data:
        • statistics (optional boolean): Include project statistics
        • with_custom_attributes (optional boolean): Include custom attributes
        • with_security_reports (optional boolean): Include security reports
    • Returns: List of projects

环境变量配置

在运行服务器之前,您需要设置以下环境变量:

GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token
GITLAB_API_URL=your_gitlab_api_url  # Default: https://gitlab.com/api/v4
GITLAB_READ_ONLY_MODE=true          # Optional: Enable read-only mode

许可证

MIT 许可证

相关 MCP 服务