使用说明
GitLab MCP服务器
用于GitLab API的MCP服务器,实现项目管理、文件操作等。
特性
- 自动创建分支:在创建/更新文件或推送更改时,如果分支不存在,则会自动创建分支
- 全面的错误处理:清除常见问题的错误消息
- Git历史保存:操作维护正确的Git历史记录,无需强制推送
- 批量操作:支持单文件和多文件操作
工具
-
create_or_update_file- 在项目中创建或更新单个文件
- 输入:
project_id(string):项目ID或URL编码路径file_path(string):创建/更新文件的路径content(string):文件内容commit_message(string):提交消息branch(string):创建/更新文件的分支previous_path(可选字符串):要移动/重命名的文件的路径
- 返回:文件内容和提交详细信息
-
push_files- 在一次提交中推送多个文件
- 输入:
project_id(string):项目ID或URL编码路径branch(string):要推送的分支files(array):要推送的文件,每个文件都有file_path和contentcommit_message(string):提交消息
- 返回:更新了分支引用
-
search_repositories- 搜索GitLab项目
- 输入:
search(string):搜索查询page(可选编号):分页页码per_page(可选数字):每页结果(默认值20)
- 返回:项目搜索结果
-
create_repository- 创建一个新的GitLab项目
- 输入:
name(string):项目名称description(可选字符串):项目描述visibility(可选字符串):“private”、“internal”或“public”initialize_with_readme(可选布尔值):使用README进行初始化
- 返回:已创建项目详细信息
-
get_file_contents- 获取文件或目录的内容
- 输入:
project_id(string):项目ID或URL编码路径file_path(string):文件/目录的路径ref(可选字符串):从Branch/tag/commit获取内容
- 返回:文件/目录内容
-
create_issue- 创建新问题
- 输入:
project_id(string):项目ID或URL编码路径title(string):发行标题description(可选字符串):问题描述assignee_ids(可选编号[]):要分配的用户IDlabels(可选字符串[]):要添加的标签milestone_id(可选编号):里程碑ID
- 退货:已创建问题详细信息
-
create_merge_request- 创建新的合并请求
- 输入:
project_id(string):项目ID或URL编码路径title(字符串):MR标题description(可选字符串):MR描述source_branch(string):包含更改的分支target_branch(string):要合并的分支draft(可选布尔值):创建为草稿MRallow_collaboration(可选布尔值):允许来自上游成员的提交
- 返回:已创建合并请求详细信息
-
fork_repository- 分叉项目
- 输入:
project_id(string):项目ID或URL编码路径namespace(可选字符串):要分叉到的命名空间
- 返回:分叉项目详细信息
-
create_branch- 创建新分支
- 输入:
project_id(string):项目ID或URL编码路径branch(string):新分支的名称ref(可选字符串):源分支/新分支的提交
- 返回:已创建分支引用
设置
个人访问令牌
创建GitLab个人访问令牌 具有适当的权限:
- 转到用户设置>访问GitLab中的令牌
- 选择所需的范围:
api用于API的完全访问read_api用于只读访问read_repository和write_repository用于存储库操作
- 创建令牌并安全保存
使用Claude Desktop
将以下内容添加到您的 claude_desktop_config.json:
码头工人
{
"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代码
为了快速安装,请使用下面的一键安装按钮之一。..
对于手动安装,请将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (JSON).
您可以选择将其添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。
请注意
mcp中不需要密钥.vscode/mcp.json文件。
码头工人
{
"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文件。