GitLab MCP 服务器
GitLab API 的 MCP 服务器,支持项目管理、文件操作等。
特征
自动创建分支:创建/更新文件或推送更改时,如果分支不存在,则会自动创建分支
全面的错误处理:针对常见问题的清晰错误消息
Git 历史记录保存:操作无需强制推送即可维护正确的 Git 历史记录
批量操作:支持单文件和多文件操作
工具
create_or_update_file创建或更新项目中的单个文件
输入:
project_id(字符串):项目 ID 或 URL 编码路径file_path(字符串):创建/更新文件的路径content(字符串):文件的内容commit_message(字符串):提交消息branch(字符串):创建/更新文件的分支previous_path(可选字符串):要移动/重命名的文件的路径
返回:文件内容和提交详细信息
push_files在一次提交中推送多个文件
输入:
project_id(字符串):项目 ID 或 URL 编码路径branch(字符串):要推送到的分支files(数组):要推送的文件,每个文件都有file_path和contentcommit_message(字符串):提交消息
返回:更新的分支参考
search_repositories搜索 GitLab 项目
输入:
search(字符串):搜索查询page(可选数字):分页的页码per_page(可选数字):每页结果数(默认 20)
返回:项目搜索结果
create_repository创建新的 GitLab 项目
输入:
name(字符串):项目名称description(可选字符串):项目描述visibility(可选字符串):“private”、“internal”或“public”initialize_with_readme(可选布尔值): 使用 README 初始化
返回:创建的项目详细信息
get_file_contents获取文件或目录的内容
输入:
project_id(字符串):项目 ID 或 URL 编码路径file_path(字符串):文件/目录的路径ref(可选字符串):从中获取内容的分支/标签/提交
返回:文件/目录内容
create_issue创建新问题
输入:
project_id(字符串):项目 ID 或 URL 编码路径title(字符串):问题标题description(可选字符串):问题描述assignee_ids(可选数字[]):要分配的用户 IDlabels(可选字符串[]):要添加的标签milestone_id(可选数字):里程碑 ID
返回:创建问题详情
create_merge_request创建新的合并请求
输入:
project_id(字符串):项目 ID 或 URL 编码路径title(字符串):MR 标题description(可选字符串):MR 描述source_branch(字符串):包含更改的分支target_branch(字符串):要合并的分支draft(可选布尔值):创建为 MR 草稿allow_collaboration(可选布尔值):允许上游成员提交
返回:创建的合并请求详细信息
fork_repository派生一个项目
输入:
project_id(字符串):项目 ID 或 URL 编码路径namespace(可选字符串):要分叉到的命名空间
返回:分叉项目详细信息
create_branch创建新分支
输入:
project_id(字符串):项目 ID 或 URL 编码路径branch(字符串):新分支的名称ref(可选字符串):新分支的源分支/提交
返回:创建的分支引用
Related MCP server: GitHub MCP Server Plus
设置
个人访问令牌
前往 GitLab 中的“用户设置”>“访问令牌”
选择所需的范围:
api用于完整 API 访问read_api用于只读访问read_repository和write_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": "<YOUR_TOKEN>",
"GITLAB_API_URL": "https://gitlab.com/api/v4" // Optional, for self-hosted instances
}
}
}
}NPX
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-gitlab"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>",
"GITLAB_API_URL": "https://gitlab.com/api/v4" // Optional, for self-hosted instances
}
}
}
}与 VS Code 一起使用
为了快速安装,请使用下面的一键安装按钮之一...
如需手动安装,请将以下 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}"
}
}
}
}
}建造
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 文件。
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.