使用说明
MCP GitLab发布服务器
用于列出GitLab过滤器问题的模型上下文协议(MCP)服务器。
特性
- 列出GitLab项目的问题
- 列出可访问的GitLab项目以推断正确的项目路径
- 按用户、项目、里程碑和标签筛选
- 使用GitLab应用程序令牌进行身份验证(只读)
- 在Docker中本地运行
设置
- 克隆存储库
- 以.env.example.为基础的Config.env
- 插入您的gitlab个人令牌
- 运行docker
码头工人
使用Docker构建和运行:
# Start MCP SERVER
docker compose up -d --build
# GET LOGS
docker compose logs -f
# REMOVE MCP_SERVER FROM DOCKER
docker compose down
开发人员容器(可选)
对于不在本地安装任何东西的完整开发环境,请使用VS Code Dev Containers:
- 在VS Code中打开项目
- 出现提示时,单击“在容器中重新打开”或使用命令面板:
Dev Containers: Reopen in Container - 容器将在端口8000上自动构建并启动MCP服务器
Dev容器包括:
- 具有所有依赖项的Python环境
- Python开发的VS代码扩展
- MCP服务器在后台运行
- 端口转发,便于访问
配置(必填)
服务器使用环境变量进行配置。您可以直接设置它们或使用 .env 文件:
GITLAB_BASE_URL:您的GitLab实例URL(默认值:https://git.yourorg.edu.br)GITLAB_TOKEN:您的GitLab应用程序令牌(必填)
使用.env文件(推荐)
- 复制示例文件:
cp .env.example .env - 编辑
.env根据您的实际值:GITLAB_BASE_URL=https://git.yourorg.edu.br GITLAB_TOKEN=glpat-your-actual-token-here
服务器将自动从 .env 文件。
客户端集成
1.配置MCP(stdio——推荐)
服务器通过运行 标准,让Claude Code自动管理流程。
克劳德代码 --添加到 .claude/settings.json 在您的项目中:
{
"mcpServers": {
"gitlab-issues": {
"type": "stdio",
"command": ".venv/bin/python",
"args": ["-m", "src.server"]
}
}
}
或者通过CLI添加:
claude mcp add gitlab-issues stdio -- python -m src.server
VS代码 --添加到 .vscode/mcp.json:
{
"servers": {
"gitlab-issues": {
"type": "stdio",
"command": ".venv/bin/python",
"args": ["-m", "src.server"],
"tools": [
"list_projects",
"list_issues"
]
}
}
}
2.替代方案——通过Docker实现SSE
如果你更喜欢将服务器作为网络服务(SSE)运行,请使用Docker:
docker compose up -d --build
然后配置MCP客户端 http://127.0.0.1:8000/sse 和 type: "sse".
3.重新启动VSCode或Claude
关闭并重新打开AI CLI以使更改生效。
4.示例
连接后,只需询问您的GitLab问题:
- “列出我的GitLab项目”
- “显示此MCP服务器中可用的工具”
- “找到名为xyz和xpto的GitLab项目,然后列出分配给daniel.estrazulas的所有问题”
- “列出分配给daniel.estrazulas的xyz的所有未决问题”
- “列出项目myproject中的所有未解决问题”
- “显示分配给john.doe的问题”
- “获取带有“关键”标签的错误”
- “列出所有已解决的问题”
典型流程:
- 呼叫
list_projects查找正确的项目或命名空间路径。 - 使用返回的
path_with_namespace作为project_id在list_issues. - 过滤器问题
assignee_username,milestone,labels,或state根据需要。
可用工具
list_projects:列出可访问的GitLab项目,以便LLM可以推断出正确的路径。list_issues:使用可选筛选器列出单个项目的问题。
Claude/VSCode可以调用 list_projects 首先推断权利 path_with_namespace,然后致电 list_issues 自动。
可用工具: list_issues
参数:
project_idGitLab项目的ID或路径(必填)assignee_username:按受让人用户名筛选(可选)milestone:按里程碑标题筛选(可选)labels:逗号分隔的标签列表(可选)state:问题状态-opened,closed,或all(默认值:opened)
可用工具: list_projects
参数:
search:可选搜索词,按名称或路径缩小项目列表membership:仅限于令牌所属的项目,这是默认的,通常最适合推理per_page:从GitLab获取项目时使用的页面大小
使用返回的 path_with_namespace 价值与 list_issues.
可用提示: listar_issues_projetos
服务器还公开了一个可重用的MCP提示符,名为 listar_issues_projetos.
- 它重用来自的内容
src/prompts/listar_issues_projetos.md - 它可供支持快速发现的MCP客户端使用
- 在VS Code中,提示出现在服务器的MCP功能旁边,可以从客户端UI插入或执行
此提示是只读的,不会改变方式 list_issues 作品。
检查MCP
# stdio mode (current)
npx @modelcontextprotocol/inspector .venv/bin/python -m src.server
# SSE mode (when running via Docker)
# npx @modelcontextprotocol/inspector http://127.0.0.1:8000/sse