GitLab通信服务器

GitLab MCP服务器提供与GitLab项目的API交互功能,包括文件管理、问题跟踪、合并请求和管道操作等。适用于开发团队协作和项目管理。

  • by harshmaur
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 harshmaur/gitlab-mcp

使用说明

更好的GitLab MCP服务器

@zereight/mcp gitlab

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

用法

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

使用Claude应用程序时,您需要直接设置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": "false",
        "USE_GITLAB_WIKI": "false", // use wiki api?
        "USE_MILESTONE": "false", // use milestone api?
        "USE_PIPELINE": "false" // use pipeline api?
      }
    }
  }
}

码头工人

  • 标准
{
  "mcpServers": {
    "GitLab communication server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITLAB_PERSONAL_ACCESS_TOKEN",
        "-e",
        "GITLAB_API_URL",
        "-e",
        "GITLAB_READ_ONLY_MODE",
        "-e",
        "USE_GITLAB_WIKI",
        "-e",
        "USE_MILESTONE",
        "-e",
        "USE_PIPELINE",
        "iwakitakuma/gitlab-mcp"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
        "GITLAB_API_URL": "https://gitlab.com/api/v4", // Optional, for self-hosted GitLab
        "GITLAB_READ_ONLY_MODE": "false",
        "USE_GITLAB_WIKI": "true",
        "USE_MILESTONE": "true",
        "USE_PIPELINE": "true"
      }
    }
  }
}
  • SSE
docker run -i --rm \
  -e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
  -e GITLAB_API_URL= "https://gitlab.com/api/v4"\
  -e GITLAB_READ_ONLY_MODE=true \
  -e USE_GITLAB_WIKI=true \
  -e USE_MILESTONE=true \
  -e USE_PIPELINE=true \
  -e SSE=true \
  -p 3333:3002 \
  iwakitakuma/gitlab-mcp
{
  "mcpServers": {
    "GitLab communication server": {
      "url": "http://localhost:3333/sse"
    }
  }
}

Docker镜像推送

$ sh scripts/image_push.sh docker_user_name

环境变量

  • GITLAB_PERSONAL_ACCESS_TOKEN:您的GitLab个人访问令牌。
  • GITLAB_API_URL:您的GitLab API URL。(默认值: https://gitlab.com/api/v4)
  • GITLAB_READ_ONLY_MODE:设置为“true”时,限制服务器仅公开只读操作。对于增强安全性或不需要写访问时很有用。对于与游标一起使用也很有用,它有40个工具限制。
  • USE_GITLAB_WIKI:设置为“true”时,启用wiki相关工具(list_wiki_pages、get_wiki_page、create_wiki_page、update_wiki_ppage、delete_wiki_plage)。默认情况下,wiki功能处于禁用状态。
  • USE_MILESTONE:当设置为“true”时,启用与里程碑相关的工具(list_milestones、get_milestone、create_milestone、edit_milestone、delete_milestone-issue、get_milstone_merge_requests、promote_milestoney、get_miletone_burndown_events)。默认情况下,里程碑功能处于禁用状态。
  • USE_PIPELINE:当设置为“true”时,启用与管道相关的工具(list_pipelines、get_pipeline、list_pipeline_jobs、get_pipeline_job、get_pip _job_output、create_pipeline、retry_pipeline、cancel_pipeline)。默认情况下,管道功能处于禁用状态。

工具🛠️

+

  1. create_or_update_file -在GitLab项目中创建或更新单个文件
  2. search_repositories -搜索GitLab项目
  3. create_repository -创建一个新的GitLab项目
  4. get_file_contents -从GitLab项目中获取文件或目录的内容
  5. push_files -在一次提交中将多个文件推送到GitLab项目中
  6. create_issue -在GitLab项目中创建新问题
  7. create_merge_request -在GitLab项目中创建新的合并请求
  8. fork_repository -将GitLab项目分叉到您的帐户或指定的命名空间
  9. create_branch -在GitLab项目中创建一个新分支
  10. get_merge_request -获取合并请求的详细信息(必须提供mergeRequestIid或branchName)
  11. get_merge_request_diffs -获取合并请求的更改/差异(必须提供mergeRequestIid或branchName)
  12. get_branch_diffs -获取GitLab项目中两个分支或提交之间的更改/差异
  13. update_merge_request -更新合并请求(必须提供mergeRequestIid或branchName)
  14. create_note -为问题或合并请求创建新注释(注释)
  15. create_merge_request_thread -在合并请求上创建新线程
  16. mr_discussions -列出合并请求的讨论项
  17. update_merge_request_note -修改现有的合并请求线程注释
  18. create_merge_request_note -向现有合并请求线程添加新注释
  19. update_issue_note -修改现有问题线索注释
  20. create_issue_note -向现有问题线程添加新注释
  21. list_issues -使用过滤选项列出GitLab项目中的问题
  22. get_issue -获取GitLab项目中特定问题的详细信息
  23. update_issue -更新GitLab项目中的问题
  24. delete_issue -从GitLab项目中删除问题
  25. list_issue_links -列出特定问题的所有问题链接
  26. list_issue_discussions -列出GitLab项目中某个问题的讨论
  27. get_issue_link -获取特定问题链接
  28. create_issue_link -在两个问题之间创建问题链接
  29. delete_issue_link -删除问题链接
  30. list_namespaces -列出当前用户可用的所有命名空间
  31. get_namespace -通过ID或路径获取命名空间的详细信息
  32. verify_namespace -验证命名空间路径是否存在
  33. get_project -获取特定项目的详细信息
  34. list_projects -列出当前用户可访问的项目
  35. list_labels -列出项目的标签
  36. get_label -从项目中获取单个标签
  37. create_label -在项目中创建新标签
  38. update_label -更新项目中的现有标签
  39. delete_label -从项目中删除标签
  40. list_group_projects -列出GitLab组中具有筛选选项的项目
  41. list_wiki_pages -列出GitLab项目中的wiki页面
  42. get_wiki_page -获取特定wiki页面的详细信息
  43. create_wiki_page -在GitLab项目中创建一个新的wiki页面
  44. update_wiki_page -更新GitLab项目中的现有wiki页面
  45. delete_wiki_page -从GitLab项目中删除wiki页面
  46. get_repository_tree -获取GitLab项目的存储库树(列出文件和目录)
  47. list_pipelines -列出GitLab项目中带有过滤选项的管道
  48. get_pipeline -获取GitLab项目中特定管道的详细信息
  49. list_pipeline_jobs -列出特定管道中的所有作业
  50. get_pipeline_job -获取GitLab管道作业号的详细信息
  51. get_pipeline_job_output -获取GitLab管道作业号的输出/跟踪
  52. create_pipeline -为分支或标记创建新管道
  53. retry_pipeline -重试失败或取消的管道
  54. cancel_pipeline -取消正在运行的管道
  55. list_merge_requests -在GitLab项目中列出带有过滤选项的合并请求
  56. list_milestones -列出GitLab项目中具有过滤选项的里程碑
  57. get_milestone -获取特定里程碑的详细信息
  58. create_milestone -在GitLab项目中创建新的里程碑
  59. edit_milestone -编辑GitLab项目中的现有里程碑
  60. delete_milestone -从GitLab项目中删除里程碑
  61. get_milestone_issue -获取与特定里程碑相关的问题
  62. get_milestone_merge_requests -获取与特定里程碑关联的合并请求
  63. promote_milestone -将里程碑推进到下一阶段
  64. get_milestone_burndown_events -获取特定里程碑的烧毁事件
  65. get_users -按用户名获取GitLab用户详细信息