Gitlab

88 tools. 45 can modify or destroy data without limits.

5 destructive tools with no built-in limits. Policy required.

Last updated:

45 can modify or destroy data
43 read-only
88 tools total

Community server · catalogue entry verified 11/06/2026

How to control Gitlab ↓

Read (43) Write / Execute (40) Destructive / Financial (5)
Critical Risk

45 of Gitlab's 88 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

PolicyLayer is an MCP gateway — it sits between your AI agents and Gitlab, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "delete_branch": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "cancel_auto_merge": {
    "limits": [
      {
        "counter": "cancel_auto_merge_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "compare_branches": {
    "limits": [
      {
        "counter": "compare_branches_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register Gitlab — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON GITLAB →

Free to start. No card required.

WRITE 34 tools
Write cancel_auto_merge Cancel auto-merge for a merge request Write fork_repository Fork a GitLab project to your account or specified namespace Write protect_branch Protect a branch in a GitLab project Write approve_merge_request Approve a merge request Write create_branch Create a new branch in a GitLab project Write create_group Create a new GitLab group Write create_group_wiki_page Create a new wiki page for a GitLab group Write create_issue Create a new issue in a GitLab project Write create_issue_note Add a comment to an issue Write create_label Create a new label in a GitLab project Write create_merge_request Create a new merge request in a GitLab project Write create_merge_request_discussion Create a new discussion on a merge request Write create_merge_request_note Add a comment to a merge request Write create_milestone Create a new milestone in a GitLab project Write create_or_update_file Create or update a single file in a GitLab project Write create_project_wiki_page Create a new wiki page for a GitLab project Write create_release Create a new release for a GitLab project Write create_repository Create a new GitLab project Write create_tag Create a new tag in a GitLab project Write edit_group_wiki_page Edit an existing wiki page for a GitLab group Write edit_project_wiki_page Edit an existing wiki page for a GitLab project Write merge_merge_request Merge a merge request Write push_files Push multiple files to a GitLab project in a single commit Write set_auto_merge Set a merge request to merge when pipeline succeeds (auto-merge) Write unapprove_merge_request Remove your approval from a merge request Write update_group Update a GitLab group Write update_issue Update an existing issue Write update_label Update an existing label Write update_merge_request Update an existing merge request Write update_merge_request_note Edit a comment on a merge request Write update_milestone Update an existing milestone Write update_project Update a GitLab project Write upload_group_wiki_attachment Upload an attachment to a GitLab group wiki Write upload_project_wiki_attachment Upload an attachment to a GitLab project wiki
READ 43 tools
Read compare_branches Compare two branches, tags, or commits Read get_current_user Get details of the currently authenticated user Read get_environment Get details of a specific environment Read get_file_contents Get the contents of a file or directory from a GitLab project Read get_group Get details of a specific group Read get_group_wiki_page Get a specific wiki page for a GitLab group Read get_job Get details of a specific job Read get_job_log Get the raw log/trace output of a job Read get_job_log_smart Get a job Read get_merge_request_changes Get the changes/diffs for a merge request Read get_merge_request_commits Get the commits for a merge request Read get_pipeline Get details of a specific pipeline Read get_pipeline_summary Get a complete pipeline investigation summary: pipeline details, jobs grouped by stage, and log tails for fail Read get_project Get details of a GitLab project Read get_project_events Get recent events/activities for a GitLab project Read get_project_wiki_page Get a specific wiki page for a GitLab project Read get_repository_tree Get the repository file tree Read get_user Get details of a specific user Read list_branches List branches for a GitLab project Read list_commits Get commit history for a GitLab project Read list_environments List environments for a GitLab project Read list_group_members List all members of a GitLab group (including inherited members) Read list_group_projects List all projects (repositories) within a specific GitLab group Read list_group_subgroups List subgroups of a group Read list_group_wiki_pages List all wiki pages for a GitLab group Read list_groups List GitLab groups Read list_issue_discussions Fetch all discussions (threaded comments) for a GitLab issue Read list_issue_notes Fetch all comments and system notes for a GitLab issue Read list_issues Get issues for a GitLab project Read list_labels List labels for a GitLab project Read list_merge_request_discussions List all discussions (threaded comments) on a merge request Read list_merge_request_notes List all comments and notes on a merge request Read list_merge_requests Get merge requests for a GitLab project Read list_milestones List milestones for a GitLab project Read list_pipeline_jobs List jobs for a specific pipeline. Use scope=[ Read list_pipelines List pipelines for a GitLab project Read list_project_members List all members of a GitLab project (including inherited members) Read list_project_wiki_pages List all wiki pages for a GitLab project Read list_protected_branches List protected branches for a GitLab project Read list_releases List releases for a GitLab project Read list_tags List tags for a GitLab project Read list_users List GitLab users Read search_repositories Search for GitLab projects

Other MCP servers with similar tools — same risk classification, starter policies for each.

Can an AI agent delete data through the Gitlab MCP server? +

Yes. The Gitlab server exposes 5 destructive tools including delete_branch, delete_group, delete_group_wiki_page. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Gitlab? +

The Gitlab server has 34 write tools including cancel_auto_merge, fork_repository, protect_branch. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach Gitlab.

How many tools does the Gitlab MCP server expose? +

88 tools across 4 categories: Destructive, Execute, Read, Write. 43 are read-only. 45 can modify, create, or delete data.

How do I enforce a policy on Gitlab? +

Register the Gitlab MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every Gitlab tool call.

Deterministic rules across all 88 Gitlab tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

88 Gitlab tools catalogued and risk-classified — across an index of 42,500+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.