detailobsessed avatar

Efficient Gitlab

detailobsessed/efficient-gitlab-mcp

Connects Claude to GitLab's entire API surface through three meta-tools that dynamically cover 167 operations: projects, merge requests, issues, pipelines, wiki, releases, milestones, and repository browsing. The token-efficient approach uses field projection to fetch only what you need and keyset pagination for large result sets. Supports both gitlab.com and self-hosted instances. Ships with PAT and OAuth2 auth, read-only mode, and multiple transports including stdio for local use and streamable HTTP for remote deployments. Handles the full project lifecycle from code review to CI/CD monitoring without burning through your context window on unnecessary API responses.

GitHub stars
3
tools
80
auth
Secret needed
transport
STDIO
env vars
2
last updated
May 15, 2026

Tools

80 tools

Public tool metadata for what this MCP can expose to an agent.

merge_merge_requestMerge a merge request in a GitLab project

Merge a merge request in a GitLab project

No parameter schema in public metadata yet.

create_or_update_fileCreate or update a single file in a GitLab project

Create or update a single file in a GitLab project

No parameter schema in public metadata yet.

search_repositoriesSearch for GitLab projects

Search for GitLab projects

No parameter schema in public metadata yet.

create_repositoryCreate a new GitLab project

Create a new GitLab project

No parameter schema in public metadata yet.

get_file_contentsGet the contents of a file or directory from a GitLab project

Get the contents of a file or directory from a GitLab project

No parameter schema in public metadata yet.

push_filesPush multiple files to a GitLab project in a single commit

Push multiple files to a GitLab project in a single commit

No parameter schema in public metadata yet.

create_issueCreate a new issue in a GitLab project

Create a new issue in a GitLab project

No parameter schema in public metadata yet.

create_merge_requestCreate a new merge request in a GitLab project

Create a new merge request in a GitLab project

No parameter schema in public metadata yet.

fork_repositoryFork a GitLab project to your account or specified namespace

Fork a GitLab project to your account or specified namespace

No parameter schema in public metadata yet.

create_branchCreate a new branch in a GitLab project

Create a new branch in a GitLab project

No parameter schema in public metadata yet.

get_merge_requestGet details of a merge request with compact deployment summary, behind-count, commit addition summary, and approval summary (Either mergeRequestIid or branchName must be provided)

Get details of a merge request with compact deployment summary, behind-count, commit addition summary, and approval summary (Either mergeRequestIid or branchName must be provided)

No parameter schema in public metadata yet.

get_merge_request_diffsGet the changes/diffs of a merge request (Either mergeRequestIid or branchName must be provided)

Get the changes/diffs of a merge request (Either mergeRequestIid or branchName must be provided)

No parameter schema in public metadata yet.

list_merge_request_diffsList merge request diffs with pagination support (Either mergeRequestIid or branchName must be provided)

List merge request diffs with pagination support (Either mergeRequestIid or branchName must be provided)

No parameter schema in public metadata yet.

get_merge_request_conflictsGet the conflicts of a merge request in a GitLab project

Get the conflicts of a merge request in a GitLab project

No parameter schema in public metadata yet.

list_merge_request_changed_filesSTEP 1 of code review workflow. Returns ONLY the list of changed file paths in a merge request — WITHOUT diff content. Call this first to get file paths, then call get_merge_request_file_diff with multiple files in a single batched call (recommended 3-5 files per call). Suppor...

STEP 1 of code review workflow. Returns ONLY the list of changed file paths in a merge request — WITHOUT diff content. Call this first to get file paths, then call get_merge_request_file_diff with multiple files in a single batched call (recommended 3-5 files per call). Suppor...

No parameter schema in public metadata yet.

