ita-matrix-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ita-matrix-mcpFind a business-class trip JFK to HND to SIN and back, late October."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ITA Matrix MCP
An MCP server that searches ITA Matrix — Google's fare engine, the one behind a lot of airline and OTA search — so Claude can plan genuinely complex itineraries.
The point of using Matrix over an ordinary flight search is two things it has that consumer sites don't: arbitrary multi-city trips and ITA's routing language, which lets you constrain each leg by carrier, connection point, alliance, or flight count.
Results are real, priced, availability-checked fares. They are not bookable here — take the flight numbers to the airline or an OTA to ticket them.
Tools
Tool | What it does |
| The workhorse. 1–6 legs: one-way, round-trip, multi-city, open-jaw. Per-leg routing codes. |
| Expands one result into per-segment booking class (RBD), fare basis, and aircraft type. |
| Scans a date range for the cheapest departure date. |
| Resolves place names to IATA codes, including metro codes. |
| The routing-code cheat sheet, so Claude can compose non-trivial codes. |
Multi-city
A trip is a list of legs, so every trip shape uses one tool:
{
"slices": [
{ "origin": "JFK", "destination": "HND", "date": "2026-10-15" },
{ "origin": "HND", "destination": "SIN", "date": "2026-10-22" },
{ "origin": "SIN", "destination": "JFK", "date": "2026-10-30",
"routing": "AA+ LHR AA+" } // last leg: American, via Heathrow
],
"cabin": "BUSINESS"
}Legs need not connect — JFK→LHR then CDG→JFK is a valid open jaw.
Routing codes
Per-leg, and the reason this beats normal search. AA+ = only American,
~ORD = never via Chicago, AA+ DFW AA+ = American connecting at Dallas,
F F = exactly two flights. Extension codes go in extraCodes:
maxconnect 240, alliance star-alliance, -overnight, f bc=J|C.
Call routing_language_reference for the full syntax.
Note:
maxStopsis relative to the route minimum, matching Matrix's own semantics —0means "no more hops than strictly necessary", which on a long-haul may still involve a connection.
Related MCP server: cheapflights-mcp
Running it
Two entrypoints share one server definition:
npm install
node src/server.js # stdio — local Claude Code / Claude Desktop
node src/http-server.js # HTTP — remote, for Claude Desktop connectorsLocal (stdio)
claude mcp add ita-matrix -- node D:/path/to/ITA-Matrix-MCP/src/server.jsRemote (Streamable HTTP)
Claude Desktop connects to remote servers from Anthropic's cloud, not from
your machine, so the server needs a public HTTPS URL with a valid
certificate. localhost and VPN-only hosts will not work. Remote servers are
added under Settings → Connectors → Add custom connector; they cannot be
configured through claude_desktop_config.json.
Deployed behind Coolify, the container speaks plain HTTP and Coolify's proxy terminates TLS.
Env var | Default | Purpose |
|
| Listen port. |
| (unset) | Mounts MCP at |
| (unset) | Comma-separated Host allowlist, guarding against DNS rebinding. |
| auto | Pin the upstream key instead of discovering it. |
|
| Upstream timeout. Multi-city searches are slow. |
GET /health returns status and active session count, for Coolify's health check.
Each HTTP session gets its own server instance and its own search cache, so Search IDs never leak between clients. Idle sessions are swept after 30 minutes.
How it works
Matrix is a Google "Alkali" app fronting the old QPX fare engine. Every call is
a single POST to content-alkalimatrix-pa.googleapis.com/batch, with the real
JSON-RPC request wrapped in a multipart/mixed envelope. Auth is the public API
key that the web app ships to every visitor — no cookies, no OAuth, no bot
token.
POST /v1/search— run a fare searchPOST /v1/summarize— expand one solution (RBDs, aircraft), reusing the search'ssession+solutionSet, so detail lookups skip the engine re-runGET /v1/locationTypes/...— airport autocomplete
Key discovery. The key is not in the page HTML; it's in a gstatic Alkali
bundle, which contains about seven AIza… strings of which only two are
authorized for this API. So candidates are validated against a cheap endpoint
before use, then cached for 30 days, rather than taking the first regex match.
If Google rotates keys, the server re-discovers automatically.
Quirks handled. The engine refuses server-side price sorting on multi-slice
trips, so sorting is always done client-side. Premium economy is PREMIUM-COACH
on the wire while every other cabin uses the plain enum form. Matrix
intermittently returns "service is currently unavailable"; that is retried with
backoff.
Testing
node test/smoke.mjs # offline: stdio, schemas, errors
node test/http-smoke.mjs # offline: HTTP session lifecycle
ITA_MATRIX_LIVE=1 node test/smoke.mjs # live: real searches (slow)
ITA_MATRIX_LIVE=1 node test/http-smoke.mjsLive tests hit the real service and take 20–60s per search.
Caveats
Not affiliated with Google, ITA Software, or ITA Matrix.
Matrix's rate limits are undocumented. A publicly exposed instance draws that traffic to your server's IP.
If Google starts requiring the
bgProgramResponse(WAA) anti-bot token, this approach needs token handling added.Prior art:
itamx, a Python CLI/MCP for the same API, which is where the protocol details were confirmed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-quality-maintenanceThis MCP server allows an AI assistants to search for flight information online using Google Flights. It can find flights for specific dates or search through a range of dates to find all options or just the cheapest ones available.Last updated27
- AlicenseAqualityCmaintenanceAn MCP server that finds cheap flights with flexible dates and smart suggestions using the Google Flights API.Last updated3MIT
- Alicense-qualityDmaintenanceMCP server that enables Google Flights search via SerpApi, supporting one-way, round-trip, and multi-city itineraries with defaults for Business class, Star Alliance, and EUR pricing. It provides flight search, booking options, and usage tracking.Last updated187MIT
- Flicense-qualityDmaintenanceAn MCP server for holiday flight planning powered by Google Flights via SerpAPI, enabling real-time flight search, destination discovery, airport comparison, and multi-country trip planning.Last updated
Related MCP Connectors
Geo-based flight search MCP server. Find more flights between any two places on earth
Flight Intelligence MCP — search, cheapest dates, multi-city, airline compare via Google Flights
Official airline award MCP. Search 12.3M+ award flights across 48 loyalty programs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Filip-Kin/ita-matrix-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server