MCP.so
Sign In

Overview

What is GitLab-MCP-Server?

GitLab-MCP-Server is a Model Context Protocol (MCP) server that connects AI assistants to GitLab projects. It retrieves pipeline failure logs, unresolved merge request review comments, and local changes against the MR base commit, enabling the assistant to act on that information.

How to use GitLab-MCP-Server?

Install with uv sync after cloning the repository. Obtain a GitLab personal access token with the read_api scope. Configure the server by setting environment variables (GITLAB_URL, GITLAB_PROJECT_NAME, GITLAB_API_KEY, GIT_REPO_PATH) in your client's MCP configuration (Claude Desktop or Cursor). The tools are then available via MCP function calls: get_pipeline_failed_jobs, get_review_comments, and get_review_changes.

Key features of GitLab-MCP-Server

  • get_pipeline_failed_jobs: fetches console output of failed pipeline jobs
  • get_review_comments: retrieves unresolved, file‑attached MR comments
  • get_review_changes: gets diff from MR base commit to local repository state
  • Uses GitLab API with a read‑only token
  • Works with Claude for Desktop and Cursor

Use cases of GitLab-MCP-Server

  • Diagnose and fix CI pipeline failures by examining job logs
  • Address unresolved review comments on a merge request
  • Review the full set of changes (including uncommitted local modifications) against the MR base

FAQ from GitLab-MCP-Server

What does GitLab-MCP-Server do that regular GitLab API access doesn't?

It exposes GitLab data through MCP tools, letting an AI assistant directly retrieve and act on pipeline failures, MR comments, and changes without manual API calls.

What are the runtime dependencies?

Python with uv, a local Git repository, a network connection to the GitLab instance, and a GitLab access token with read_api scope.

Where does the data come from?

Data is fetched live from the GitLab API and from the local Git repository on the machine running the server. No external storage is used.

Does it support authentication?

Yes, via a GitLab personal access token set as the GITLAB_API_KEY environment variable. The token must have the read_api scope.

How is the server started?

It runs as an MCP subprocess via uv run main.py from its directory, configured as a command in the client’s mcpServers block.

Tags

More from Version Control