← Back to directory
G

GitLab MCP Server

Community
A comprehensive GitLab MCP server for AI clients.
GitHub source repository ↗
★ 1.8k Stars Category · Dev Tools Very popular
60FMRS · C
Reliability
9/20
Security and permissions
11/20
Maintenance
11/20
Documentation
16/20
Setup experience
13/20

The supplied sources describe a non-official GitLab MCP server maintained by zereight, version 2.1.43, under the MIT license. It provides broad GitLab administration, collaboration, code, and CI/CD coverage. Users should restrict token scopes and exposed tools to the actual workflow and configure appropriate HTTP authentication and security controls for remote deployments.

Read the FMRS scoring method →

A GitLab MCP server that exposes project management, repository browsing, merge requests, issues, pipelines, wiki, releases, tags, milestones, users, groups, work items, webhooks, variables, dependency proxy, and vulnerability operations through MCP. It supports stdio, SSE, and Streamable HTTP for GitLab.com and self-managed GitLab.

Tools

merge_merge_request
Merge a merge request in a GitLab project.
approve_merge_request
unapprove_merge_request
get_merge_request_approval_state
get_merge_request_conflicts
list_merge_request_pipelines
execute_graphql
create_or_update_file
Create or update one file in a project.
search_repositories
Search GitLab projects.
create_repository
create_group
get_file_contents
Get file or directory contents from a project.
push_files
Push multiple files in one commit.
create_issue
Create an issue in a GitLab project.
create_merge_request
Create a merge request in a GitLab project.
fork_repository
create_branch
get_branch
list_branches
delete_branch
list_protected_branches
get_protected_branch
protect_branch
unprotect_branch
update_default_branch
get_merge_request
Get merge request details with deployment, commit, and approval summaries.
get_merge_request_diffs
Get merge request changes and diffs.
list_merge_request_changed_files
list_merge_request_diffs
get_merge_request_file_diff
Get diffs for one or more merge request files.
list_merge_request_versions
get_merge_request_version
get_branch_diffs
update_merge_request
create_note
create_merge_request_thread
resolve_merge_request_thread
mr_discussions
delete_merge_request_discussion_note
update_merge_request_discussion_note
create_merge_request_discussion_note
create_merge_request_note
delete_merge_request_note
get_merge_request_note
get_merge_request_notes
update_merge_request_note
get_draft_note
list_draft_notes
create_draft_note
update_draft_note
delete_draft_note
publish_draft_note
bulk_publish_draft_notes
list_merge_request_emoji_reactions
list_merge_request_note_emoji_reactions
create_merge_request_emoji_reaction
delete_merge_request_emoji_reaction
create_merge_request_note_emoji_reaction
delete_merge_request_note_emoji_reaction
update_issue_note
create_issue_note
list_issue_emoji_reactions
list_issue_note_emoji_reactions
create_issue_emoji_reaction
delete_issue_emoji_reaction
create_issue_note_emoji_reaction
delete_issue_note_emoji_reaction
list_issues
List issues with filters.
my_issues
get_issue
Get details for a specific issue.
update_issue
Update an issue in a GitLab project.
update_issue_description_patch
delete_issue
list_todos
mark_todo_done
mark_all_todos_done
list_issue_links
list_issue_discussions
get_issue_link
create_issue_link
delete_issue_link
list_namespaces
get_namespace
verify_namespace
get_project
Get project details.
list_projects
List projects accessible to the current user.
update_project
list_project_members
list_labels
get_label
create_label
update_label
delete_label
list_group_projects
list_wiki_pages
List project wiki pages.
get_wiki_page
Get details of a wiki page.
create_wiki_page
Create a project wiki page.
update_wiki_page
delete_wiki_page
list_group_wiki_pages

Setup

Install @zereight/mcp-gitlab with npm or use the Homebrew method shown in the repository documentation. Set GITLAB_PERSONAL_ACCESS_TOKEN to a token with the GitLab scopes required by the tools you will use, and set GITLAB_API_URL when needed. Configure the MCP client to launch zereight-mcp-gitlab over stdio. For remote deployments, SSE or Streamable HTTP can be used; REMOTE_AUTHORIZATION requires Streamable HTTP.

