MCP Gitlab

io.github.crunchtools由 GitHub 账号 crunchtools 发布v0.4.1更新于 Oct 27, 2026

Secure MCP server for GitLab projects, merge requests, issues, and pipelines

发布方自己的服务:Gitlab

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

本地 MCP 服务器,让助手浏览并操作 GitLab 的项目、合并请求、议题、流水线和搜索结果。

可以做什么
  • 列出并查看项目、分支和提交,浏览群组及其项目
  • 列出、创建和更新合并请求,读取差异并添加评论
  • 列出、创建和更新议题,读取或添加议题评论
  • 列出 CI/CD 流水线,查看流水线作业并读取作业日志
  • 在全局或单个项目内搜索
适用场景
适合在 GitLab 上工作时使用:让助手总结合并请求、梳理议题、排查流水线失败或搜索代码,无需离开对话。支持 gitlab.com、自建和企业版实例。
运行要求
以 Python 包(uvx 或 pip)或容器镜像在本地运行。需要 GitLab 个人访问令牌,通过 GITLAB_TOKEN 提供;自建实例可选 GITLAB_URL,自定义证书可用 SSL_CERT_FILE 或 GITLAB_SSL_VERIFY。需要能访问 GitLab 实例的网络。
安装前请注意
该令牌可访问你的 GitLab 账号:read_api 为只读,api 则允许创建和更新合并请求、议题与评论。请将令牌放在环境变量中,不要写入文件或命令行参数,并避免用 GITLAB_SSL_VERIFY 关闭 TLS 校验。

安装

在 SourceWeft 中

  1. 打开 控制台中的 MCP Gitlab,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

MCP GitLab CrunchTools

A secure MCP (Model Context Protocol) server for GitLab projects, merge requests, issues, pipelines, and search. Works with any GitLab instance (gitlab.com, self-hosted, or enterprise).

Overview

This MCP server is designed to be:

  • Secure by default - documented threat model (see SECURITY.md), Pydantic input validation, and the API token held as a SecretStr to prevent accidental logging
  • No third-party services - Runs locally via stdio, your API token never leaves your machine
  • Multi-instance - Works with gitlab.com, self-hosted GitLab, or enterprise instances via configurable URL
  • Cross-platform - Works on Linux, macOS, and Windows
  • Automatically updated - GitHub Actions monitor for CVEs and update dependencies
  • Containerized - Available at quay.io/crunchtools/mcp-gitlab built on Hummingbird Python base image

Naming Convention

ComponentName
GitHub repocrunchtools/mcp-gitlab
Containerquay.io/crunchtools/mcp-gitlab
Python package (PyPI)mcp-gitlab-crunchtools
CLI commandmcp-gitlab-crunchtools
Module importmcp_gitlab_crunchtools

Why Hummingbird?

The container image is built on the Hummingbird Python base image from Project Hummingbird, which provides:

  • Minimal CVE exposure - Built with a minimal package set, dramatically reducing the attack surface
  • Regular updates - Security patches are applied promptly
  • Optimized for Python - Pre-configured Python environment with uv package manager
  • Production-ready - Proper signal handling and non-root user defaults

Features

Project Management (5 tools)

  • list_projects - List projects with filtering and search
  • get_project - Get project details by ID or path
  • list_project_branches - List repository branches
  • get_project_branch - Get a single branch
  • list_project_commits - List commits with date/path filtering

Group Management (3 tools)

  • list_groups - List groups with filtering
  • get_group - Get group details by ID or path
  • list_group_projects - List projects in a group (with subgroup support)

Merge Requests (7 tools)

  • list_merge_requests - List MRs by state, labels, milestone
  • get_merge_request - Get MR details
  • create_merge_request - Create a new MR
  • update_merge_request - Update MR title, description, state, assignees
  • list_mr_notes - List comments on an MR
  • create_mr_note - Add a comment to an MR
  • get_mr_changes - Get the diff for an MR

Issues (6 tools)

  • list_issues - List issues by state, labels, milestone, assignee
  • get_issue - Get issue details
  • create_issue - Create a new issue
  • update_issue - Update issue title, description, state, labels
  • list_issue_notes - List comments on an issue
  • create_issue_note - Add a comment to an issue

