Koskamo

KeyFlight PNR Converter MCP

An official MCP server provided by KeyFlight that allows AI assistants to decode Global Distribution System (GDS) PNRs from Amadeus, Sabre, Galileo, and Worldspan into JSON itineraries and generate PRO ticket PDFs. It integrates directly with the KeyFlight subscription for travel agents.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

KeyFlight PNR Converter MCP logo, by KeyFlightVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by KeyFlight
You need:Keys are for active subscribers of the KeyFlight subscriptionGet the subscriptionCreate a key
MCP endpoint (Streamable HTTP)
https://keyflight.io/mcp
Vendor documentation

What you can do with it

  • Decode raw GDS booking text into structured JSON itineraries
  • Generate PRO ticket PDFs from decoded PNR data
  • Integrate PNR parsing into AI chat workflows for travel agents

Source and maintenance

Vendor evidenceRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
keyflight 1.0.0
MCP protocol
2025-06-18
Tools
2 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

KeyFlight tools for travel agents. decode_pnr turns a raw PNR (Amadeus, Sabre, Galileo, Worldspan) into an itinerary and JSON. make_ticket turns a PNR into a PRO e-ticket PDF and returns its link. The ticket is a document for the traveller: it is not an airline ticket and its PNR is not checked against airline systems.

Tools

2 advertised

decode_pnr — Decode a PNR
Advertised by the server during the last successful anonymous check.
Advertised read-only

Decode a raw PNR into a readable itinerary (text) and structured JSON: passengers, flights, airports, terminals, times, flight duration, airline locators. Each decode with flights counts towards the monthly limit of the KeyFlight subscription, as in the PNR API.

decode_pnr input schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "description": "The PNR as shown by the GDS (Amadeus, Sabre, Galileo/Apollo, Worldspan), up to 20000 characters."
    },
    "view": {
      "enum": [
        "table",
        "lines2",
        "lines3",
        "whatsapp"
      ],
      "type": "string",
      "description": "Layout of the itinerary text. Default: table."
    },
    "date_format": {
      "enum": [
        "short",
        "numeric"
      ],
      "type": "string",
      "description": "\"short\" (18 Jun 2026) or \"numeric\" (18.06.2026)."
    },
    "time_format": {
      "enum": [
        "24",
        "12"
      ],
      "type": "string",
      "description": "24 or 12 hour time. Default: 24."
    }
  },
  "additionalProperties": false
}
decode_pnr annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
make_ticket — Make a PRO ticket PDF
Advertised by the server during the last successful anonymous check.

Make a PRO e-ticket PDF (Expedia style: PNR, airline logos, class, optional price) from a raw PNR and return a link to the PDF. Passenger names and the PNR code come from the text unless given here. Included in the KeyFlight subscription.

make_ticket input schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "pnr": {
      "type": "string",
      "description": "Booking code printed on the ticket, 5–8 letters and digits. Default: the one in the text, or a random one."
    },
    "logo": {
      "enum": [
        "none",
        "expedition"
      ],
      "type": "string",
      "description": "Logo in the ticket header. Default: none."
    },
    "text": {
      "type": "string",
      "description": "The PNR as shown by the GDS (Amadeus, Sabre, Galileo/Apollo, Worldspan), up to 20000 characters."
    },
    "price": {
      "type": "string",
      "description": "Total price printed on the ticket, e.g. \"1200.50\". Default: no price on the ticket."
    },
    "currency": {
      "type": "string",
      "maxLength": 10,
      "description": "Currency next to the price, e.g. \"USD\", \"€\". Default: \"$\"."
    },
    "passengers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "Passenger names as on the ticket, e.g. \"SMITH/JOHN MR\". Default: the names in the PNR."
    },
    "date_format": {
      "enum": [
        "short",
        "numeric"
      ],
      "type": "string",
      "description": "\"short\" or \"numeric\"."
    },
    "time_format": {
      "enum": [
        "24",
        "12"
      ],
      "type": "string",
      "description": "24 or 12 hour time. Default: 24."
    },
    "booking_class": {
      "enum": [
        "Economy",
        "Premium Economy",
        "Business",
        "First Class"
      ],
      "type": "string",
      "description": "Default: the cabin of the first flight's booking class."
    }
  },
  "additionalProperties": false
}
make_ticket annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
591 ms
95th percentile latency
591 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 591 ms · metadata changed · 2 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http keyflight-pnr-converter-mcp https://keyflight.io/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add keyflight-pnr-converter-mcp --url https://keyflight.io/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable keyflight-pnr-converter-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "keyflight-pnr-converter-mcp": {
      "url": "https://keyflight.io/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "keyflight-pnr-converter-mcp": {
      "type": "streamableHttp",
      "url": "https://keyflight.io/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start keyflight-pnr-converter-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "keyflight-pnr-converter-mcp": {
      "type": "http",
      "url": "https://keyflight.io/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http keyflight-pnr-converter-mcp https://keyflight.io/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "keyflight-pnr-converter-mcp": {
      "url": "https://keyflight.io/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "keyflight-pnr-converter-mcp": {
      "serverUrl": "https://keyflight.io/mcp"
    }
  }
}

Let your agent find its tools

Find servers like KeyFlight PNR Converter MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run KeyFlight PNR Converter MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing