# etraveli/etg-flight-mcp architecture

> Architecture diagram of the GitHub repository etraveli/etg-flight-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/etraveli/etg-flight-mcp
- Repository: https://github.com/etraveli/etg-flight-mcp

## Overview

This is an HTTP Model Context Protocol server for searching and booking flights through the Etraveli Group B2B API. The documented user-to-result workflow proceeds from flight search through flight selection, optional seats and baggage, traveler details, and a secure payment link. The README also describes OAuth login and server-side session state. No implementation files or source excerpts were provided, so paths are null and relationships reflect documented behavior only.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mcp["MCP access"]
  node_server["Flight Network MCP server"]
  node_oauth["OAuth login"]
  node_sessions[("Booking session state")]
end

subgraph group_booking["Booking workflow"]
  node_search["Search flights"]
  node_flight["Select flight"]
  node_seats["Pick seats"]
  node_baggage["Select baggage"]
  node_details["Traveler details"]
  node_payment["Get payment URL"]
end

subgraph group_services["External services"]
  node_etg["Etraveli B2B API"]
  node_browser(("Browser"))
  node_payment_page["Secure payment page"]
end

node_assistant(("AI assistant"))
node_user(("Traveler"))

node_assistant -->|"calls tools"| node_server
node_user -->|"provides booking choices"| node_assistant
node_assistant -->|"authenticates via"| node_oauth
node_oauth -->|"opens login"| node_browser
node_assistant -->|"searches"| node_search
node_assistant -->|"selects"| node_flight
node_assistant -->|"optionally selects"| node_seats
node_assistant -->|"optionally selects"| node_baggage
node_assistant -->|"submits"| node_details
node_assistant -->|"requests link"| node_payment
node_server -->|"holds state"| node_sessions
node_server -->|"books through"| node_etg
node_assistant -->|"opens payment link"| node_browser
node_browser -->|"completes payment"| node_payment_page
node_search -->|"then selects"| node_flight
node_flight -->|"then optionally picks"| node_seats
node_seats -->|"then optionally selects"| node_baggage
node_baggage -->|"then provides"| node_details
node_details -->|"then requests"| node_payment

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_oauth,node_sessions toneBlue
class node_search,node_flight,node_seats,node_baggage,node_details,node_payment toneAmber
class node_etg,node_browser,node_payment_page toneMint
class node_assistant,node_user toneIndigo
```

## Components

### MCP access

- **Flight Network MCP server**
- **OAuth login**
- **Booking session state**

### Booking workflow

- **Search flights**
- **Select flight**
- **Pick seats**
- **Select baggage**
- **Traveler details**
- **Get payment URL**

### External services

- **Etraveli B2B API**
- **Browser**
- **Secure payment page**

### Other components

- **AI assistant**
- **Traveler**

## Connections

- AI assistant → Flight Network MCP server: calls tools (evidence: `README.md`)
- Traveler → AI assistant: provides booking choices (evidence: `README.md`)
- AI assistant → OAuth login: authenticates via (evidence: `README.md`)
- OAuth login → Browser: opens login (evidence: `README.md`)
- AI assistant → Search flights: searches (evidence: `README.md`)
- AI assistant → Select flight: selects (evidence: `README.md`)
- AI assistant → Pick seats: optionally selects (evidence: `README.md`)
- AI assistant → Select baggage: optionally selects (evidence: `README.md`)
- AI assistant → Traveler details: submits (evidence: `README.md`)
- AI assistant → Get payment URL: requests link (evidence: `README.md`)
- Flight Network MCP server → Booking session state: holds state (evidence: `README.md`)
- Flight Network MCP server → Etraveli B2B API: books through (evidence: `README.md`)
- AI assistant → Browser: opens payment link (evidence: `README.md`)
- Browser → Secure payment page: completes payment (evidence: `README.md`)
- Search flights → Select flight: then selects (evidence: `README.md`)
- Select flight → Pick seats: then optionally picks (evidence: `README.md`)
- Pick seats → Select baggage: then optionally selects (evidence: `README.md`)
- Select baggage → Traveler details: then provides (evidence: `README.md`)
- Traveler details → Get payment URL: then requests (evidence: `README.md`)
