Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)★ 6
Write a review

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.

We use your email only for this newsletter. Privacy

About

GitLab MCP server (MCP 2026-07-28): projects, MRs, pipelines, CI/CD, issues; writes or read-only

Use cases: version-control, ci-cd

No 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_compare
  • gitlab_get_blame
  • gitlab_get_commit
  • gitlab_get_file
  • gitlab_get_group
  • gitlab_get_issue
  • gitlab_get_job_log
  • gitlab_get_mr
  • gitlab_get_mr_approvals
  • gitlab_get_pipeline
  • gitlab_get_project
  • gitlab_get_project_approvals
Show 22 more tools
  • gitlab_get_release
  • gitlab_get_tag
  • gitlab_list_branches
  • gitlab_list_commits
  • gitlab_list_draft_notes
  • gitlab_list_group_variables
  • gitlab_list_groups
  • gitlab_list_issues
  • gitlab_list_mr_approval_rules
  • gitlab_list_mr_commits
  • gitlab_list_mr_discussions
  • gitlab_list_mr_notes
  • gitlab_list_mr_pipelines
  • gitlab_list_mrs
  • gitlab_list_pipelines
  • gitlab_list_project_approval_rules
  • gitlab_list_releases
  • gitlab_list_tags
  • gitlab_list_tree
  • gitlab_list_variables
  • gitlab_mr_changes
  • gitlab_search_code

Write 40 · Create, change, send or run things.

  • gitlab_add_issue_comment
  • gitlab_add_mr_note
  • gitlab_approve_mr
  • gitlab_award_emoji
  • gitlab_create_branch
  • gitlab_create_draft_note
  • gitlab_create_group_variable
  • gitlab_create_issue
  • gitlab_create_mr
  • gitlab_create_mr_approval_rule
  • gitlab_create_mr_discussion
  • gitlab_create_pipeline
Show 28 more tools
  • gitlab_create_project
  • gitlab_create_project_approval_rule
  • gitlab_create_release
  • gitlab_create_tag
  • gitlab_create_variable
  • gitlab_merge_mr
  • gitlab_merge_mr_sequence
  • gitlab_play_job
  • gitlab_publish_draft_notes
  • gitlab_rebase_mr
  • gitlab_reply_to_discussion
  • gitlab_resolve_discussion
  • gitlab_retry_job
  • gitlab_retry_pipeline
  • gitlab_share_group_with_group
  • gitlab_share_project_with_group
  • gitlab_subscribe_mr
  • gitlab_unsubscribe_mr
  • gitlab_update_group_variable
  • gitlab_update_issue
  • gitlab_update_mr
  • gitlab_update_mr_approval_rule
  • gitlab_update_mr_note
  • gitlab_update_project_approval_rule
  • gitlab_update_project_approvals
  • gitlab_update_project_merge_settings
  • gitlab_update_release
  • gitlab_update_variable

Delete 17 · Delete, drop, revoke or wipe things.

  • gitlab_cancel_job
  • gitlab_cancel_pipeline
  • gitlab_create_commit
  • gitlab_delete_branch
  • gitlab_delete_draft_note
  • gitlab_delete_group_variable
  • gitlab_delete_mr_approval_rule
  • gitlab_delete_mr_note
  • gitlab_delete_project
  • gitlab_delete_project_approval_rule
  • gitlab_delete_release
  • gitlab_delete_tag
Show 5 more tools
  • gitlab_delete_variable
  • gitlab_remove_emoji
  • gitlab_unapprove_mr
  • gitlab_unshare_group_with_group
  • gitlab_unshare_project_with_group

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • GITLAB_AUTH
  • GITLAB_HTTP_BEARER_TOKEN
  • GITLAB_OAUTH_CLIENT_SECRET
  • GITLAB_OAUTH_JWT_KEY
  • GITLAB_TOKEN

