MCP Server for the GitLab API, enabling project management, file operations, and more.
10K+
9 Tools
Version 4.43 or later needs to be installed to add the server automatically
Use cases
About
MCP Server for the GitLab API, enabling project management, file operations, and more.
| Attribute | Details |
|---|---|
| Docker Image | mcp/gitlab |
| Author | modelcontextprotocol |
| Repository | https://github.com/modelcontextprotocol/servers |
| Dockerfile | https://github.com/modelcontextprotocol/servers/blob/2025.4.24/src/gitlab/Dockerfile |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/gitlab --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| Tools provided by this Server | Short Description |
|---|---|
create_branch | Create a new branch in a GitLab project |
create_issue | Create a new issue in a GitLab project |
create_merge_request | Create a new merge request in a GitLab project |
create_or_update_file | Create or update a single file in a GitLab project |
create_repository | Create a new GitLab project |
fork_repository | Fork a GitLab project to your account or specified namespace |
get_file_contents | Get the contents of a file or directory from a GitLab project |
push_files | Push multiple files to a GitLab project in a single commit |
search_repositories | Search for GitLab projects |
create_branchCreate a new branch in a GitLab project
| Parameters | Type | Description |
|---|---|---|
branch | string | Name for the new branch |
project_id | string | Project ID or URL-encoded path |
ref | stringoptional | Source branch/commit for new branch |
create_issueCreate a new issue in a GitLab project
| Parameters | Type | Description |
|---|---|---|
project_id | string | Project ID or URL-encoded path |
title | string | Issue title |
assignee_ids | arrayoptional | Array of user IDs to assign |
description | stringoptional | Issue description |
labels | arrayoptional | Array of label names |
milestone_id | numberoptional | Milestone ID to assign |
create_merge_requestCreate a new merge request in a GitLab project
| Parameters | Type | Description |
|---|---|---|
project_id | string | Project ID or URL-encoded path |
source_branch | string | Branch containing changes |
target_branch | string | Branch to merge into |
title | string | Merge request title |
allow_collaboration | booleanoptional | Allow commits from upstream members |
description | stringoptional | Merge request description |
draft | booleanoptional | Create as draft merge request |
create_or_update_fileCreate or update a single file in a GitLab project
| Parameters | Type | Description |
|---|---|---|
branch | string | Branch to create/update the file in |
commit_message | string | Commit message |
content | string | Content of the file |
file_path | string | Path where to create/update the file |
project_id | string | Project ID or URL-encoded path |
previous_path | stringoptional | Path of the file to move/rename |
create_repositoryCreate a new GitLab project
| Parameters | Type | Description |
|---|---|---|
name | string | Repository name |
description | stringoptional | Repository description |
initialize_with_readme | booleanoptional | Initialize with README.md |
visibility | stringoptional | Repository visibility level |
fork_repositoryFork a GitLab project to your account or specified namespace
| Parameters | Type | Description |
|---|---|---|
project_id | string | Project ID or URL-encoded path |
namespace | stringoptional | Namespace to fork to (full path) |
get_file_contentsGet the contents of a file or directory from a GitLab project
| Parameters | Type | Description |
|---|---|---|
file_path | string | Path to the file or directory |
project_id | string | Project ID or URL-encoded path |
ref | stringoptional | Branch/tag/commit to get contents from |
push_filesPush multiple files to a GitLab project in a single commit
| Parameters | Type | Description |
|---|---|---|
branch | string | Branch to push to |
commit_message | string | Commit message |
files | array | Array of files to push |
project_id | string | Project ID or URL-encoded path |
search_repositoriesSearch for GitLab projects
| Parameters | Type | Description |
|---|---|---|
search | string | Search query |
page | numberoptional | Page number for pagination (default: 1) |
per_page | numberoptional | Number of results per page (default: 20) |
{
"mcpServers": {
"gitlab": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITLAB_API_URL",
"-e",
"GITLAB_PERSONAL_ACCESS_TOKEN",
"mcp/gitlab"
],
"env": {
"GITLAB_API_URL": "https://gitlab.com/api/v4",
"GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Manual installation
You can install the MCP server using:
Installation for