使用说明
GitLab MCP服务器
用于与GitLab API交互的MCP(模型上下文协议)服务器。该服务器提供了一组工具,允许AI客户端对GitLab存储库、问题、合并请求等执行操作。所有操作都支持同步和异步执行模式。
安装
使用紫外线(推荐)
# Clone the repository
git clone https://github.com/Adit-999/gitlab-mcp.git
cd gitlab-mcp
# Install dependencies using uv
uv sync
使用pip
# Clone the repository
git clone https://github.com/Adit-999/gitlab-mcp.git
cd gitlab-mcp
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .
配置
GitLab MCP服务器需要两个环境变量才能正常运行:
GITLAB_PERSONAL_ACCESS_TOKEN-用于使用GitLab API进行身份验证GITLAB_API_URL-GitLab API的基本URL
选项1:环境变量
创建一个 .env 项目根目录中包含以下变量的文件:
GITLAB_PERSONAL_ACCESS_TOKEN=your_personal_access_token
GITLAB_API_URL=https://gitlab.com
选项2:MCP配置
您还可以在MCP JSON配置文件中配置MCP服务器:
{
"mcpServers": {
"gitlab-mcp": {
"command": "uv",
"args": ["run", "--with", "mcp[cli]", "mcp", "run", "/path/to/gitlab-mcp/server.py"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_personal_access_token",
"GITLAB_API_URL": "https://gitlab.com"
}
}
}
}
为Claude Desktop配置uv
uv run mcp install server.py
项目结构
该项目遵循模块化、领域驱动的架构:
gitlab-mcp/
├── src/ # Source code
│ ├── api/ # API interaction layer
│ │ ├── rest_client.py # GitLab REST API client
│ │ ├── exceptions.py # API exception definitions
│ ├── schemas/ # Data models and validation
│ │ ├── base.py # Base schema classes
│ │ ├── repositories.py # Repository data models
│ │ ├── branches.py # Branch data models
│ │ ├── issues.py # Issue data models
│ │ ├── merge_requests.py # Merge request data models
│ │ ├── groups.py # Group data models
│ │ └── search.py # search data models
│ ├── services/ # Business logic layer
│ │ ├── repositories.py # Repository operations
│ │ ├── branches.py # Branch operations
│ │ ├── issues.py # Issue operations
│ │ ├── merge_requests.py # Merge request operations
│ │ ├── groups.py # Group operations
│ │ └── search.py # search operations
│ └── tools/ # MCP tool implementations
│ ├── repositories.py # Repository tools
│ ├── branches.py # Branch tools
│ ├── issues.py # Issue tools
│ ├── merge_requests.py # Merge request tools
│ ├── groups.py # Group tools
│ └── search.py # search tools
├── server.py # Main MCP server entry point
这种架构提供了几个好处:
- 关注点分离:每个模块都有明确的职责
- 类型安全性:Pydantic模式确保数据验证
- 可维护性:域驱动的组织使代码更易于导航
- 可扩展性:可以按照既定模式添加新功能
- 异步支持:所有操作都有同步和异步版本
可用工具
服务器提供了以下与GitLab交互的工具:
库管理
create_repository:创建一个新的GitLab仓库list_repository_tree:列出存储库树的内容
转移操作
create_branch:在GitLab存储库中创建一个新分支list_branches:列出GitLab存储库中的分支get_branch:获取特定GitLab分支的详细信息delete_branch:从GitLab存储库中删除分支delete_merged_branches:从GitLab存储库中删除所有合并的分支protect_branch:保护GitLab存储库中的分支unprotect_branch:从GitLab存储库中的分支中删除保护get_default_branch_ref:获取GitLab存储库的默认分支引用
文件操作
create_file:在GitLab存储库中创建一个新文件get_file_contents:从GitLab存储库检索文件内容update_file:更新GitLab存储库中的现有文件delete_file:从GitLab存储库中删除文件
问题管理
create_issue:在GitLab存储库中创建新问题list_all_issues:列出经过身份验证的用户有权访问的所有问题get_issue:获取特定GitLab问题的详细信息close_issue:关闭GitLab问题delete_issue:从GitLab存储库中删除问题move_issue:将问题转移到其他项目comment_on_issue:在GitLab问题中添加评论list_issue_comments:列出GitLab问题的评论
合并请求操作
create_merge_request:在GitLab存储库中创建新的合并请求list_merge_requests:列出GitLab项目的合并请求get_merge_request:获取特定GitLab合并请求的详细信息merge_merge_request:合并GitLab合并请求update_merge_request:更新GitLab存储库中的现有合并请求。delete_merge_request:从GitLab存储库中删除合并请求。merge_request_changes:获取特定合并请求的更改。create_merge_request_comment:在GitLab合并请求中添加注释。
作业操作
get_job_logs:从GitLab作业获取日志
组操作
list_groups:列出GitLab组get_group:获取特定的GitLab组get_group_by_project_namespace:基于项目命名空间获取GitLab组
搜索工具
search_globally:搜索所有GitLab资源(目前支持项目和文件/blobs)。search_project:在特定项目内搜索(目前支持项目和文件/bobs)。search_group:在特定组内搜索(目前支持项目和文件/bobs)。
故障排除
常见问题
- GitLab API身份验证错误:确保您的
GITLAB_PERSONAL_ACCESS_TOKEN具有必要的权限,并在环境变量中正确设置。 - 非类型错误:处理空结果时,某些函数可能会遇到问题。如果您遇到这些错误,请报告并详细说明重现步骤。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
