Skip to content

Tools Overview

GitLab MCP Server exposes GitLab operations as MCP tools that AI assistants can invoke directly. The server offers three operating modes to balance capability with token efficiency.

All modes cover the same GitLab API surface. They differ in packaging: individual mode exposes one MCP tool per operation, meta-tool mode groups actions by domain, and dynamic mode searches and executes canonical domain.action IDs from the same action catalog.

In individual mode, the server registers one tool per GitLab operation: 863 tools for CE, 1006 tools for self-managed Enterprise/Premium, or 1011 tools on GitLab.com Enterprise/Premium when Orbit is available. This provides maximum granularity but consumes significant LLM context tokens for tool discovery.

In meta-tool mode (META_TOOLS=true), related operations are consolidated into domain-level meta-tools. Each meta-tool accepts an action parameter that routes to the appropriate handler. This reduces the tool count to 32 base meta-tools, 47 on self-managed Enterprise/Premium, or 48 on GitLab.com Enterprise/Premium when Orbit is available, dramatically improving LLM token efficiency while preserving full functionality.

{
"tool": "gitlab_issue",
"arguments": {
"action": "create",
"project": "my-group/my-project",
"title": "Fix login redirect",
"description": "Users are redirected to 404 after login",
"labels": "bug,priority::high"
}
}

Dynamic mode (TOOL_SURFACE=dynamic or TOOL_SURFACE=dynamic-3) is the low-token alternative. It exposes only three public tools: gitlab_search_tools, gitlab_describe_tools, and gitlab_execute_tool (the singular gitlab_execute_tool name is intentional). The same GitLab actions remain available in the canonical action catalog. The assistant searches for an action, describes the exact schema, then executes the canonical domain.action ID.

flowchart LR
    A[Search tools] --> B[Describe action]
    B --> C[Execute domain.action]
    C --> D[Existing GitLab handler]

Because meta-tools and dynamic mode share the canonical action catalog, safety behavior stays consistent across both modes. Safety behavior includes read-only filtering, safe-mode previews, token-scope filtering, destructive confirmations, schemas, and result formatting.

All tools follow a consistent naming pattern:

  • Individual tools: gitlab_{action}_{resource} (e.g., gitlab_create_issue, gitlab_list_projects)
  • Meta-tools: gitlab_{domain} (e.g., gitlab_issue, gitlab_project)
  • Dynamic actions: canonical domain.action IDs executed through gitlab_execute_tool (e.g., issue.create, merge_request.list)
Meta-toolDescriptionKey Actions
gitlab_projectProject CRUD, configuration, hooks, labels, milestones, members, badges, access tokens, todo, upload, and morelist, get, create, update, delete, fork, star, archive, label_*, milestone_*, members, badge_*, upload
gitlab_issueIssue lifecycle, notes, discussions, links, work items, time tracking, award emoji, and resource eventslist, get, create, update, delete, note_*, link_*, discussion_*, work_item_*, time_*
gitlab_groupGroup CRUD, subgroups, members, badges, hooks, labels, milestones, transfer, and descendant projectslist, get, create, update, delete, label_*, milestone_*, member_*, badge_*, hook_*
gitlab_userUser information, status, SSH keys, GPG keys, emails, activity, and preferencesget, current, list, ssh_key_*, gpg_key_*, email_*, status_*
gitlab_wikiWiki page management and attachmentslist, get, create, update, delete, upload_attachment
Meta-toolDescriptionKey Actions
gitlab_branchBranch management and protection rules (including branch rule queries via GraphQL)list, get, create, delete, protect, unprotect, branch_rule_*
gitlab_tagTag management and protection rules with GPG signature verificationlist, get, create, delete, protect, unprotect
gitlab_releaseRelease management and release asset linkslist, get, create, update, delete, link_*
gitlab_repositoryRepository tree, files, commits, diffs, blame, compare, cherry-pick, revert, contributors, archives, changelogs, markdowntree, file_*, commit_*, compare, blame, archive, changelog, submodule_*, discussion_*
gitlab_merge_requestMR lifecycle, approvals, approval rules, time tracking, subscriptions, context commits, award emoji, and resource eventslist, get, create, update, merge, rebase, approve, approval_*, time_*, event_*
Meta-toolDescriptionKey Actions
gitlab_mr_reviewMR notes, threaded discussions, code diffs, draft notes, and diff versionsnote_*, discussion_*, diff_*, draft_*, version_*
Meta-toolDescriptionKey Actions
gitlab_pipelinePipeline management, resource groups, test reports, trigger tokens, pipeline bridges, and pipeline scheduleslist, get, create, cancel, retry, delete, wait, schedule_*, trigger_*
gitlab_jobCI job management, artifacts, logs, and Kubernetes agentslist, get, play, cancel, retry, erase, trace, artifacts, wait, k8s_*
gitlab_runnerCI/CD runner management, runner controllers, controller scopes, and controller tokenslist, get, update, remove, jobs, controller_*, register, verify
gitlab_ci_variableCI/CD variables at instance, group, and project scopelist, get, create, update, delete (at each scope level)
gitlab_environmentEnvironment management, protected environments, deployment freeze periods, and deployment recordslist, get, create, update, delete, stop, deployment_*, freeze_*
Meta-toolDescriptionKey Actions
gitlab_searchCross-resource search across projects, groups, and global scopecode, issues, merge_requests, commits, milestones, notes, projects, snippets, users, wiki
gitlab_analyzeAI-powered sampling analysis (11 operations via LLM sampling)analyze_mr_changes, summarize_issue, pipeline_failure, …
Meta-toolDescriptionKey Actions
gitlab_accessDeploy keys, deploy tokens, project access tokens, group access tokens, and access requestsdeploy_key_*, deploy_token_*, project_token_*, group_token_*
gitlab_adminInstance administration: Sidekiq, settings, license, broadcast messages, hooks, PATs, and moresidekiq_*, setting_*, license_*, broadcast_*, hook_*, pat_*
Meta-toolDescriptionKey Actions
gitlab_packagePackage registry management and generic package file upload/downloadlist, get, delete, upload, download, protection_rule_*
gitlab_snippetProject and personal snippets with discussions, notes, and award emojilist, get, create, update, delete, discussion_*, note_*
gitlab_templateProject templates (gitignores, CI YAML, Dockerfiles, licenses) and CI lintinggitignore_*, ci_*, dockerfile_*, license_*, lint
Meta-toolDescriptionKey Actions
gitlab_feature_flagsFeature flag and feature flag user list managementlist, get, create, update, delete, user_list_*
gitlab_model_registryML model package file download from GitLab Model Registrydownload
gitlab_ci_catalogCI/CD Catalog resource discovery (reusable components, templates)list, get
gitlab_custom_emojiGroup-level custom emoji management via GraphQLlist, get, create, delete
gitlab_resolve_projectResolve Git remote URLs to GitLab project IDsresolve

When the Enterprise/Premium catalog is enabled, the server registers 15 additional self-managed meta-tools for GitLab Premium and Ultimate features:

gitlab_merge_train, gitlab_audit_event, gitlab_dora_metrics, gitlab_dependency, gitlab_external_status_check, gitlab_group_scim, gitlab_member_role, gitlab_enterprise_user, gitlab_attestation, gitlab_compliance_policy, gitlab_project_alias, gitlab_geo, gitlab_storage_move, gitlab_vulnerability, gitlab_security_finding

On GitLab.com Enterprise/Premium, the catalog also registers gitlab_orbit with five read-only Knowledge Graph actions: status, schema, tools, query, and graph_status.