GitLab MCP Server

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.

Category
Visit Server

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:

  1. Checks for Python - Looks for python3 or python in your PATH
  2. Creates virtual environment - In ~/.cache/gitlab-mcp-server/venv
  3. Installs dependencies - fastmcp from requirements.txt
  4. 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.11 or download from python.org
  • Linux: sudo apt install python3 or sudo 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 details
  • gitlab_create_merge_request - Create new merge request
  • gitlab_merge_merge_request - Merge a merge request
  • gitlab_list_merge_request_notes - List comments on a merge request
  • gitlab_create_merge_request_note - Add comment to a merge request
  • gitlab_list_merge_request_discussions - List discussion threads on a merge request
  • gitlab_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 issue
  • gitlab_list_issue_notes - List comments on an issue
  • gitlab_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 details
  • gitlab_create_pipeline - Trigger new pipeline
  • gitlab_list_pipeline_jobs - List jobs in a pipeline
  • gitlab_get_job - Get single job details
  • gitlab_play_job - Start a manual job
  • gitlab_retry_job - Retry a failed job
  • gitlab_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

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured