# kopfrechner/gitlab-mr-mcp [Health: Active]

**Category:** 🔄 Version Control  
**Repository:** https://github.com/kopfrechner/gitlab-mr-mcp  
**GitHub Stars:** 94  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/kopfrechner-gitlab-mr-mcp

## Description
Interact seamlessly with issues and merge requests of your GitLab projects.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "gitlab-mr-mcp": {
    "command": "npx",
    "args": ["-y","@smithery/cli@latest"],
    "env": {
      "MR_MCP_GITLAB_TOKEN": "",
      "MR_MCP_GITLAB_HOST": "",
      "MR_MCP_MIN_ACCESS_LEVEL": "",
      "MR_MCP_PROJECT_SEARCH_TERM": ""
    }
  }
}
```

**Requires environment variables:** `MR_MCP_GITLAB_TOKEN`, `MR_MCP_GITLAB_HOST`, `MR_MCP_MIN_ACCESS_LEVEL`, `MR_MCP_PROJECT_SEARCH_TERM` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation & README

[![MseeP.ai Security Assessment Badge](https://mseep.net/pr/kopfrechner-gitlab-mr-mcp-badge.png)](https://mseep.ai/app/kopfrechner-gitlab-mr-mcp)

[![GitHub stars](https://img.shields.io/github/stars/kopfrechner/gitlab-mr-mcp?style=flat)](https://github.com/kopfrechner/gitlab-mr-mcp/stargazers)
[![License](https://img.shields.io/github/license/kopfrechner/gitlab-mr-mcp)](LICENSE)
[![smithery badge](https://smithery.ai/badge/@kopfrechner/gitlab-mr-mcp)](https://smithery.ai/server/@kopfrechner/gitlab-mr-mcp)

# 🚀 GitLab MR MCP

A Model Context Protocol (MCP) server for interacting with GitLab merge requests and issues.

## 📌 Overview

This project implements a server using the Model Context Protocol (MCP) that allows AI agents to interact with GitLab repositories. It provides tools for:

- Listing available GitLab projects
- Fetching merge request details and comments
- Getting merge request diffs
- Adding comments to merge requests
- Adding line-specific comments to code in merge request diffs
- Fetching issue details
- Setting merge request title and description

## 📦 Installation

### ⚡ Using Smithery

To install GitLab MR MCP for Claude Desktop automatically via Smithery:

```bash
npx -y @smithery/cli@latest install @kopfrechner/gitlab-mr-mcp --client claude --config '"{\"gitlabMrMcpToken\":\"YOUR_GITLAB_TOKEN\", \"gitlabMrMcpHost\": \"YOUR_GITLAB_HOST\"}"'
```

### 🛠️ Manual Installation

#### 🔧 Prerequisites

- Node.js
- GitLab access token with API access
- GitLab project ID(s)

#### 📖 Setup

1. Clone this repository
2. Install dependencies:

```bash
npm install
```

3. Add the following to your MCP client configuration:
```json
{
  "mcpServers": {
    "gitlab-mr-mcp": {
      "command": "node",
      "args": ["/path/to/gitlab-mr-mcp/index.js"],
      "env": {
        "MR_MCP_GITLAB_TOKEN": "your_gitlab_token",
        "MR_MCP_GITLAB_HOST": "your_gitlab_host"
      }
    }
  }
}
```

## 🛠️ Available Tools

* `get_projects`
  Gets a list of GitLab projects accessible with your token.

* `list_open_merge_requests`
  Lists all open merge requests in the specified project.

* `get_merge_request_details`
  Gets detailed information about a specific merge request.

* `get_merge_request_comments`
  Gets comments from a specific merge request, including discussion notes and diff notes.

* `add_merge_request_comment`
  Adds a general comment to a merge request.

* `add_merge_request_diff_comment`
  Adds a comment to a specific line in a file within a merge request.

* `get_merge_request_diff`
  Gets the diff for a merge request.

* `get_issue_details`
  Gets detailed information about a specific issue.

* `set_merge_request_title`
  Set the title of a merge request

* `set_merge_request_description`
  Set the description of a merge request

## 🏗️ Development

### 🔍 Running Inspector

Set up environment variables:

```bash
export MR_MCP_GITLAB_TOKEN=your_gitlab_token
export MR_MCP_GITLAB_HOST=your_gitlab_host

# Optional env vars to filter the projects the `get_projects` tool has access to:
# https://docs.gitlab.com/api/access_requests/#valid-access-levels
export MR_MCP_MIN_ACCESS_LEVEL=min_access_level
# Search term that should match the project path or name 
export MR_MCP_PROJECT_SEARCH_TERM=term 
```

For use with MCP clients, you can run:

```bash
npx -y @modelcontextprotocol/inspector npm start
```

## 🛠️ Troubleshooting

If you encounter permissions issues (403 Forbidden), check:

1. Your GitLab token has the proper scopes (api, read_api)
2. The token user has proper access to the projects
3. The project IDs are correct

## 📜 License

[MIT](https://github.com/kopfrechner/gitlab-mr-mcp/blob/HEAD/LICENSE)

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


