
GitLab MR MCP
โ 92from kopfrechner
An MCP server for interacting with GitLab merge requests and issues.
๐ 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
๐ ๏ธ 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:
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:
npx -y @modelcontextprotocol/inspector npm start
๐ License
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
npx -y @smithery/cli@latest install @kopfrechner/gitlab-mr-mcp --client claude --config '"{\"gitlabMrMcpToken\":\"YOUR_GITLAB_TOKEN\", \"gitlabMrMcpHost\": \"YOUR_GITLAB_HOST\"}"'Before it works, you'll need: MR_MCP_GITLAB_TOKENMR_MCP_GITLAB_HOST
๐ฆ Installation
โก Using Smithery
To install GitLab MR MCP for Claude Desktop automatically via Smithery:
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
-
Clone this repository
-
Install dependencies:
npm install
- Add the following to your MCP client configuration:
{
"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"
}
}
}
}
๐ ๏ธ Troubleshooting
If you encounter permissions issues (403 Forbidden), check:
-
Your GitLab token has the proper scopes (api, read_api)
-
The token user has proper access to the projects
-
The project IDs are correct