Skip to main content
Glama
DrBoria

md-gitlab-mcp

by DrBoria
README.md
# md-gitlab-mcp 🦊

> **A fully-featured GitLab MCP Server tailored to behave like the GitHub MCP but specifically engineered for GitLab Data Centers, Instances, and Cloud.**

`md-gitlab-mcp` is a Model Context Protocol (MCP) server written in TypeScript. It gives AI agents the powerful ability to interact deeply with GitLab via the REST API. This goes far beyond basic issue tracking and provides **25 advanced capabilities**, identically structured to the famous GitHub MCP tools.

## Features

This server exports an extensive list of tools allowing AI agents to:
- **Repositories:** Search projects, create projects, get file contents, and importantly, push multi-file commits correctly using branching.
- **Merge Requests (PR Equivalents):** Create MRs, approve MRs, list files changed globally, merge them, check CI/CD pipeline status, rebase, and comprehensively read notes/comments.
- **Issues:** Create, list, search, update, and comment on issues seamlessly.
- **Search:** Access Global Search to easily find issues, users, and code snippets across your entire GitLab instance.

## Why this exists?
The default `@modelcontextprotocol/server-gitlab` provides very limited tools (around 9 commands) and completely lacks operations regarding code review, reading pull request/merge request threads, or resolving discussions. 

`md-gitlab-mcp` bridges this gap, adopting GitHub's best-practice MCP schema standards and flawlessly translating semantics (projects -> repos, merge requests -> pull requests internally but honoring GitLab's API structure) while delivering complete access to GitLab's API.

## Usage

Agents powered by this MCP will see properly annotated tools with parameter descriptions via `zod-to-json-schema`, meaning the AI inherently knows exactly how to query your repositories without hallucination.

### Quick Start (Roo Code / Cline)
You can directly add this to your `mcp_settings.json`:
```json
{
  "mcpServers": {
    "gitlab": {
      "command": "node",
      "args": [
        "/path/to/md-gitlab-mcp/build/index.js"
      ],
      "env": {
        "GITLAB_API_URL": "https://gitlab.example.dev/api/v4",
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}
```

## Connecting with the Author

This tool is handcrafted and maintained by **Mikita Dusmikeev**. Check out my work and connect on social media:

- 🌍 **Website**: [md-code.space](https://md-code.space/)
- 💻 **GitHub**: [github.com/DrBoria](https://github.com/DrBoria)
- 🛒 **VS Code Marketplace**: [drboria Extensions](https://marketplace.visualstudio.com/manage/publishers/drboria)
- 👔 **LinkedIn**: [Mikita Dusmikeev](https://linkedin.com/in/mikita-dusmikeev)
- 📸 **Instagram**: [@mdcode.official](https://instagram.com/mdcode.official)
- 📱 **TikTok**: [@mdcode.official](https://tiktok.com/@mdcode.official)

---
*Created in 2026. Code like there's no tomorrow.*

TDQS

B3.3/5.0

Scored across 27 tools

Disambiguation4/5

Most tools target a distinct resource/action, and search/create/get/list are clearly separated. The main ambiguity is among the many merge request tools, especially get_merge_request_comments vs get_merge_request_reviews and their by_url variants, though the descriptions do help.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: search_, create_, get_, list_, update_, add_, merge_, push_, fork_. Minor quirks like merge_merge_request are still predictable.

Tool Count2/5

With 27 tools the set is above the threshold for a focused MCP server. The merge request surface alone accounts for over a dozen tools, making the overall tool count feel heavy and harder for an agent to navigate.

Completeness4/5

Core GitLab workflows are covered: repository searching/creation, file pushes, issues with comments, and a thorough merge request lifecycle including reviews, status, and rebase. Missing operations like updating MR metadata or deleting repositories are minor gaps that agents can often work around.

Maintenance

ActivityInactive
ResponsivenessNo issues