๐ 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
๐ฆ 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\"}"'
๐ ๏ธ 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"
}
}
}
๐ ๏ธ 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.
๐๏ธ Development
๐ Running Inspector
Set up environment variables:
export MR_MCP_GITLAB_TOKEN=your_gitlab_token
For use with MCP clients, you can run:
npx -y @modelcontextprotocol/inspector npm start
๐ ๏ธ 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
๐ License
MIT
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.