get_merge_request_file_diffSTEP 2 of code review workflow. Get diffs for one or more files from a merge request. Call list_merge_request_changed_files first, then pass them as an array to fetch diffs efficiently. Batching multiple files (recommended 3-5) is supported. (Either mergeRequestIid or branchNa...

STEP 2 of code review workflow. Get diffs for one or more files from a merge request. Call list_merge_request_changed_files first, then pass them as an array to fetch diffs efficiently. Batching multiple files (recommended 3-5) is supported. (Either mergeRequestIid or branchNa...

No parameter schema in public metadata yet.

list_merge_request_versionsList all versions of a merge request

List all versions of a merge request

No parameter schema in public metadata yet.

get_merge_request_versionGet a specific version of a merge request

Get a specific version of a merge request

No parameter schema in public metadata yet.

get_branch_diffsGet the changes/diffs between two branches or commits in a GitLab project

Get the changes/diffs between two branches or commits in a GitLab project

No parameter schema in public metadata yet.

update_merge_requestUpdate a merge request (Either mergeRequestIid or branchName must be provided)

Update a merge request (Either mergeRequestIid or branchName must be provided)

No parameter schema in public metadata yet.

create_noteCreate a new note (comment) to an issue or merge request

Create a new note (comment) to an issue or merge request

No parameter schema in public metadata yet.

create_merge_request_threadCreate a new thread on a merge request

Create a new thread on a merge request

No parameter schema in public metadata yet.

mr_discussionsList discussion items for a merge request

List discussion items for a merge request

No parameter schema in public metadata yet.

resolve_merge_request_threadResolve a thread on a merge request

Resolve a thread on a merge request

No parameter schema in public metadata yet.

update_merge_request_noteModify an existing merge request thread note

Modify an existing merge request thread note

No parameter schema in public metadata yet.

create_merge_request_noteAdd a new note to an existing merge request thread

Add a new note to an existing merge request thread

No parameter schema in public metadata yet.

delete_merge_request_discussion_noteDelete a discussion note on a merge request

Delete a discussion note on a merge request

No parameter schema in public metadata yet.

update_merge_request_discussion_noteUpdate a discussion note on a merge request

Update a discussion note on a merge request

No parameter schema in public metadata yet.

create_merge_request_discussion_noteAdd a new discussion note to an existing merge request thread

Add a new discussion note to an existing merge request thread

No parameter schema in public metadata yet.

delete_merge_request_noteDelete an existing merge request note

Delete an existing merge request note

No parameter schema in public metadata yet.

get_merge_request_noteGet a specific note for a merge request

Get a specific note for a merge request

No parameter schema in public metadata yet.

get_merge_request_notesList notes for a merge request

List notes for a merge request

No parameter schema in public metadata yet.

get_draft_noteGet a single draft note from a merge request

Get a single draft note from a merge request

No parameter schema in public metadata yet.

list_draft_notesList draft notes for a merge request

List draft notes for a merge request

No parameter schema in public metadata yet.

create_draft_noteCreate a draft note for a merge request

Create a draft note for a merge request

No parameter schema in public metadata yet.

update_draft_noteUpdate an existing draft note

Update an existing draft note

No parameter schema in public metadata yet.

delete_draft_noteDelete a draft note

Delete a draft note

No parameter schema in public metadata yet.

publish_draft_notePublish a single draft note

Publish a single draft note

No parameter schema in public metadata yet.

bulk_publish_draft_notesPublish all draft notes for a merge request

Publish all draft notes for a merge request

No parameter schema in public metadata yet.

list_merge_requestsList merge requests globally or in a specific GitLab project with filtering options (project_id is now optional)

List merge requests globally or in a specific GitLab project with filtering options (project_id is now optional)

No parameter schema in public metadata yet.

approve_merge_requestApprove a merge request (requires appropriate permissions)

Approve a merge request (requires appropriate permissions)

No parameter schema in public metadata yet.

unapprove_merge_requestUnapprove a previously approved merge request

Unapprove a previously approved merge request

No parameter schema in public metadata yet.

get_merge_request_approval_stateGet merge request approval details including approvers (uses `approval_state` when available, otherwise falls back to `approvals`)

Get merge request approval details including approvers (uses `approval_state` when available, otherwise falls back to `approvals`)

No parameter schema in public metadata yet.

update_issue_noteModify an existing issue thread note

Modify an existing issue thread note

No parameter schema in public metadata yet.

create_issue_noteAdd a new note to an existing issue thread

Add a new note to an existing issue thread

No parameter schema in public metadata yet.

list_issuesList issues (default: created by current user only; use scope='all' for all accessible issues)

List issues (default: created by current user only; use scope='all' for all accessible issues)

No parameter schema in public metadata yet.

my_issuesList issues assigned to the authenticated user (defaults to open issues)

List issues assigned to the authenticated user (defaults to open issues)

No parameter schema in public metadata yet.

get_issueGet details of a specific issue in a GitLab project

Get details of a specific issue in a GitLab project

No parameter schema in public metadata yet.

update_issueUpdate an issue in a GitLab project

Update an issue in a GitLab project

No parameter schema in public metadata yet.

delete_issueDelete an issue from a GitLab project

Delete an issue from a GitLab project

No parameter schema in public metadata yet.

list_issue_linksList all issue links for a specific issue

List all issue links for a specific issue

No parameter schema in public metadata yet.

list_issue_discussionsList discussions for an issue in a GitLab project

List discussions for an issue in a GitLab project

No parameter schema in public metadata yet.

get_issue_linkGet a specific issue link

Get a specific issue link

No parameter schema in public metadata yet.

create_issue_linkCreate an issue link between two issues

Create an issue link between two issues

No parameter schema in public metadata yet.

delete_issue_linkDelete an issue link

Delete an issue link

No parameter schema in public metadata yet.

list_namespacesList all namespaces available to the current user

List all namespaces available to the current user

No parameter schema in public metadata yet.

get_namespaceGet details of a namespace by ID or path

Get details of a namespace by ID or path

No parameter schema in public metadata yet.

verify_namespaceVerify if a namespace path exists

Verify if a namespace path exists

No parameter schema in public metadata yet.

get_projectGet details of a specific project

Get details of a specific project

No parameter schema in public metadata yet.

list_projectsList projects accessible by the current user

List projects accessible by the current user

No parameter schema in public metadata yet.

list_project_membersList members of a GitLab project

List members of a GitLab project

No parameter schema in public metadata yet.

list_group_projectsList projects in a GitLab group with filtering options

List projects in a GitLab group with filtering options

No parameter schema in public metadata yet.

list_group_iterationsList group iterations with filtering options

List group iterations with filtering options

No parameter schema in public metadata yet.

list_labelsList labels for a project

List labels for a project

No parameter schema in public metadata yet.

get_labelGet a single label from a project

Get a single label from a project

No parameter schema in public metadata yet.

create_labelCreate a new label in a project

Create a new label in a project

No parameter schema in public metadata yet.

update_labelUpdate an existing label in a project

Update an existing label in a project

No parameter schema in public metadata yet.

delete_labelDelete a label from a project

Delete a label from a project

No parameter schema in public metadata yet.

list_pipelinesList pipelines in a GitLab project with filtering options

List pipelines in a GitLab project with filtering options

No parameter schema in public metadata yet.

get_pipelineGet details of a specific pipeline in a GitLab project

Get details of a specific pipeline in a GitLab project

No parameter schema in public metadata yet.

list_pipeline_jobsList all jobs in a specific pipeline

List all jobs in a specific pipeline

No parameter schema in public metadata yet.

list_pipeline_trigger_jobsList all trigger jobs (bridges) in a specific pipeline that trigger downstream pipelines

List all trigger jobs (bridges) in a specific pipeline that trigger downstream pipelines

No parameter schema in public metadata yet.

get_pipeline_jobGet details of a GitLab pipeline job number

Get details of a GitLab pipeline job number

No parameter schema in public metadata yet.

get_pipeline_job_outputGet the output/trace of a GitLab pipeline job with optional pagination to limit context window usage

Get the output/trace of a GitLab pipeline job with optional pagination to limit context window usage

No parameter schema in public metadata yet.

create_pipelineCreate a new pipeline for a branch or tag

Create a new pipeline for a branch or tag

No parameter schema in public metadata yet.

retry_pipelineRetry a failed or canceled pipeline

Retry a failed or canceled pipeline

No parameter schema in public metadata yet.

cancel_pipelineCancel a running pipeline

Cancel a running pipeline

No parameter schema in public metadata yet.

play_pipeline_jobRun a manual pipeline job

Run a manual pipeline job

No parameter schema in public metadata yet.

retry_pipeline_jobRetry a failed or canceled pipeline job

Retry a failed or canceled pipeline job

No parameter schema in public metadata yet.

cancel_pipeline_jobCancel a running pipeline job

Cancel a running pipeline job

No parameter schema in public metadata yet.

Sponsors

Configuration

GITLAB_PERSONAL_ACCESS_TOKEN*secret

GitLab personal access token with API scope

GITLAB_API_URL

GitLab API base URL (default: https://gitlab.com)

Readme

Efficient GitLab MCP

[!CAUTION] This repository is archived (2026-05-22).

Upstream zereight/gitlab-mcp v2.1+ has independently implemented progressive disclosure and schema slimming (commit 44983ec). The differentiators that justified this fork no longer apply — please use upstream instead.


View the full README on GitHub

Details

Repository
github.com/detailobsessed/efficient-gitlab-mcp
Category
Developer Tools
Package
efficient-gitlab-mcp-server
Transport
STDIO
Auth
Required
Registry
MCP registry, active

More from detailobsessed

Related Developer Tools MCP servers

View all
1ofershap avatarGithub Actionsofershap/mcp-server-github-actionsGitHub Actions MCP — view runs, read logs, re-run jobs, and manage CI/CD.3stars
2ozanmutlu avatarGitlab Docsozanmutlu/gitlab-docs-mcpSearch and browse 2,900+ official GitLab documentation pages via MCP3stars
3lawp09 avatarBitbucket MCP Serverlawp09/bitbucket-mcpMCP server for Bitbucket API - manage repositories, pull requests, comments, pipelines and more3stars
4theupsider avatarLsp Mcptheupsider/lsp-mcpUniversal LSP MCP server2stars
5abm-dev-git avatarAbm Mcpabm-dev-git/abm-mcpabm.dev — the account-based marketing API for AI agents: Search, Enrich, and Create across B2B.1stars
6domdomegg avatarFilesystemdomdomegg/filesystem-mcpRead, create, and edit files.1stars