Pipelines (4 tools)

  • list_pipelines - List CI/CD pipelines with status filtering
  • get_pipeline - Get pipeline details
  • list_pipeline_jobs - List jobs in a pipeline
  • get_job_log - Get job log output

Search (2 tools)

  • search_global - Search across all accessible GitLab resources
  • search_project - Search within a specific project

Installation

With uvx (Recommended)

bash
uvx mcp-gitlab-crunchtools

With pip

bash
pip install mcp-gitlab-crunchtools

With Container

bash
podman run -e GITLAB_TOKEN=your_token \    quay.io/crunchtools/mcp-gitlab

Configuration

Environment Variables

VariableRequiredDefaultDescription
GITLAB_TOKENYes—Personal Access Token
GITLAB_URLNohttps://gitlab.comGitLab instance URL
SSL_CERT_FILENo—Custom CA bundle path, for self-hosted GitLab with an internal CA
GITLAB_SSL_VERIFYNotrueSet false to disable TLS verification (not recommended)

Creating a GitLab Personal Access Token

  1. Navigate to Access Tokens

  2. Create a Custom Token

    • Name: mcp-gitlab-crunchtools
    • Expiration: Set an appropriate date (90 days recommended)
    • Scopes: Select scopes based on your needs
  3. Scope Selection

    ScopeAccess LevelCapabilities
    read_apiRead-onlyList/view projects, issues, MRs, pipelines
    apiFull accessAll features including create/update
  4. Copy and Store Token

    • Copy the token immediately (starts with glpat-)
    • Store securely in a password manager

Add to Claude Code

bash
claude mcp add mcp-gitlab-crunchtools \    --env GITLAB_TOKEN=your_token_here \    -- uvx mcp-gitlab-crunchtools

For self-hosted GitLab:

bash
claude mcp add mcp-gitlab-crunchtools \    --env GITLAB_TOKEN=your_token_here \    --env GITLAB_URL=https://gitlab.example.com \    -- uvx mcp-gitlab-crunchtools

For the container version:

bash
claude mcp add mcp-gitlab-crunchtools \    --env GITLAB_TOKEN=your_token_here \    -- podman run -i --rm -e GITLAB_TOKEN quay.io/crunchtools/mcp-gitlab

Usage Examples

List Your Projects

User: List my GitLab projectsAssistant: [calls list_projects with membership=true]

View Merge Requests

User: Show open merge requests for my-org/backendAssistant: [calls list_merge_requests with project_id="my-org/backend"]

Create an Issue

User: Create an issue in my-org/backend titled "Fix login timeout"Assistant: [calls create_issue with title="Fix login timeout"]

Check Pipeline Status

User: Show failed pipelines for my-org/apiAssistant: [calls list_pipelines with status="failed"]

Search Code

User: Search for "authentication" in my-org/backendAssistant: [calls search_project with scope="blobs"]

Security

This server was designed with security as a primary concern. See SECURITY.md for:

  • Threat model and attack vectors
  • Defense in depth architecture
  • Token handling best practices
  • Input validation rules
  • Audit logging

Key Security Features

  1. Token Protection

    • Stored as SecretStr (never accidentally logged)
    • Environment variable only (never in files or args)
    • Sanitized from all error messages
  2. Input Validation

    • Pydantic models for all inputs
    • Allowlist character validation for project/group IDs
    • Path traversal prevention
  3. API Hardening

    • HTTPS enforcement (except localhost)
    • TLS certificate validation
    • Request timeouts (30s)
    • Response size limits (10MB)
  4. Automated CVE Scanning

    • GitHub Actions scan dependencies weekly
    • Container security scanning with Trivy
    • CodeQL analysis for Python

Development

Setup

bash
git clone https://github.com/crunchtools/mcp-gitlab.gitcd mcp-gitlabuv sync

Run Tests

bash
uv run pytest

Lint and Type Check

bash
uv run ruff check src testsuv run mypy src

Build Container

bash
podman build -t mcp-gitlab .

License

AGPL-3.0-or-later

Contributing

Contributions welcome! Please read SECURITY.md before submitting security-related changes.

Links

来源:README.md,提交 4524e51

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.4.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Gitlab 集成