Skip to content

MCP Capabilities

GitLab MCP Server implements 6 MCP protocol capabilities that enhance how AI assistants interact with GitLab, plus icon metadata on every tool, resource, and prompt. These 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
Icons (metadata)Server → 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