Other settings (environment variables or headers).

  • GITLAB_OAUTH_BASE_URL
  • GITLAB_OAUTH_CLIENT_ID
  • GITLAB_OAUTH_SCOPES
  • GITLAB_READ_ONLY
  • GITLAB_URL
  • MCP_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_comment

    Post a comment on an issue. Returns the new note's id, body, author, and created_at.

  • gitlab_add_mr_note

    Post a new comment on a merge request. Returns the new note's id, body, author, and created_at.

  • gitlab_approve_mr

    Approve a merge request, optionally gating on a sha so HEAD hasn't changed. Returns the updated approval state (approved_by, approvals_left).

  • gitlab_award_emoji

    Add an emoji reaction to an MR note. Returns the new award's id, name, and user.

  • gitlab_cancel_jobcan change or delete data

    Cancel a running job. Returns the updated job with status=canceled.

  • gitlab_cancel_pipelinecan change or delete data

    Cancel a running pipeline. Returns the updated pipeline with status=canceled.

  • gitlab_compareread-only

    Compare 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_branch

    Create a branch from an existing ref. Returns the new branch's name, commit sha, and protection status.

  • gitlab_create_commit

    Create 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_note

    Create 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_variable

    Create a group CI/CD variable. Returns the new variable's key, value (masked if applicable), protected, masked, environment_scope.

  • gitlab_create_issue

    Create a new issue. Returns the new issue's iid, title, state, labels, assignees, author, web_url.

  • gitlab_create_mr

    Create a merge request. Returns the new MR's iid, title, state, source_branch, target_branch, and web_url.

  • gitlab_create_mr_approval_rule

    Add an approval rule to a merge request. Returns the new rule's id, name, approvals_required, and approvers.

  • gitlab_create_mr_discussion

    Create 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_pipeline

    Trigger a new pipeline on the given ref, optionally with variables. Returns the new pipeline's id, status, ref, sha, source, web_url.

  • gitlab_create_project

    Create a new project. Returns the new project's id, name, path_with_namespace, web_url, and default settings.

  • gitlab_create_project_approval_rule

    Create a project-level approval rule. Returns the new rule's id, name, approvals_required, and target users/groups.

  • gitlab_create_release

    Create a release tied to a tag (or a new ref). Returns the new release with tag_name, name, description, and assets.

  • gitlab_create_tag

    Create a tag on the given ref, optionally with a message. Returns the new tag's name, message, target, and commit.

  • gitlab_create_variable

    Create 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 data

    Delete a branch from a project. Returns a {status: deleted, branch} confirmation.

  • gitlab_delete_draft_notecan change or delete data

    Delete a single unpublished draft note. Returns a {status: deleted, draft_note_id} confirmation.

  • gitlab_delete_group_variablecan change or delete data

    Delete a group CI/CD variable. Returns a {status: deleted, key} confirmation.

  • gitlab_delete_mr_approval_rulecan change or delete data

    Delete an approval rule from a merge request. Returns a {status: deleted, rule_id} confirmation.

  • gitlab_delete_mr_notecan change or delete data

    Delete a comment from a merge request. Returns a {status: deleted, note_id} confirmation.

  • gitlab_delete_projectcan change or delete data

    Permanently delete a project. Irreversible. Returns a {status: deleted, project_id} confirmation.

  • gitlab_delete_project_approval_rulecan change or delete data

    Delete a project-level approval rule. Returns a {status: deleted, rule_id} confirmation.

  • gitlab_delete_releasecan change or delete data

    Delete a release (the underlying tag is preserved). Returns a {status: deleted, tag_name} confirmation.

  • gitlab_delete_tagcan change or delete data

    Delete a tag. Returns a {status: deleted, tag} confirmation.

  • gitlab_delete_variablecan change or delete data

    Delete a project CI/CD variable. Returns a {status: deleted, key} confirmation.

  • gitlab_get_blameread-only

    Get 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-only

    Get 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-only

    Get 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-only

    Get a group's details. Returns id, name, full_path, visibility, web_url, and subgroup/membership counts.

  • gitlab_get_issueread-only

    Get a single issue. Returns iid, title, description, state, labels, assignees, author, milestone, due_date, web_url.

  • gitlab_get_job_logread-only

    Get 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-only

    Get merge request details. Returns title, state, source/target branches, author, diff_refs, and merge status.

  • gitlab_get_mr_approvalsread-only

    Get the approval state of a merge request. Returns approved_by, approvals_required, approvals_left, and matching rules.

  • gitlab_get_pipelineread-only

    Get 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-only

    Get a project's details. Returns id, name, path_with_namespace, visibility, default_branch, web_url, description.

  • gitlab_get_project_approvalsread-only

    Get project-level approval configuration. Returns approvals_before_merge, reset_approvals_on_push, and self-approval rules.

  • gitlab_get_releaseread-only

    Get a release by tag. Returns name, description, tag_name, created_at, and assets (links, sources).

  • gitlab_get_tagread-only

    Get a tag's details. Returns name, message, target commit, and any attached release.

  • gitlab_list_branchesread-only

    List branches in a project. Returns name, commit sha, protected, default, and merged flags per branch.

  • gitlab_list_commitsread-only

    List 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-only

    List 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-only

    List group CI/CD variables. Returns key, value (shown as '***MASKED***' when masked), protected, masked, environment_scope per variable.

  • gitlab_list_groupsread-only

    List groups visible to the caller. Returns id, name, full_path, parent_id, visibility, web_url per group.

  • gitlab_list_issuesread-only

    List issues in a project, filterable by state/labels/assignee. Returns iid, title, state, labels, author, web_url per issue.

  • gitlab_list_mr_approval_rulesread-only

    List approval rules attached to a merge request. Returns rules with id, name, approvals_required, and approvers.

  • gitlab_list_mr_commitsread-only

    List commits included in a merge request. Returns id, short_id, title, author_name, authored_date per commit.

  • gitlab_list_mr_discussionsread-only

    List 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-only

    List 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-only

    List pipelines associated with a merge request. Returns id, status, ref, sha, source, web_url per pipeline.

  • gitlab_list_mrsread-only

    List 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-only

    List pipelines for a project. Returns id, status, ref, source, timing, web_url.

  • gitlab_list_project_approval_rulesread-only

    List project-level approval rules. Returns rules with id, name, approvals_required, and eligible approvers/groups.

  • gitlab_list_releasesread-only

    List project releases. Returns tag_name, name, description, created_at, released_at, and assets per release.

  • gitlab_list_tagsread-only

    List repository tags. Returns name, message, target sha, commit summary, and any attached release per tag.

  • gitlab_list_treeread-only

    List 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-only

    List project CI/CD variables. Returns key, value (shown as '***MASKED***' when masked), protected, masked, environment_scope per variable.

  • gitlab_merge_mr

    Merge a merge request, optionally only when the pipeline succeeds. Returns the merged MR with state=merged and merge_commit_sha.

  • gitlab_merge_mr_sequence

    Merge 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-only

    Get 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_job

    Trigger a manual job, optionally with job variables. Returns the started job's id, status, name, and web_url.

  • gitlab_publish_draft_notes

    Publish 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_mr

    Trigger a server-side rebase of an MR onto its target branch. Returns {rebase_in_progress: true}.

  • gitlab_remove_emojican change or delete data

    Remove an emoji reaction from an MR note. Returns a {status: removed} confirmation.

  • gitlab_reply_to_discussion

    Reply to an existing MR discussion thread. Returns the new note's id, body, author, and created_at.

  • gitlab_resolve_discussion

    Mark an MR discussion as resolved or unresolved. Returns the updated discussion with its resolved flag and notes.

  • gitlab_retry_job

    Retry a failed job. Returns the new job's id, status, name, stage, and web_url.

  • gitlab_retry_pipeline

    Retry all failed or canceled jobs in a pipeline. Returns the updated pipeline with status and timing.

  • gitlab_search_coderead-only

    Search 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_group

    Grant one group access to another group at the given access level. Returns the share record.

  • gitlab_share_project_with_group

    Grant a group access to a project at the given access level. Returns a {status: shared, project_id, group_id} confirmation.

  • gitlab_subscribe_mr

    Subscribe the authenticated user to notifications for a merge request. Returns the updated MR object.

  • gitlab_unapprove_mr

    Remove the current user's approval from a merge request. Returns the updated approval state.

  • gitlab_unshare_group_with_groupcan change or delete data

    Revoke a group-to-group share. Returns a {status: unshared} confirmation.

  • gitlab_unshare_project_with_groupcan change or delete data

    Revoke a group's access to a project. Returns a {status: unshared, project_id, group_id} confirmation.

  • gitlab_unsubscribe_mr

    Unsubscribe the authenticated user from notifications for a merge request. Returns the updated MR object.

  • gitlab_update_group_variable

    Update a group CI/CD variable. Returns the updated variable object.

  • gitlab_update_issue

    Update an issue's title, description, labels, assignees, weight, or state event. Returns the updated issue object.

  • gitlab_update_mr

    Update an MR's title, description, target branch, labels, squash/draft flags, or state. Returns the updated MR object.

  • gitlab_update_mr_approval_rule

    Update a merge-request-level approval rule. Returns the updated rule object.

  • gitlab_update_mr_note

    Edit an existing MR comment's body. Returns the updated note's id, body, author, and updated_at.

  • gitlab_update_project_approval_rule

    Update a project-level approval rule. Returns the updated rule object.

  • gitlab_update_project_approvals

    Update project-level approval settings. Returns the updated approval configuration.

  • gitlab_update_project_merge_settings

    Update merge-related project settings (squash, fast-forward, pipeline gating). Returns the updated project object.

  • gitlab_update_release

    Update a release's name, description, or release date. Returns the updated release.

  • gitlab_update_variable

    Update 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
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from vish288

    Cite this page

    MCP GitLab. Agent Mart. https://agentmart.dev/connectors/vish288-mcp-gitlab (last updated 2026-10-24)