
faregrid
io.github.CloudCorpRecords/faregrid
Search one-way and round-trip flight fares across dates and destinations, with price verdicts.
Documentation
faregrid
faregrid is a small local bridge to the hosted FlightPowers MCP server, which reads live flight prices from Google Flights. Give it an origin and a destination, plus either a single date or a whole date range, and it answers with fares, airlines, durations, stop counts, a bookable link for each flight, and the historical price band that shows whether a fare is unusually cheap or expensive for that route.
The bridge keeps no fare data of its own. It serves the
upstream server's tool list locally, exactly as captured
from the live endpoint, and forwards each tool call
upstream, returning the result untouched. The captured
surface is search only: results carry a buy_link to
book on the vendor's own flow, and there is no booking,
purchase, or payment tool in it.
Tools
search_oneway_flights— one-way fares. Required:from_airportandto_airport(IATA codes; the destination may be several codes as"BCN,LIS,ATH"or["BCN","LIS","ATH"]). Optional:departure_date, or a range viadeparture_date_from/departure_date_to,max_stops,airline_codes,exclude_airline_codes, departure and arrival hour windows,currency(default"usd"),max_price,seat_type,passengers,sort_by(default"best"),limit(default 10),max_searches,use_fallback, andverbose. One call can search every date/destination combination in a range.search_roundtrip_flights— round-trip fares, priced as paired legs rather than two separate one-ways. Required:from_airportandto_airport. Optional: the same departure date or range fields as the one-way tool, plusreturn_dateornights(a trip length, or a list like[5, 6, 7]),max_departure_stops,max_return_stops,departure_airline_codes,return_airline_codes,returns_per_outbound, and the sharedcurrency,max_price,seat_type,passengers,sort_by,limit,max_searches,use_fallback, andverbosefields.
Fares go stale within minutes, so a current price always comes from a new search rather than an earlier result.
Configuration
FLIGHTPOWERS_MCP_URL(optional) — override the upstream endpoint. Defaults tohttps://flights.flightpowers.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)FLIGHTPOWERS_API_KEY(optional) — when set, every upstream request carries anx-rapidapi-key: <key>header, for the caller's own RapidAPI key for the Google Flights Live API. When it is not set, no key header is sent and the upstream applies its free sign-in allowance. NoAuthorizationheader is ever sent. (This forwarding is also a labelled reconstruction; the original surface was captured keyless.)
Forwarding mechanics
On the first tool call the client opens a streamable
HTTP session with the upstream: a JSON-RPC initialize
request (protocolVersion 2025-03-26, clientInfo name
faregrid), then a notifications/initialized
notification, then the tools/call request carrying
the caller's arguments unchanged. When the upstream
answers initialize with an Mcp-Session-Id header,
that value rides on every later request of the session,
which is reused for the life of the process. Replies
may arrive as plain JSON or as server-sent events;
both are read.
Successful upstream results pass through verbatim,
including any isError flag the upstream sets.
Failures — a JSON-RPC error, a non-2xx status, an
unreadable response, or a request that cannot be
completed — come back as an isError result whose
text starts with faregrid error: (this rendering
is this rebuild's own labelled reconstruction).
CLI
Each tool is also a subcommand taking one JSON argument string:
npx @reneturcios/faregrid search_oneway_flights '{"from_airport":"TLV","to_airport":"BCN","departure_date":"2026-11-10"}'
npx @reneturcios/faregrid search_roundtrip_flights '{"from_airport":"TLV","to_airport":"BCN,LIS","departure_date_from":"2026-11-01","departure_date_to":"2026-11-07","nights":[3,4]}'
npx @reneturcios/faregrid --version
Exit codes: 0 on success, 1 on an isError
result, 2 on a usage error.
MCP server
npx -y @reneturcios/faregrid mcp
MCP client config:
{
"mcpServers": {
"faregrid": {
"command": "npx",
"args": ["-y", "@reneturcios/faregrid", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/faregrid
docker run --rm ghcr.io/cloudcorprecords/faregrid --version
The container's default command is mcp, so the first
form is a stdio MCP server; any other arguments reach
the CLI normally.
Development
npm install
npm run build
npm test
npm run dev
The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.
License
MIT — see LICENSE.
@reneturcios/faregridnpm install @reneturcios/faregridghcr.io/cloudcorprecords/faregrid:0.1.0docker pull ghcr.io/cloudcorprecords/faregrid:0.1.0:undefinedRelated Servers
io.github.CloudCorpRecords/abandoncheck
Judge whether a dependency is maintained, from factual signals: releases, commits, archival.
io.github.CloudCorpRecords/actionbridge
Zapier exposed actions as MCP tools via a generic action runner.
io.github.CloudCorpRecords/actionpin
GitHub Actions supply-chain hardener: audit workflows for unpinned actions and build a SHA pin plan.