Registering a thousand GitLab operations would cost more context than most sessions have. Dynamic mode shows the model two tools — find an action, execute it — and keeps 851 actions on Free and Community Edition reachable behind them, measured at 1,504 tokens of tool schema. Setting CAPABILITY_SURFACE to minimal drops the shared resources and prompts as well, taking the startup footprint from 9,204 tokens to 1,678. Move to the meta or individual surfaces only when you specifically want dispatchers or a flat catalog; the counts scale with your GitLab tier, so a Free instance simply has fewer actions available.
A Go server covering GitLab's REST and GraphQL APIs across more than a thousand operations, presented in whichever of three tool shapes suits your client.
- The dynamic surface, on by default: two visible tools, gitlab_find_action and gitlab_execute_action, reaching the full action catalog on demand
- A meta surface of domain dispatchers — gitlab_project, gitlab_merge_request, gitlab_pipeline, gitlab_job, gitlab_user, gitlab_group, gitlab_wiki, gitlab_tag, gitlab_ci_variable, gitlab_access and more — each taking an action parameter
- An individual surface that registers one MCP tool per GitLab operation, for clients with room for it
- gitlab_mr_review for merge request review, and gitlab_discover_project for finding your way into an unfamiliar project
- gitlab_orbit with its query, schema, tools and DSL companions, for GraphQL work
- Resources, prompt templates, completions for projects, users, groups, branches and tags, and interactive creation wizards
- Self-managed instances through GITLAB_URL, including skipping TLS verification for a self-signed certificate
A GitLab Personal Access Token in GITLAB_TOKEN; GITLAB_URL only if you are not on gitlab.com. Ships as a static binary for Windows, Linux and macOS on amd64 and arm64, or as a container image. TOOL_SURFACE picks the shape, CAPABILITY_SURFACE trims resources and prompts, and which actions exist depends on your GitLab edition.
One command plus a key — claude mcp add gitlab --env GITLAB_TOKEN=glpat-xxxx -- gitlab-mcp-server, then supply credentials
