Skip to content

MCP Capabilities

GitLab MCP Server implements 7 MCP protocol capabilities that enhance how AI assistants interact with GitLab. These capabilities go beyond basic tool calling to provide richer, more intelligent interactions.

CapabilityDirectionWhat It Enables
LoggingServer → ClientStructured log messages sent to the MCP client for visibility
ProgressServer → ClientReal-time progress updates for long-running operations
RootsClient → ServerWorkspace context — auto-detect GitLab project from local git repo
SamplingServer → ClientAI-powered analysis — server sends GitLab data to client’s LLM for analysis
ElicitationServer → ClientInteractive wizards — step-by-step forms for creating complex resources
CompletionsClient → ServerArgument autocompletion for project names, branches, users, and more
IconsServer → ClientSVG icons for every tool, resource, and prompt

Capabilities are negotiated during the MCP initialization handshake between the client and server:

sequenceDiagram
    participant C as MCP Client
    participant S as GitLab MCP Server

    C->>S: initialize (client capabilities)
    S-->>C: initialize response (server capabilities)
    Note over C,S: Both sides know what the<br/>other supports

    C->>S: Tool call
    S-->>C: Progress notification
    S-->>C: Log message
    S-->>C: Tool result

Server-declared capabilities (Logging, Completions) are always available. Client-dependent capabilities (Roots, Sampling, Elicitation) require the MCP client to declare support — the server checks for their presence before using them and gracefully degrades when they are unavailable.

Not all MCP clients support every capability. The server adapts automatically:

CapabilityClaude DesktopVS Code CopilotCursorClaude Code
Logging
Progress
Completions
Roots
Sampling
Elicitation
Icons