MCP GitLab
GitLab MCP server (MCP 2026-07-28): projects, MRs, pipelines, CI/CD, issues; writes or read-only
Connector by vish288 · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/vish288-mcp-gitlab
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: version-control, ci-cd
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 34 read · 40 write · 17 delete
- Secrets
- 5 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 91
Read from the source code; the running server may list different tools.
Read 34 · Look things up without changing anything.
gitlab_comparegitlab_get_blamegitlab_get_commitgitlab_get_filegitlab_get_groupgitlab_get_issuegitlab_get_job_loggitlab_get_mrgitlab_get_mr_approvalsgitlab_get_pipelinegitlab_get_projectgitlab_get_project_approvals
Show 22 more tools
gitlab_get_releasegitlab_get_taggitlab_list_branchesgitlab_list_commitsgitlab_list_draft_notesgitlab_list_group_variablesgitlab_list_groupsgitlab_list_issuesgitlab_list_mr_approval_rulesgitlab_list_mr_commitsgitlab_list_mr_discussionsgitlab_list_mr_notesgitlab_list_mr_pipelinesgitlab_list_mrsgitlab_list_pipelinesgitlab_list_project_approval_rulesgitlab_list_releasesgitlab_list_tagsgitlab_list_treegitlab_list_variablesgitlab_mr_changesgitlab_search_code
Write 40 · Create, change, send or run things.
gitlab_add_issue_commentgitlab_add_mr_notegitlab_approve_mrgitlab_award_emojigitlab_create_branchgitlab_create_draft_notegitlab_create_group_variablegitlab_create_issuegitlab_create_mrgitlab_create_mr_approval_rulegitlab_create_mr_discussiongitlab_create_pipeline
Show 28 more tools
gitlab_create_projectgitlab_create_project_approval_rulegitlab_create_releasegitlab_create_taggitlab_create_variablegitlab_merge_mrgitlab_merge_mr_sequencegitlab_play_jobgitlab_publish_draft_notesgitlab_rebase_mrgitlab_reply_to_discussiongitlab_resolve_discussiongitlab_retry_jobgitlab_retry_pipelinegitlab_share_group_with_groupgitlab_share_project_with_groupgitlab_subscribe_mrgitlab_unsubscribe_mrgitlab_update_group_variablegitlab_update_issuegitlab_update_mrgitlab_update_mr_approval_rulegitlab_update_mr_notegitlab_update_project_approval_rulegitlab_update_project_approvalsgitlab_update_project_merge_settingsgitlab_update_releasegitlab_update_variable
Delete 17 · Delete, drop, revoke or wipe things.
gitlab_cancel_jobgitlab_cancel_pipelinegitlab_create_commitgitlab_delete_branchgitlab_delete_draft_notegitlab_delete_group_variablegitlab_delete_mr_approval_rulegitlab_delete_mr_notegitlab_delete_projectgitlab_delete_project_approval_rulegitlab_delete_releasegitlab_delete_tag
Show 5 more tools
gitlab_delete_variablegitlab_remove_emojigitlab_unapprove_mrgitlab_unshare_group_with_groupgitlab_unshare_project_with_group
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
GITLAB_AUTHGITLAB_HTTP_BEARER_TOKENGITLAB_OAUTH_CLIENT_SECRETGITLAB_OAUTH_JWT_KEYGITLAB_TOKEN
Other settings (environment variables or headers).
GITLAB_OAUTH_BASE_URLGITLAB_OAUTH_CLIENT_IDGITLAB_OAUTH_SCOPESGITLAB_READ_ONLYGITLAB_URLMCP_READ_ONLY
Files it touches
- Any path the agent passes to its tools
Tools (91)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
gitlab_add_issue_commentPost a comment on an issue. Returns the new note's id, body, author, and created_at.
gitlab_add_mr_notePost a new comment on a merge request. Returns the new note's id, body, author, and created_at.
gitlab_approve_mrApprove a merge request, optionally gating on a sha so HEAD hasn't changed. Returns the updated approval state (approved_by, approvals_left).
gitlab_award_emojiAdd an emoji reaction to an MR note. Returns the new award's id, name, and user.
gitlab_cancel_jobcan change or delete dataCancel a running job. Returns the updated job with status=canceled.
gitlab_cancel_pipelinecan change or delete dataCancel a running pipeline. Returns the updated pipeline with status=canceled.
gitlab_compareread-onlyCompare two refs (branch, tag, or sha). Returns commits, diffs, compare_timeout, and compare_same_ref flags. A file whose diff exceeds the per-file cap is truncated and flagged truncated=true.
gitlab_create_branchCreate a branch from an existing ref. Returns the new branch's name, commit sha, and protection status.
gitlab_create_commitCreate a commit applying create/update/delete/move/chmod file actions in one call. Returns the new commit's id, short_id, title, and parent_ids.
gitlab_create_draft_noteCreate an unpublished draft note on a merge request ("Submit review" style). Returns the new draft note. For an inline comment give new_path plus new_line (or old_line for a removed line); the diff SHAs come from the MR's latest version and the paired line number from its diff, and a line outside the diff is refused with the commentable ranges.
gitlab_create_group_variableCreate a group CI/CD variable. Returns the new variable's key, value (masked if applicable), protected, masked, environment_scope.
gitlab_create_issueCreate a new issue. Returns the new issue's iid, title, state, labels, assignees, author, web_url.
gitlab_create_mrCreate a merge request. Returns the new MR's iid, title, state, source_branch, target_branch, and web_url.
gitlab_create_mr_approval_ruleAdd an approval rule to a merge request. Returns the new rule's id, name, approvals_required, and approvers.
gitlab_create_mr_discussionCreate a discussion on a merge request. For an inline comment give new_path plus new_line (or old_line for a removed line); SHAs and the paired line number are resolved from the MR's latest version as in gitlab_create_draft_note.
Show 76 more tools
gitlab_create_pipelineTrigger a new pipeline on the given ref, optionally with variables. Returns the new pipeline's id, status, ref, sha, source, web_url.
gitlab_create_projectCreate a new project. Returns the new project's id, name, path_with_namespace, web_url, and default settings.
gitlab_create_project_approval_ruleCreate a project-level approval rule. Returns the new rule's id, name, approvals_required, and target users/groups.
gitlab_create_releaseCreate a release tied to a tag (or a new ref). Returns the new release with tag_name, name, description, and assets.
gitlab_create_tagCreate a tag on the given ref, optionally with a message. Returns the new tag's name, message, target, and commit.
gitlab_create_variableCreate a project CI/CD variable. Returns the new variable's key, value (masked if applicable), protected, masked, environment_scope.
gitlab_delete_branchcan change or delete dataDelete a branch from a project. Returns a {status: deleted, branch} confirmation.
gitlab_delete_draft_notecan change or delete dataDelete a single unpublished draft note. Returns a {status: deleted, draft_note_id} confirmation.
gitlab_delete_group_variablecan change or delete dataDelete a group CI/CD variable. Returns a {status: deleted, key} confirmation.
gitlab_delete_mr_approval_rulecan change or delete dataDelete an approval rule from a merge request. Returns a {status: deleted, rule_id} confirmation.
gitlab_delete_mr_notecan change or delete dataDelete a comment from a merge request. Returns a {status: deleted, note_id} confirmation.
gitlab_delete_projectcan change or delete dataPermanently delete a project. Irreversible. Returns a {status: deleted, project_id} confirmation.
gitlab_delete_project_approval_rulecan change or delete dataDelete a project-level approval rule. Returns a {status: deleted, rule_id} confirmation.
gitlab_delete_releasecan change or delete dataDelete a release (the underlying tag is preserved). Returns a {status: deleted, tag_name} confirmation.
gitlab_delete_tagcan change or delete dataDelete a tag. Returns a {status: deleted, tag} confirmation.
gitlab_delete_variablecan change or delete dataDelete a project CI/CD variable. Returns a {status: deleted, key} confirmation.
gitlab_get_blameread-onlyGet git blame for a file at a ref, optionally limited to a line range. Returns slim ranges: each has commit_id, author, date, message (first line), and lines.
gitlab_get_commitread-onlyGet a single commit, optionally with diff. Returns id, short_id, title, message, author, committed_date, web_url (and diffs when include_diff=true).
gitlab_get_fileread-onlyGet a file's decoded text content at a ref, with metadata. Returns file_path, ref, size, encoding, blob_id, last_commit_id, total_lines, and content. Refuses binary files with an actionable error and truncates very large content with a marker.
gitlab_get_groupread-onlyGet a group's details. Returns id, name, full_path, visibility, web_url, and subgroup/membership counts.
gitlab_get_issueread-onlyGet a single issue. Returns iid, title, description, state, labels, assignees, author, milestone, due_date, web_url.
gitlab_get_job_logread-onlyGet a job's log trace, truncated to the last tail_lines lines (default 200). Returns {log, total_lines, shown_lines}. Pass tail_lines=0 for the whole log.
gitlab_get_mrread-onlyGet merge request details. Returns title, state, source/target branches, author, diff_refs, and merge status.
gitlab_get_mr_approvalsread-onlyGet the approval state of a merge request. Returns approved_by, approvals_required, approvals_left, and matching rules.
gitlab_get_pipelineread-onlyGet pipeline details, optionally with jobs. Returns id, status, ref, timing, web_url. Jobs include id, name, stage, status, timing, failure_reason, web_url.
gitlab_get_projectread-onlyGet a project's details. Returns id, name, path_with_namespace, visibility, default_branch, web_url, description.
gitlab_get_project_approvalsread-onlyGet project-level approval configuration. Returns approvals_before_merge, reset_approvals_on_push, and self-approval rules.
gitlab_get_releaseread-onlyGet a release by tag. Returns name, description, tag_name, created_at, and assets (links, sources).
gitlab_get_tagread-onlyGet a tag's details. Returns name, message, target commit, and any attached release.
gitlab_list_branchesread-onlyList branches in a project. Returns name, commit sha, protected, default, and merged flags per branch.
gitlab_list_commitsread-onlyList commits on a ref (branch, tag, or sha). Returns id, short_id, title, author_name, authored_date, web_url per commit.
gitlab_list_draft_notesread-onlyList the current user's unpublished draft notes on a merge request. Returns each draft's id, note body, and position (if inline).
gitlab_list_group_variablesread-onlyList group CI/CD variables. Returns key, value (shown as '***MASKED***' when masked), protected, masked, environment_scope per variable.
gitlab_list_groupsread-onlyList groups visible to the caller. Returns id, name, full_path, parent_id, visibility, web_url per group.
gitlab_list_issuesread-onlyList issues in a project, filterable by state/labels/assignee. Returns iid, title, state, labels, author, web_url per issue.
gitlab_list_mr_approval_rulesread-onlyList approval rules attached to a merge request. Returns rules with id, name, approvals_required, and approvers.
gitlab_list_mr_commitsread-onlyList commits included in a merge request. Returns id, short_id, title, author_name, authored_date per commit.
gitlab_list_mr_discussionsread-onlyList discussions on a merge request. Returns discussion threads with notes, excluding system-only threads. `count` is post-filter while `has_more` describes the unfiltered server page, so a page of only system threads returns count 0 with has_more true.
gitlab_list_mr_notesread-onlyList notes (comments) on a merge request. Returns id, body, author, created_at, and system flag per note. `count` is the number of notes left after the system-note filter, while `has_more` describes the unfiltered server page. A page of nothing but system notes therefore returns count 0 with has_more true -- keep following next_page rather than concluding the MR has no comments.
gitlab_list_mr_pipelinesread-onlyList pipelines associated with a merge request. Returns id, status, ref, sha, source, web_url per pipeline.
gitlab_list_mrsread-onlyList merge requests in a project, filterable by state/labels/author. Returns iid, title, state, source_branch, target_branch, author, web_url per MR.
gitlab_list_pipelinesread-onlyList pipelines for a project. Returns id, status, ref, source, timing, web_url.
gitlab_list_project_approval_rulesread-onlyList project-level approval rules. Returns rules with id, name, approvals_required, and eligible approvers/groups.
gitlab_list_releasesread-onlyList project releases. Returns tag_name, name, description, created_at, released_at, and assets per release.
gitlab_list_tagsread-onlyList repository tags. Returns name, message, target sha, commit summary, and any attached release per tag.
gitlab_list_treeread-onlyList repository tree entries (files and directories) at a ref. Returns items with id, name, type ('blob' or 'tree'), path, and mode, plus pagination state.
gitlab_list_variablesread-onlyList project CI/CD variables. Returns key, value (shown as '***MASKED***' when masked), protected, masked, environment_scope per variable.
gitlab_merge_mrMerge a merge request, optionally only when the pipeline succeeds. Returns the merged MR with state=merged and merge_commit_sha.
gitlab_merge_mr_sequenceMerge several MRs sequentially, stopping at the first failure. Returns {status, merged, scheduled, merged_so_far}. Merging an MR updates the target branch, so the next MR is re-checked (unchecked/checking are polled, not treated as failures). With merge_when_pipeline_succeeds, an MR whose pipeline is still running is scheduled to auto-merge and reported in `scheduled`, not `merged`.
gitlab_mr_changesread-onlyGet the file diffs of a merge request, one page at a time. Returns {items, count, has_more, next_page}; each item has old_path, new_path, diff, new_file, renamed_file, deleted_file. A file whose diff exceeds the per-file cap is truncated and flagged truncated=true — page through with per_page/page to see more files. Uses GET .../merge_requests/:iid/diffs (the /changes endpoint it replaced is deprecated and uncapped); unlike /changes this returns only the diff list, not the enclosing MR object.
gitlab_play_jobTrigger a manual job, optionally with job variables. Returns the started job's id, status, name, and web_url.
gitlab_publish_draft_notesPublish ALL pending draft notes on a merge request at once, like clicking "Submit review". Returns a {status: published} confirmation. Idempotent: a no-op when no drafts remain.
gitlab_rebase_mrTrigger a server-side rebase of an MR onto its target branch. Returns {rebase_in_progress: true}.
gitlab_remove_emojican change or delete dataRemove an emoji reaction from an MR note. Returns a {status: removed} confirmation.
gitlab_reply_to_discussionReply to an existing MR discussion thread. Returns the new note's id, body, author, and created_at.
gitlab_resolve_discussionMark an MR discussion as resolved or unresolved. Returns the updated discussion with its resolved flag and notes.
gitlab_retry_jobRetry a failed job. Returns the new job's id, status, name, stage, and web_url.
gitlab_retry_pipelineRetry all failed or canceled jobs in a pipeline. Returns the updated pipeline with status and timing.
gitlab_search_coderead-onlySearch a project's code (scope=blobs). Returns items with path, ref, startline, and data. Results depend on the instance's search backend: without Advanced Search only the default branch is searched and `ref` is ignored.
gitlab_share_group_with_groupGrant one group access to another group at the given access level. Returns the share record.
gitlab_share_project_with_groupGrant a group access to a project at the given access level. Returns a {status: shared, project_id, group_id} confirmation.
gitlab_subscribe_mrSubscribe the authenticated user to notifications for a merge request. Returns the updated MR object.
gitlab_unapprove_mrRemove the current user's approval from a merge request. Returns the updated approval state.
gitlab_unshare_group_with_groupcan change or delete dataRevoke a group-to-group share. Returns a {status: unshared} confirmation.
gitlab_unshare_project_with_groupcan change or delete dataRevoke a group's access to a project. Returns a {status: unshared, project_id, group_id} confirmation.
gitlab_unsubscribe_mrUnsubscribe the authenticated user from notifications for a merge request. Returns the updated MR object.
gitlab_update_group_variableUpdate a group CI/CD variable. Returns the updated variable object.
gitlab_update_issueUpdate an issue's title, description, labels, assignees, weight, or state event. Returns the updated issue object.
gitlab_update_mrUpdate an MR's title, description, target branch, labels, squash/draft flags, or state. Returns the updated MR object.
gitlab_update_mr_approval_ruleUpdate a merge-request-level approval rule. Returns the updated rule object.
gitlab_update_mr_noteEdit an existing MR comment's body. Returns the updated note's id, body, author, and updated_at.
gitlab_update_project_approval_ruleUpdate a project-level approval rule. Returns the updated rule object.
gitlab_update_project_approvalsUpdate project-level approval settings. Returns the updated approval configuration.
gitlab_update_project_merge_settingsUpdate merge-related project settings (squash, fast-forward, pipeline gating). Returns the updated project object.
gitlab_update_releaseUpdate a release's name, description, or release date. Returns the updated release.
gitlab_update_variableUpdate a project CI/CD variable. Returns the updated variable object. environment_scope selects which scoped variable to update; it does not change the scope.
Compare and alternatives
Featured in
Signals
- Stars
- 6
- Forks
- 3
- Open issues
- 4
- Weekly downloads
- 7,973
- Last commit
- Oct 22, 2026 (4 days ago)
- Last release
- Oct 22, 2026 (4 days ago)
- Last package publish
- Oct 22, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.vish288/mcp-gitlab- Version
- 0.21.2
- Auth
- API key
- Packages
- pypi mcp-gitlab
- License
- MIT
- Repository
- github.com/vish288/mcp-gitlab
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from vish288
- 0.643score
MCP Atlassian Extended
vish288
Jira/Confluence MCP server (MCP 2026-07-28): sprints, boards, attachments; writes or read-only
ConnectorAFreshness: ALocal★ 3↓ 512/wkClaude Code +5 - 0.639score
MCP Coda
vish288
Coda MCP server (MCP 2026-07-28): docs, pages, tables, rows, automations; writes or read-only
ConnectorAFreshness: ALocal★ 2↓ 532/wkClaude Code +5 - 0.613score
MCP Argocd
vish288
Argo CD MCP server (MCP 2026-07-28): status, sync, rollback, drift, AppSets; writes or read-only
ConnectorAFreshness: ALocal↓ 323/wkClaude Code +5
Cite this page
MCP GitLab. Agent Mart. https://agentmart.dev/connectors/vish288-mcp-gitlab (last updated 2026-10-24)