Server Details
F1 MCP — Formula 1 data via the Ergast API
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 33.6% over 37 days
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- pipeworx-io/mcp-f1
- GitHub Stars
- 0
- Server Listing
- mcp-f1
TDQS
Scored across 35 tools
Several clusters overlap heavily: ask_pipeworx, ask_pipeworx_beta, ask_pipeworx_grounded, and deep_research all route questions to data, with beta explicitly identical to the stable router. Entity/finance tools (entity_profile, compare_entities, recent_changes, validate_claim) and Polymarket tools (polymarket_edges, polymarket_arbitrage, bet_research, polymarket_kalshi_spread) also have fuzzy boundaries that invite misselection.
Most names are snake_case, but the convention is mixed: verb_noun (get_race_results, resolve_entity), noun_noun (entity_profile, bet_research), vendor_noun (polymarket_edges), and adjective_noun (recent_alerts). It remains readable, but there is no single predictable pattern across the set.
35 tools is heavy and feels like multiple servers merged: only four F1-specific tools (get_current_standings, get_driver, get_race_results, get_schedule), while the rest are Pipeworx gateway, meta, memory, subscription, prediction-market, AI-visibility, and package-audit tools. For a server named F1, the count is far beyond the apparent scope.
If the domain is F1, coverage is severely incomplete: no constructor standings, qualifying results, circuits, season history, driver career stats, or live timing. If the domain is the broader Pipeworx gateway, direct tools are scattered and many tasks depend on the ask_pipeworx router rather than dedicated operations.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
bet_research2 fields changed- changed
Input schema / examplesPrevious value: -[ - { - "market": "when-will-bitcoin-hit-150k" - }, - { - "market": "https://polymarket.com/event/when-will-bitcoin-hit-150k" - } -]New value: +[ + { + "market": "will-kristi-noem-win-the-2028-republican-presidential-nomination" + }, + { + "market": "https://polymarket.com/event/will-kristi-noem-win-the-2028-republican-presidential-nomination" + } +] - changed
Input schema / properties / market / descriptionPrevious value: -"Polymarket slug (\"when-will-bitcoin-hit-150k\"), full URL (\"https://polymarket.com/event/...\"), or question text (\"Will Bitcoin hit $150k?\"). Dated slugs stop resolving once they settle — Polymarket de-indexes resolved markets — so prefer an undated one."New value: +"Polymarket slug (\"will-kristi-noem-win-the-2028-republican-presidential-nomination\"), full URL (\"https://polymarket.com/event/...\"), or question text (\"Will Bitcoin hit $150k?\"). Dated slugs stop resolving once they settle — Polymarket de-indexes resolved markets — so prefer an undated one."
2 tool updates
- Changed
bet_research2 fields changed- changed
Input schema / examplesPrevious value: -[ - { - "market": "will-bitcoin-reach-100k-in-july-2026" - }, - { - "market": "https://polymarket.com/event/will-bitcoin-hit-150k-by-june-30-2026" - } -]New value: +[ + { + "market": "when-will-bitcoin-hit-150k" + }, + { + "market": "https://polymarket.com/event/when-will-bitcoin-hit-150k" + } +] - changed
Input schema / properties / market / descriptionPrevious value: -"Polymarket slug (\"will-bitcoin-hit-150k-by-june-30-2026\"), full URL (\"https://polymarket.com/event/...\"), or question text (\"Will Bitcoin hit $150k by June 30?\")"New value: +"Polymarket slug (\"when-will-bitcoin-hit-150k\"), full URL (\"https://polymarket.com/event/...\"), or question text (\"Will Bitcoin hit $150k?\"). Dated slugs stop resolving once they settle — Polymarket de-indexes resolved markets — so prefer an undated one."
- Changed
polymarket_kalshi_spread2 fields changed- changed
Input schema / examplesPrevious value: -[ - { - "topic": "fed" - }, - { - "topic": "btc" - } -]New value: +[ + { + "topic": "fed" + }, + { + "topic": "btc" + }, + { + "topic": "bitcoin" + }, + { + "topic": "fed rate decision" + } +] - changed
Input schema / properties / topic / descriptionPrevious value: -"Pre-mapped: fed | btc | cpi | gdp | sp500 | recession | next_pope | next_uk_pm | next_israel_pm | 2028_president"New value: +"Subject to compare. Canonical keys: fed | btc | eth | cpi | gdp | sp500 | recession | next_pope | next_uk_pm | next_israel_pm | 2028_president — but aliases and keywords resolve too (\"bitcoin\", \"fed rate decision\", \"ethereum\", \"inflation\", \"s&p 500\", \"us recession\", \"next pope\", \"2028 election\"). Check resolution.topic_matched_by in the response: \"exact\"/\"alias\" is a curated pairing, \"phrase\"/\"token\" is a keyword guess."
2 tool updates
- Changed
get_current_standings1 field changed- changed
Output schema / properties / standings / items / propertiesPrevious value: -"[Object: undefined]"New value: +{ + "code": { + "description": "Three-letter driver code", + "type": [ + "string", + "null" + ] + }, + "constructor": { + "description": "Current constructor name", + "type": [ + "string", + "null" + ] + }, + "driver_id": { + "description": "Ergast driver ID", + "type": "string" + }, + "name": { + "description": "Full driver name", + "type": "string" + }, + "nationality": { + "description": "Driver nationality", + "type": [ + "string", + "null" + ] + }, + "number": { + "description": "Driver car number", + "type": [ + "string", + "null" + ] + }, + "points": { + "description": "Championship points", + "type": "number" + }, + "position": { + "description": "Championship position", + "type": "integer" + }, + "wins": { + "description": "Number of race wins", + "type": "integer" + } +}
- Changed
get_race_results1 field changed- changed
Output schema / properties / results / items / propertiesPrevious value: -"[Object: undefined]"New value: +{ + "code": { + "description": "Three-letter driver code", + "type": [ + "string", + "null" + ] + }, + "constructor": { + "description": "Constructor name", + "type": "string" + }, + "driver_id": { + "description": "Ergast driver ID", + "type": "string" + }, + "fastest_lap_time": { + "description": "Fastest lap time", + "type": [ + "string", + "null" + ] + }, + "grid": { + "description": "Starting grid position", + "type": "integer" + }, + "laps": { + "description": "Laps completed", + "type": "integer" + }, + "name": { + "description": "Full driver name", + "type": "string" + }, + "number": { + "description": "Driver car number", + "type": "string" + }, + "points": { + "description": "Points scored in race", + "type": "number" + }, + "position": { + "description": "Finishing position", + "type": "integer" + }, + "status": { + "description": "Race status (e.g., Finished, Retired)", + "type": "string" + }, + "time": { + "description": "Race time (for finished)", + "type": [ + "string", + "null" + ] + } +}
1 tool update
- Changed
entity_profile3 fields changed- changed
Input schema / properties / type / descriptionPrevious value: -"Entity type. Only \"company\" supported today; person/place coming soon."New value: +"\"company\" or \"ticker\" — both are accepted and behave identically; `value` can be a ticker, CIK, or company name either way. person/place coming soon." - changed
Input schema / properties / type / enumPrevious value: -[ - "company" -]New value: +[ + "company", + "ticker" +] - changed
Input schema / properties / value / descriptionPrevious value: -"Ticker (e.g., \"AAPL\") or zero-padded CIK (e.g., \"0000320193\"). Names not supported — use resolve_entity first if you only have a name."New value: +"Ticker (e.g., \"AAPL\"), zero-padded CIK (e.g., \"0000320193\"), or company name (e.g., \"Moderna\") — names resolve via SEC EDGAR company-name match."
1 tool update
- Changed
resolve_entity1 field changed- changed
Input schema / properties / value / descriptionPrevious value: -"For company: ticker (AAPL), CIK (0000320193), or name. For drug: brand or generic name (e.g., \"ozempic\", \"metformin\")."New value: +"For company: ticker (AAPL), CIK (0000320193), or name. For drug: brand or generic name (e.g., \"ozempic\", \"metformin\"). Pass the ENTITY NAME ONLY — for a bond that is the ISSUER exactly as printed (\"NEW YORK ST DORM AUTH\"), never the question's full noun phrase (\"NEW YORK ST DORM AUTH revenue bonds\"): the FIGI lookup matches instrument names, so trailing security-class words match nothing."
Related MCP Connectors
NBA MCP — player, team, and game data via the BallDontLie API
SpaceX MCP — wraps SpaceX API v4 (free, no auth)
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Formula 1 data via the FastF1 library. Ask Claude (or any MCP-compatible client) about race results, lap times, telemetry, standings, pit stops, and qualifying — with historical data back to 1950 via the Ergast API.21MIT
- AlicenseNot gradedqualityCmaintenanceFormula 1 data from the OpenF1 API: sessions, standings, laps, telemetry, and race replay.MIT
- AlicenseAqualityCmaintenanceThis project implements a Model Context Protocol (MCP) server providing Formula One racing data using the Python FastF1 library. Inspired by an existing TypeScript server, it offers similar F1 data functionalities natively in Python via FastF1.82MIT
- AlicenseNot gradedqualityDmaintenanceProvides real-time and historical Formula 1 racing data through the Model Context Protocol, offering access to timing data, driver stats, race results, telemetry, and more.15MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.