A Model Context Protocol (MCP) example

Sequence Diagram

Authorization flow proceeds as follows:

sequenceDiagram
    participant C as Claude (Browser)
    participant M as MCP for Tickets Server
    participant A as Identity Provider (Google)
    participant S as Tickets Server

    C->>M: GET /.well-known/oauth-authorization-server

    alt Dynamic Client Registration
        C->>M: POST /register
        M->>C: Client Credentials
    end

    Note over C: Generate PKCE Parameters
    C->>C: Open browser with authorization URL + code_challenge
    C->>M: Authorization Request
    Note over M: User /authorizes
    M->>A: Authorization Request
    Note over A: User /authorizes
    A->>M: Redirect to callback with authorization code
    M->>C: Redirect to callback with authorization code
    C->>C: Authorization code callback
    C->>M: Token Request + code_verifier
    M->>A: Token Request
    Note over A: User /token
    A->>M: Access Token
    M->>C: Access Token
    C->>M: API Requests with Access Token
    M->>S: API Requests with Access Token
    Note over S: verify_token()
    S->>M: API Response
    M->>C: API Response