Manage GitLab projects, files, and repositories using the GitLab API.
🚀 MCP Server for the GitLab API, enabling project management, file operations, and more.
create_or_update_file
project_id
(string): Project ID or URL-encoded pathfile_path
(string): Path where to create/update the filecontent
(string): Content of the filecommit_message
(string): Commit messagebranch
(string): Branch to create/update the file inprevious_path
(optional string): Path of the file to move/renamepush_files
project_id
(string): Project ID or URL-encoded pathbranch
(string): Branch to push tofiles
(array): Files to push, each with file_path
and content
commit_message
(string): Commit messagesearch_repositories
search
(string): Search querypage
(optional number): Page number for paginationper_page
(optional number): Results per page (default 20)create_repository
name
(string): Project namedescription
(optional string): Project descriptionvisibility
(optional string): 'private', 'internal', or 'public'initialize_with_readme
(optional boolean): Initialize with READMEget_file_contents
project_id
(string): Project ID or URL-encoded pathfile_path
(string): Path to file/directoryref
(optional string): Branch/tag/commit to get contents fromcreate_issue
project_id
(string): Project ID or URL-encoded pathtitle
(string): Issue titledescription
(optional string): Issue descriptionassignee_ids
(optional number[]): User IDs to assignlabels
(optional string[]): Labels to addmilestone_id
(optional number): Milestone IDcreate_merge_request
project_id
(string): Project ID or URL-encoded pathtitle
(string): MR titledescription
(optional string): MR descriptionsource_branch
(string): Branch containing changestarget_branch
(string): Branch to merge intodraft
(optional boolean): Create as draft MRallow_collaboration
(optional boolean): Allow commits from upstream membersget_merge_request_raw_diff
project_id
(string): Project ID or URL-encoded pathmerge_request_id
(string): ID of the merge requestfork_repository
project_id
(string): Project ID or URL-encoded pathnamespace
(optional string): Namespace to fork tocreate_branch
project_id
(string): Project ID or URL-encoded pathbranch
(string): Name for new branchref
(optional string): Source branch/commit for new branchget_job_logs
project_id
(string): Project ID or URL-encoded pathjob_id
(string): ID of the jobCreate a GitLab Personal Access Token with appropriate permissions:
api
for full API accessread_api
for read-only accessread_repository
and write_repository
for repository operationsAdd the following to your claude_desktop_config.json
:
{
"mcpServers": {
"gitlab": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"GITLAB_PERSONAL_ACCESS_TOKEN",
"-e",
"GITLAB_API_URL",
"mcp/gitlab"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>",
"GITLAB_API_URL": "https://gitlab.com/api/v4" // Optional, for self-hosted instances
}
}
}
}
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gitlab"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>",
"GITLAB_API_URL": "https://gitlab.com/api/v4" // Optional, for self-hosted instances
}
}
}
}
Docker build:
docker build -t vonwig/gitlab:mcp -f src/gitlab/Dockerfile .
GITLAB_PERSONAL_ACCESS_TOKEN
: Your GitLab personal access token (required)GITLAB_API_URL
: Base URL for GitLab API (optional, defaults to https://gitlab.com/api/v4
)A GitLab integration server providing access to GitLab's RESTful API tools, built on the fastmcp framework.
A server for Perforce (P4) version control operations, wrapping P4 commands for easier and more reliable use.
An MCP server for interacting with the AtomGit API for version control and code hosting.
Token-based GitHub automation management. No Docker, Flexible configuration, 80+ tools with direct API integration.
Visualize Git history and commit logs with animations, making Git operations intuitive and easy to understand.
Interact with GitHub repositories, issues, pull requests, and more. Requires a GitHub personal access token.
Integrates with the GitLab REST API to manage repositories, issues, and merge requests.
Allows AI assistants to interact with the GitHub API for repository management, code collaboration, and other development tasks.
Manage GitHub repositories using a personal access token via CLI or environment variables.
Connects AI assistants to Obsidian vaults stored in GitHub repositories, enabling them to read, search, and analyze your notes and documentation.