GitLab MCP Server
Enables interaction with GitLab via the GitLab REST API v4, providing tools for managing projects, merge requests, issues, pipelines, and more through MCP.
README
GitLab MCP Server
MCP server for GitLab REST API v4 built with fastmcp. Optimized for minimal token usage.
Prerequisites
For end users (Claude/Codex):
- ✅ Python 3.10+ installed on your system
- ✅ GitLab Personal Access Token
That's it! No manual installation needed - everything else is automatic.
How It Works
When you run the server through npx, the Node.js launcher automatically:
- ✅ Checks for Python - Looks for
python3orpythonin your PATH - ✅ Creates virtual environment - In
~/.cache/gitlab-mcp-server/venv - ✅ Installs dependencies -
fastmcpfromrequirements.txt - ✅ Caches everything - Fast subsequent launches
First run: ~10-30 seconds (one-time setup) Next runs: Instant (uses cached venv)
If Python is Not Found
If Python 3.10+ is not installed, the launcher will show instructions for your OS:
- macOS:
brew install python@3.11or download from python.org - Linux:
sudo apt install python3orsudo yum install python3 - Windows: Download from python.org or
winget install Python.Python.3.11
You don't need to manually install fastmcp or create virtualenv! The launcher handles that.
Configuration
Claude Code
Add the server using the CLI:
claude mcp add gitlab --transport stdio \
--env GITLAB_TOKEN=your-gitlab-token \
--env GITLAB_URL=https://gitlab.com \
--env GITLAB_TIMEOUT=30 \
-- npx -y git+https://github.com/YOUR_ORG/YOUR_REPO.git#main
Or add to ~/.claude.json:
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["-y", "git+https://github.com/YOUR_ORG/YOUR_REPO.git#main"],
"env": {
"GITLAB_TOKEN": "your-gitlab-token",
"GITLAB_URL": "https://gitlab.com",
"GITLAB_TIMEOUT": "30"
}
}
}
}
Codex
Add to ~/.codex/config.toml:
[mcp_servers.gitlab]
command = "npx"
args = ["-y", "git+https://github.com/YOUR_ORG/YOUR_REPO.git#main"]
startup_timeout_sec = 60
enabled = true
[mcp_servers.gitlab.env]
GITLAB_TOKEN = "your-gitlab-token"
GITLAB_URL = "https://gitlab.com"
GITLAB_TIMEOUT = "30"
MCP_TRANSPORT = "stdio"
Note: Replace YOUR_ORG/YOUR_REPO with your GitHub repository path (e.g., myorg/gitlab-mcp-server).
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
GITLAB_TOKEN |
Yes | - | GitLab Personal Access Token |
GITLAB_URL |
No | https://gitlab.com |
GitLab instance URL |
GITLAB_TIMEOUT |
No | 30 |
API timeout in seconds |
MCP_TRANSPORT |
No | stdio |
Transport protocol |
GITLAB_MCP_CACHE_DIR |
No | ~/.cache |
Custom cache directory for virtualenv |
Available Tools
This server exposes 20+ GitLab operations as MCP tools:
User
gitlab_whoami- Get current user profile and validate credentials
Projects
gitlab_list_projects- List GitLab projects (supports search, pagination)gitlab_get_project- Get single project details by ID or path
Branches
gitlab_list_branches- List repository branches in a project
Merge Requests
gitlab_list_merge_requests- List merge requests (filter by state: opened, merged, closed)gitlab_get_merge_request- Get single merge request detailsgitlab_create_merge_request- Create new merge requestgitlab_merge_merge_request- Merge a merge requestgitlab_list_merge_request_notes- List comments on a merge requestgitlab_create_merge_request_note- Add comment to a merge requestgitlab_list_merge_request_discussions- List discussion threads on a merge requestgitlab_create_merge_request_discussion_note- Reply to a discussion thread
Issues
gitlab_list_issues- List issues in a project (filter by state: opened, closed)gitlab_create_issue- Create new issuegitlab_list_issue_notes- List comments on an issuegitlab_create_issue_note- Add comment to an issue
Pipelines & CI/CD
gitlab_list_pipelines- List CI/CD pipelines (filter by ref, status)gitlab_get_pipeline- Get single pipeline detailsgitlab_create_pipeline- Trigger new pipelinegitlab_list_pipeline_jobs- List jobs in a pipelinegitlab_get_job- Get single job detailsgitlab_play_job- Start a manual jobgitlab_retry_job- Retry a failed jobgitlab_cancel_job- Cancel a running/pending job
All tools support GitLab.com and self-hosted GitLab instances via the GITLAB_URL environment variable.
For Developers
If you're developing or testing locally:
# Clone the repo
git clone https://github.com/YOUR_ORG/YOUR_REPO.git
cd YOUR_REPO
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export GITLAB_TOKEN='your-gitlab-token'
export GITLAB_URL='https://gitlab.com'
# Run the server directly
python3 gitlab_mcp_server.py
# Or test via Node.js launcher
node bin/gitlab-mcp-server.js
Note for end users: You don't need to do this! The npx launcher handles everything automatically.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.