# GitLab API MCP [Health: Active]

**Category:** 🔄 Version Control  
**Repository:** https://github.com/Knuckles-Team/gitlab-api  
**GitHub Stars:** 10  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/gitlab-api

## Description
GitLab MCP Server and Python API Wrapper

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "gitlab-api-mcp": {
    "url": "http://localhost:8000/gitlab-mcp/mcp"
  }
}
```

## Documentation

## What GitLab API MCP does

GitLab API MCP MCP server connects MCP-compatible agents to a GitLab instance through a Python-based API wrapper and an MCP interface. It covers common repository and project workflows, including branches, commits, projects, issues, merge requests, releases, tags, snippets, wikis, pipelines, jobs, environments, labels, milestones, groups, users, and members.

The server also exposes GitLab GraphQL operations, including schema discovery and raw queries or mutations. Additional tools support notes and comments, deploy tokens, protected branches, runners, packages, pipeline schedules, vulnerabilities, epics, and merge rules. Two ingestion tools can load GitLab projects and CI pipeline runs with jobs into epistemic-graph.

This belongs in the Version Control category for agents that need to read GitLab data or perform GitLab changes through natural-language workflows. The available operations still depend on the permissions of the GitLab credentials and the API endpoint being used.

## How it works

GitLab API MCP MCP server offers two MCP tool layouts. The default `condensed` mode uses action-routed tools such as `gitlab_projects`, `gitlab_issues`, and `gitlab_pipelines`; each groups related operations behind a resource-specific entry point. `verbose` mode exposes individual tools for public API methods, such as creating a branch, accepting a merge request, or cancelling a project job. `both` enables both layouts.

Set `MCP_TOOL_MODE` to `condensed`, `verbose`, or `both`. Condensed mode is the default. In verbose mode, tools can be filtered with the `verbose` tag by using `--tools tag:verbose` or `MCP_ENABLED_TAGS=verbose`. Resource modules also have toggle variables, including `PROJECTSTOOL`, `ISSUESTOOL`, `MERGE_REQUESTSTOOL`, and `PIPELINESTOOL`.

The server includes `api_request` for arbitrary GitLab REST requests, along with GraphQL tools for raw queries, mutations, typed operations, and schema discovery.

## Setup and configuration

Installation, deployment, API usage, CLI usage, and MCP usage are maintained in the project's official documentation. The package is published as `gitlab-api`, and the README identifies version 27.3.2.

MCP behavior can be configured through the shared `~/.config/agent-connector-sdk/config.json` file or environment variables. Use `MCP_TOOL_MODE` to select the tool layout and `MCP_ENABLED_TAGS=verbose` to enable the documented verbose tag filter. Individual tool groups can be toggled with their corresponding environment variables from the MCP tool table.

Consult the official documentation before deployment, especially when connecting to a self-managed GitLab instance.

## Tools and capabilities

The condensed tool surface includes grouped operations for:

- Projects, groups, namespaces, users, and members
- Branches, commits, tags, protected branches, and repositories
- Issues, epics, labels, milestones, notes, and merge requests
- Pipelines, pipeline schedules, jobs, environments, and runners
- Releases, packages, snippets, wikis, deploy tokens, and vulnerabilities
- REST requests, GraphQL queries, typed GraphQL operations, and schema discovery

The verbose surface maps individual public API methods to separate tools. Examples include creating projects, issues, branches, commits, environments, releases, pipeline schedules, and merge requests; approving or merging merge requests; managing project jobs; and adding comments.

## Limitations and notes

It also does not guarantee that every GitLab API feature is represented beyond the listed tool surface. Review the generated live tool table and official documentation when selecting modules or planning permissions. The `api_request` and GraphQL capabilities can broaden access, but the material does not define their permission behavior separately from GitLab access controls.

_Full upstream README: https://allmcps.com/mcp/gitlab-api/readme_