claude_desktop_config.json
{"mcpServers":{"gitlab":{"command":"zereight-mcp-gitlab","args":[],"env":{"GITLAB_PERSONAL_ACCESS_TOKEN":"YOUR_GITLAB_TOKEN","GITLAB_API_URL":"https://gitlab.com/api/v4"}}}}

Fit and risk

Best for

  • Teams that want AI clients to operate GitLab project-management and collaboration workflows.
  • Users working with GitLab.com and self-managed GitLab instances.
  • Deployments needing read-only mode, toolsets, individual tool filters, or deny patterns.
  • Developers needing local stdio or remote HTTP MCP access.

Not for

  • Projects that do not use GitLab or need GitLab API operations.
  • Static code-reading scenarios where GitLab credentials should not be granted.
  • Deployments that require REMOTE_AUTHORIZATION together with SSE.
  • Environments unable to securely manage personal, OAuth, cookie, or remote authorization credentials.

Required permissions

  • GITLAB_PERSONAL_ACCESS_TOKEN is required unless another supported authentication method is used.
  • The token should have scopes required by the selected tools, such as api or read_api.
  • Write, delete, pipeline, and project-management tools require corresponding GitLab permissions.
  • GITLAB_READ_ONLY_MODE can expose only read-only tools.
  • Access can be constrained with GITLAB_ALLOWED_PROJECT_IDS, GITLAB_TOOLSETS, GITLAB_TOOLS, and GITLAB_DENIED_TOOLS_REGEX.
  • Wiki tools require USE_GITLAB_WIKI or the relevant toolset to be enabled.

Risks and side effects

  • Tokens with the api scope or write tools may permit creating, changing, merging, or deleting GitLab resources.
  • Personal access tokens, job tokens, cookies, and OAuth tokens are sensitive credentials and should not be exposed in logs or shared configuration.
  • NODE_TLS_REJECT_UNAUTHORIZED=0 weakens TLS certificate validation and should only be used intentionally for invalid or self-signed certificates.
  • Remote HTTP deployments require correctly configured authentication, sessions, origins, hosts, and proxy trust settings.
  • download_job_artifacts and other download tools may save content to local paths.

Troubleshooting

  1. Confirm that zereight-mcp-gitlab is discoverable by the MCP client; use which zereight-mcp-gitlab for its absolute path when necessary.
  2. Check GITLAB_PERSONAL_ACCESS_TOKEN, GITLAB_API_URL, and token scopes.
  3. For self-managed GitLab, use the corresponding /api/v4 API URL; configure GITLAB_CA_CERT_PATH for a custom CA certificate.
  4. Use SSE=true for SSE; REMOTE_AUTHORIZATION and MCP OAuth require STREAMABLE_HTTP=true.
  5. For OAuth callback errors, distinguish local OAuth's GITLAB_OAUTH_REDIRECT_URI from remote OAuth's GITLAB_OAUTH_CALLBACK_PROXY.
  6. If tools are missing, check GITLAB_TOOLSETS, GITLAB_TOOLS, GITLAB_DENIED_TOOLS_REGEX, tool policies, and discover_tools.

Use cases

Browse GitLab projects, repository files, commits, and branches.
Create, review, approve, and merge merge requests.
Manage issues, discussions, comments, labels, and milestones.
Inspect, create, retry, or cancel CI/CD pipelines and jobs.
Manage wikis, releases, tags, work items, and vulnerabilities.
Provide remote MCP access for self-managed or multi-user GitLab deployments.

Supported clients

Claude CodeFull support
VS CodeFull support
GitHub CopilotFull support
CodexFull support
CursorFull support
ClinePartial support
Roo CodePartial support
Kilo CodePartial support
Amp CodePartial support
Claude.aiPartial support
OpenCodePartial support
Factory AI DroidPartial support
OpenClawPartial support