
MCP Gitlab
io.github.crunchtoolsPublished by GitHub account crunchtoolsv0.4.1Updated Oct 27, 2026
Secure MCP server for GitLab projects, merge requests, issues, and pipelines
The publisher's own server: Gitlab
Overview
Local MCP server that lets an assistant browse and act on GitLab projects, merge requests, issues, pipelines and search results.
- What you can do
- List and inspect projects, branches and commits, and browse groups and their projects
- List, create and update merge requests, read their diffs and add comments
- List, create and update issues, and read or add issue comments
- List CI/CD pipelines, inspect pipeline jobs and read job logs
- Search globally or within a single project
- When to use it
- Useful when you work in GitLab and want an assistant to summarize merge requests, triage issues, check pipeline failures or search code without leaving the chat. Works with gitlab.com, self-hosted and enterprise instances.
- Requirements
- Runs locally as a Python package (uvx or pip) or as a container image. Needs a GitLab Personal Access Token in GITLAB_TOKEN; optional GITLAB_URL for self-hosted instances, plus SSL_CERT_FILE or GITLAB_SSL_VERIFY for custom certificates. Network access to the GitLab instance.
Installation
In SourceWeft
- Open MCP Gitlab in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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
SecretStrto 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-gitlabbuilt on Hummingbird Python base image
Naming Convention
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 searchget_project- Get project details by ID or pathlist_project_branches- List repository branchesget_project_branch- Get a single branchlist_project_commits- List commits with date/path filtering
Group Management (3 tools)
list_groups- List groups with filteringget_group- Get group details by ID or pathlist_group_projects- List projects in a group (with subgroup support)
Merge Requests (7 tools)
list_merge_requests- List MRs by state, labels, milestoneget_merge_request- Get MR detailscreate_merge_request- Create a new MRupdate_merge_request- Update MR title, description, state, assigneeslist_mr_notes- List comments on an MRcreate_mr_note- Add a comment to an MRget_mr_changes- Get the diff for an MR
Issues (6 tools)
list_issues- List issues by state, labels, milestone, assigneeget_issue- Get issue detailscreate_issue- Create a new issueupdate_issue- Update issue title, description, state, labelslist_issue_notes- List comments on an issuecreate_issue_note- Add a comment to an issue
Pipelines (4 tools)
list_pipelines- List CI/CD pipelines with status filteringget_pipeline- Get pipeline detailslist_pipeline_jobs- List jobs in a pipelineget_job_log- Get job log output
Search (2 tools)
search_global- Search across all accessible GitLab resourcessearch_project- Search within a specific project
Installation
With uvx (Recommended)
With pip
With Container
Configuration
Environment Variables
Creating a GitLab Personal Access Token
-
Navigate to Access Tokens
- Go to https://gitlab.com/-/user_settings/personal_access_tokens
- Or: Avatar > Preferences > Access Tokens
-
Create a Custom Token
- Name:
mcp-gitlab-crunchtools - Expiration: Set an appropriate date (90 days recommended)
- Scopes: Select scopes based on your needs
- Name:
-
Scope Selection
-
Copy and Store Token
- Copy the token immediately (starts with
glpat-) - Store securely in a password manager
- Copy the token immediately (starts with
Add to Claude Code
For self-hosted GitLab:
For the container version:
Usage Examples
List Your Projects
View Merge Requests
Create an Issue
Check Pipeline Status
Search Code
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
-
Token Protection
- Stored as SecretStr (never accidentally logged)
- Environment variable only (never in files or args)
- Sanitized from all error messages
-
Input Validation
- Pydantic models for all inputs
- Allowlist character validation for project/group IDs
- Path traversal prevention
-
API Hardening
- HTTPS enforcement (except localhost)
- TLS certificate validation
- Request timeouts (30s)
- Response size limits (10MB)
-
Automated CVE Scanning
- GitHub Actions scan dependencies weekly
- Container security scanning with Trivy
- CodeQL analysis for Python
Development
Setup
Run Tests
Lint and Type Check
Build Container
License
AGPL-3.0-or-later
Contributing
Contributions welcome! Please read SECURITY.md before submitting security-related changes.
Links
Source: README.md at commit 4524e51
Tools
0Version history
1- v0.4.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Gitlab integrations
Gitlab
com.gitlabOfficial publisher
Gitlab's hosted MCP server, published by gitlab.com; credential required; Streamable HTTP.

GitLab MCP Server
Published by GitHub account sumirati
A local GitLab MCP server that lets an assistant read and manage projects, branches, commits, merge requests, issues and CI/CD pipelines on GitLab.com or self‑h

Gitlab Mcp
Published by GitHub account mmedum
Local stdio MCP server that lets an assistant work inside your gitlab.com projects as you: issues, merge requests, reviews, repository and CI.

Gitlab Ci Break Lint
Published by GitHub account jmshinhwa
A local MCP server that flags lines in a .gitlab-ci.yml file that a GitLab runner will reject after the next major upgrade.

Gitlab Mcp
Published by GitHub account mrfentmen
Lets an assistant look up public GitLab projects and users without any API key.