diff --git a/docs/features/mcp-service.md b/docs/features/mcp-service.md index 9bba8337e..01bfc26f7 100644 --- a/docs/features/mcp-service.md +++ b/docs/features/mcp-service.md @@ -92,33 +92,28 @@ Add to `claude_desktop_config.json`: ```mermaid sequenceDiagram participant Client as Claude Code / Claude Desktop - participant MCP as MCP Service
(/v3/mcp/transport) + participant MCP as MCP Service participant Auth as JWT Auth participant GNS3 as GNS3 REST API - participant DB as Controller / Database - - Note over Client: Step 1: Connect with JWT - Client->>MCP: GET /sse?token=<jwt>
or Authorization: Bearer <jwt> + Note over Client: 1. Connect with JWT + Client->>MCP: GET /sse (token in header or query) MCP->>Auth: Validate Token Auth-->>MCP: Token Valid - MCP-->>Client: event: endpoint
data: /messages/?session_id=xxx + MCP-->>Client: event: endpoint /messages/?session_id=xxx - Note over Client: Step 2: Initialize Protocol - Client->>MCP: POST /messages/?session_id=xxx
{"method":"initialize", ...} - MCP-->>Client: event: message
{"result": {"protocolVersion": "...", ...}} + Note over Client: 2. Initialize + Client->>MCP: POST /messages/ (initialize) + MCP-->>Client: event: message (protocolVersion, capabilities) - Note over Client: Step 3: List & Call Tools - Client->>MCP: POST /messages/
{"method":"tools/list"} - MCP-->>Client: event: message
{"result": {"tools": [...]}} + Note over Client: 3. List & Call Tools + Client->>MCP: POST /messages/ (tools/list) + MCP-->>Client: event: message (tools list) - Client->>MCP: POST /messages/
{"method":"tools/call",
"params": {"name":"list_projects"}} - - MCP->>GNS3: Gns3Connector (HTTP) - GNS3->>DB: Query Projects - DB-->>GNS3: Project Data - GNS3-->>MCP: JSON Response - MCP-->>Client: event: message
{"result": {"content": [...]}} + Client->>MCP: POST /messages/ (tools/call list_projects) + MCP->>GNS3: Gns3Connector HTTP request + GNS3-->>MCP: Projects data + MCP-->>Client: event: message (tool result) ``` ## Internal Implementation