Skip to main content
Glama

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

A3.6/5.0

Scored across 35 tools

Disambiguation2/5

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.

Naming Consistency3/5

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.

Tool Count2/5

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.

Completeness2/5

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. 1 tool update
    • Changedbet_research2 fields changed
      • changedInput schema / examples
        Previous 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"
        +  }
        +]
      • changedInput schema / properties / market / description
        Previous 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. 2 tool updates
    • Changedbet_research2 fields changed
      • changedInput schema / examples
        Previous 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"
        +  }
        +]
      • changedInput schema / properties / market / description
        Previous 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."
    • Changedpolymarket_kalshi_spread2 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "topic": "fed"
        -  },
        -  {
        -    "topic": "btc"
        -  }
        -]New value: +[
        +  {
        +    "topic": "fed"
        +  },
        +  {
        +    "topic": "btc"
        +  },
        +  {
        +    "topic": "bitcoin"
        +  },
        +  {
        +    "topic": "fed rate decision"
        +  }
        +]
      • changedInput schema / properties / topic / description
        Previous 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."
  3. 2 tool updates
    • Changedget_current_standings1 field changed
      • changedOutput schema / properties / standings / items / properties
        Previous 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"
        +  }
        +}
    • Changedget_race_results1 field changed
      • changedOutput schema / properties / results / items / properties
        Previous 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"
        +    ]
        +  }
        +}
  4. 1 tool update
    • Changedentity_profile3 fields changed
      • changedInput schema / properties / type / description
        Previous 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."
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "company"
        -]New value: +[
        +  "company",
        +  "ticker"
        +]
      • changedInput schema / properties / value / description
        Previous 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."
  5. 1 tool update
    • Changedresolve_entity1 field changed
      • changedInput schema / properties / value / description
        Previous 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

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP 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.
    21
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    This 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.
    8
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    15
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.