Skip to main content
Glama

Pitstop — F1 MCP Server

An HTTP-first Model Context Protocol (MCP) server for Formula 1 data. Aggregates real-time, historical, and news data from multiple authoritative sources into 10 tools ready for any MCP client.

v0.4.0 | Author: Praneeth Ravuri


Overview

Pitstop exposes F1 data as 10 MCP tools over HTTP (default) or stdio. It pulls from FastF1, Jolpica, OpenF1, Wikidata, and RSS feeds, handles pagination, retries, caching, and concurrency limits transparently.


Related MCP server: OpenF1 MCP Server

Data Sources

Source

Coverage

Type

FastF1

2018–present

Historical / timing / telemetry

Jolpica-F1

1950–present

Historical (Ergast-compatible)

OpenF1

2023–present

Real-time

Wikidata

All eras

SPARQL queries

RSS Feeds (20 sources)

Live

News


Tools

Tool

Description

Key Parameters

get_session_data

Race/qualifying results, lap times, weather, driver details (2018–present)

year, gp, session, includes, page, page_size

get_telemetry_data

Lap-by-lap car telemetry (speed, throttle, brake, gears) (2018–present)

year, gp, session, drivers, lap_numbers, max_points, page, page_size

get_live_data

Live intervals, pit stops, team radio, stints, race control, weather, position, laps, overtakes (2023–present)

data_types, year, country, session_name, driver_number, compound, flag, category, page, page_size

get_standings

Driver and constructor championship standings (1950–present)

year, round, type, driver_name, team_name, page, page_size

get_schedule

Race calendar and session schedule

year, include_testing, round, event_name, only_remaining, page, page_size

get_reference_data

Circuits, drivers, constructors encyclopedia (1950–present)

reference_type, year, name, page, page_size

get_f1_news

F1 headlines from 20 RSS sources

source, limit, keywords, driver, team, circuit, year, date_from, date_to, page, page_size

get_results

Race/qualifying/sprint results, lap times, pit stops (1950–present)

year, round, result_type, driver, page

get_race_analysis

Pace, tire degradation, stint summaries, consistency (2018–present)

year, gp, session, drivers, analysis_type, page

query_wikidata

SPARQL queries to Wikidata for F1 biography, career records, history

sparql, page, page_size


Transport

HTTP (default)

uv sync
uv run pitstop
# → http://localhost:8000

MCP client config:

{
  "mcpServers": {
    "pitstop": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

stdio (opt-in)

PITSTOP_TRANSPORT=stdio uv run pitstop

MCP client config:

{
  "mcpServers": {
    "pitstop": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/pitstop", "pitstop"],
      "env": { "PITSTOP_TRANSPORT": "stdio" }
    }
  }
}

Health API

Endpoint

Purpose

GET /health

Per-source status (FastF1, Jolpica, OpenF1, RSS)

GET /live

Liveness probe

GET /ready

Readiness probe

Example /health response:

{
  "version": "0.4.0",
  "overall": "ok",
  "sources": [
    { "name": "fastf1",  "status": "ok", "latency_ms": 2,   "detail": "cache writable" },
    { "name": "jolpica", "status": "ok", "latency_ms": 134, "detail": "" },
    { "name": "openf1",  "status": "ok", "latency_ms": 98,  "detail": "" },
    { "name": "rss",     "status": "ok", "latency_ms": 210, "detail": "" }
  ]
}

overall is "ok" / "degraded" / "down". HTTP 200 / 207 / 503.


Wikidata SPARQL

query_wikidata runs SPARQL queries against Wikidata for biographical and historical F1 facts not covered by race APIs.

Only SELECT and ASK queries are accepted (read-only). Always include LIMIT in your query.

Example — find F1 drivers with their birthdate:

SELECT ?driver ?driverLabel ?birthDate WHERE {
  ?driver wdt:P31 wd:Q5 ;
          wdt:P641 wd:Q1968 ;
          wdt:P569 ?birthDate .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
} ORDER BY DESC(?birthDate) LIMIT 10

Pagination

All list-returning tools accept page (1-based, default 1) and page_size (defaults vary per tool: 10–50). Responses include a pagination block:

{
  "data": [...],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total_items": 47,
    "total_pages": 3,
    "has_next": true,
    "has_prev": false
  }
}

Configuration

Variable

Default

Description

PITSTOP_TRANSPORT

http

http or stdio

PITSTOP_HOST

0.0.0.0

Bind address (HTTP only)

PITSTOP_PORT

8000

Listen port (HTTP only)

PITSTOP_ENV

development

development or production

PITSTOP_LOG_LEVEL

Depends on PITSTOP_ENV

DEBUG if development, else INFO

PITSTOP_LOG_FORMAT

Depends on PITSTOP_ENV

text if development, else json

PITSTOP_ENABLE_CACHING

true

Enable HTTP response and FastF1 disk caching

PITSTOP_CACHE_TTL_SECONDS

300

HTTP response cache time-to-live (seconds)

PITSTOP_RATE_LIMIT_ENABLED

false

Enable concurrent-call limiting

PITSTOP_RATE_LIMIT_PER_HOUR

3600

Max concurrent calls (derived from per-hour quota)

FASTF1_CACHE

cache

FastF1 cache directory path


Caching

Pitstop uses in-memory HTTP response caching (via Hishel) for GET requests with 200 responses. This keeps tool calls inside upstream rate limits:

  • Jolpica: 4 req/s, 500/hr

  • OpenF1: 3 req/s, 30/min

  • Wikidata: Query complexity limits

  • RSS: Per-feed redirects cached

FastF1 maintains its own disk cache in FASTF1_CACHE directory. Control caching via:

  • PITSTOP_ENABLE_CACHING=true (default)

  • PITSTOP_CACHE_TTL_SECONDS=300 (default)


Docker

docker compose up

Server starts on port 8000 with health check at /health.


Development

uv sync --dev
uv run pytest
uv run ruff check src/

Contributing

See CONTRIBUTING.md.


Credits / Acknowledgements

Source

Description

License

FastF1

Python library for F1 timing, telemetry, and session data

MIT

Jolpica-F1

Ergast-compatible F1 data API, 1950–present

OpenF1

Free open-source API for real-time F1 data

MIT

Wikidata

Open knowledge graph with SPARQL query service

CC0

Ergast Motor Racing API

Historical F1 data 1950–2024 (now served via Jolpica)

Not affiliated with Formula 1 or the FIA. Data provided by third-party sources under their respective terms.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/praneethravuri/pitstop'

If you have feedback or need assistance with the MCP directory API, please join our Discord server