GitLab MCP Server
by rifqi96
Verified
# GitLab MCP Server
A Model Context Protocol (MCP) server that enables you to interact with your GitLab account. Get diffs, analyze merge requests, review code, cherry-pick changes, and more. This is an extended version of the [MCP GitLab Server](https://github.com/modelcontextprotocol/servers/tree/main/src/gitlab) from the Model Context Protocol project.
<a href="https://glama.ai/mcp/servers/@rifqi96/mcp-gitlab">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@rifqi96/mcp-gitlab/badge" alt="GitLab Server MCP server" />
</a>
## Features
This MCP server provides comprehensive tools for interacting with GitLab repositories, including:
### Core Repository Features
- Listing projects and retrieving details
- Managing branches and repositories
- Working with merge requests and diffs
- Adding comments and internal notes to merge requests
- Updating merge request attributes
- Listing and working with issues
- Getting and comparing repository file contents
### Project Settings & Integrations
- Managing project integrations and services
- Configuring and controlling Slack integration
- Setting up, updating, and testing webhooks
### CI/CD Management
- Working with pipeline trigger tokens
- Managing CI/CD variables
- Triggering and controlling pipelines
### User & Group Administration
- Listing and managing users
- Working with groups and group memberships
- Managing project members and access levels
## Installation
### Prerequisites
- Node.js (v16 or higher)
- npm
- A GitLab account with an API token
### Setup
1. Clone the repository:
```bash
git clone https://github.com/rifqi96/mcp-gitlab.git
cd mcp-gitlab
```
2. Install dependencies:
```bash
npm install
```
3. Build the server:
```bash
npm run build
```
4. Install git hooks (optional, but recommended for contributors):
```bash
npm run install-hooks
```
This installs a pre-commit hook that automatically regenerates TOOLS.md when src/utils/tools-data.ts changes.
5. Configure your GitLab API token:
You need to provide your GitLab API token in the MCP settings configuration file. The token is used to authenticate with the GitLab API.
For Cursor/Roo Cline, add the following to your MCP settings file (`~/Library/Application Support/Cursor/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`):
```json
{
"mcpServers": {
"gitlab": {
"command": "node",
"args": [
"/path/to/mcp-gitlab/build/index.js"
],
"env": {
"GITLAB_API_TOKEN": "YOUR_GITLAB_API_TOKEN",
"GITLAB_API_URL": "https://gitlab.com/api/v4"
}
}
}
}
```
For Claude Desktop, add the following to your MCP settings file (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"gitlab": {
"command": "node",
"args": [
"/path/to/mcp-gitlab/build/index.js"
],
"env": {
"GITLAB_API_TOKEN": "YOUR_GITLAB_API_TOKEN",
"GITLAB_API_URL": "https://gitlab.com/api/v4"
}
}
}
}
```
Replace `YOUR_GITLAB_API_TOKEN` with your actual GitLab API token. You can generate a token in your GitLab account under Settings > Access Tokens.
## Available Tools
For a complete list of available tools and their parameters, see [TOOLS.md](./TOOLS.md).
## Example Usage
Here are examples of how to use these tools with AI assistants that support MCP:
### List your projects
```
Could you list my GitLab projects?
```
### Get information about a specific merge request
```
Can you show me the details of merge request with ID 123 in the project 'mygroup/myproject'?
```
### Add a comment to a merge request
```
Please add a comment to merge request 123 in project 'mygroup/myproject' saying "This looks good, but please add more tests."
```
### Add an internal note to a merge request
```
Add an internal note to merge request 123 in project 'mygroup/myproject' that says "Needs security review before merging." Make sure it's only visible to team members.
```
### Update a merge request title and description
```
Update the title of merge request 123 in project 'mygroup/myproject' to "Fix login page performance issues" and update the description to include "This PR addresses the slow loading times on the login page by optimizing database queries."
```
### Compare branches
```
Compare the 'feature-branch' with 'main' in the project 'mygroup/myproject' and show me the differences.
```
## Practical Workflows
### Reviewing a Merge Request
```
1. Show me merge request 123 in project 'mygroup/myproject'
2. Show me the changes for this merge request
3. Add an internal note with my review comments
4. Update the merge request title to better reflect the changes
```
### Project Exploration
```
1. List all my GitLab projects
2. Show me the details of project 'mygroup/myproject'
3. List all branches in this project
4. Show me the content of the README.md file in the main branch
```
## Available Resources
### gitlab://projects
List of GitLab projects accessible with your API token.
## Integration with AI Assistants
The GitLab MCP Server integrates with AI assistants that support the Model Context Protocol (MCP).
### Capabilities
When connected to an AI assistant, this server enables the assistant to:
1. **View and analyze code**: The assistant can fetch file contents, view branch differences, and examine merge request changes for better code understanding.
2. **Provide code reviews**: The assistant can analyze merge requests and provide feedback through comments or internal notes.
3. **Manage project workflows**: The assistant can update merge request attributes, add comments, and help with repository management tasks.
4. **Explore project structure**: The assistant can browse projects, branches, and files to understand the codebase structure.
5. **Configure CI/CD and integrations**: The assistant can help set up webhooks, manage CI/CD variables, and configure project integrations.
### Getting the Most from AI Assistant Integration
- Be specific when asking about projects, merge requests, or files
- Provide project IDs or paths when possible
- Use the assistant for code review by asking it to analyze specific merge requests
- Have the assistant help with repository configuration and management tasks
- Use internal notes for team-only feedback on merge requests
## License
MIT
ID: 7phkmkcd67