Skip to content

Progress

GitLab MCP Server sends real-time progress notifications during long-running operations, allowing MCP clients to display progress indicators to the user.

When a tool performs multiple steps or processes large datasets, the server sends notifications/progress messages to the client:

sequenceDiagram
    participant U as User
    participant AI as AI Assistant
    participant S as MCP Server
    participant GL as GitLab API

    U->>AI: "List all project issues"
    AI->>S: gitlab_issue list
    S-->>AI: Progress: "Fetching page 1..." (25%)
    S->>GL: GET /projects/42/issues?page=1
    S-->>AI: Progress: "Fetching page 2..." (50%)
    S->>GL: GET /projects/42/issues?page=2
    S-->>AI: Progress: "Fetching page 3..." (75%)
    S->>GL: GET /projects/42/issues?page=3
    S-->>AI: Progress: "Complete" (100%)
    S-->>AI: Tool result with all issues

Progress reporting is used for operations that may take several seconds:

| Operation | Progress Detail | | ---------------------------- | ------------------------------------------- | | Paginated list retrieval | Page-by-page fetch progress | | Bulk operations | Per-item progress (e.g., bulk issue update) | | Sampling analysis | Data collection → LLM analysis phases | | CSV import | Per-row import progress | | Auto-update | Download and apply steps |

How progress is displayed depends on the MCP client:

  • VS Code / Copilot — Progress indicator in the status bar or output panel
  • Claude Desktop — Progress text shown during tool execution
  • Claude Code — Real-time terminal progress updates

Progress notifications follow the MCP protocol format:

{
"jsonrpc": "2.0",
"method": "notifications/progress",
"params": {
"progressToken": "tool-call-123",
"progress": 50,
"total": 100,
"message": "Fetching page 2 of 4..."
}
}

| Field | Description | | --------------- | --------------------------------------------------------- | | progressToken | Correlation ID linking progress to the original tool call | | progress | Current step number | | total | Total number of steps (when known) | | message | Human-readable description of the current step |