mcpField
P
pitstop

pitstop

ローカル
github.com/praneethravuriゲーム・エンタメ15 日前に更新

pitstop について

Pitstopは、F1のリアルタイムデータ、過去の記録、ニュースを検索するMCPサーバーです。ファンや分析担当者向けに、テレメトリー、レース分析、順位、自前データベースへの読み取り専用SQLなど11種類のツールを提供します。

主な機能

  1. 01リアルタイムの計時・レースデータ
  2. 021950年以降の結果と順位
  3. 03ラップ単位のテレメトリーと分析
  4. 0420のRSSフィードによるF1ニュース
  5. 05読み取り専用SQLとWikidata検索

活用シーン

  1. 01指定したドライバーやラップのテレメトリーを確認
  2. 02シーズンごとの選手権順位を比較
  3. 03レースペースやタイヤの劣化を分析
  4. 04F1の過去記録や最新ニュースを検索

MCP 対応

HTTPまたはstdioで、11種類のF1データツールをMCPクライアントに提供し、ホスト型HTTPエンドポイントも利用できます。ツールはリアルタイム・過去データ、ニュース、データベース検索を扱います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"praneethravuri-pitstop": {
"command": "uvx",
"args": [
"pitstop-f1"
],
"env": {
"PITSTOP_TRANSPORT": "<PITSTOP_TRANSPORT>"
}
}
}
}
起動コマンドuvx pitstop-f1
設定が必要な環境変数
PITSTOP_TRANSPORTTransport mode; must be 'stdio' when run via an MCP client.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypipitstop-f10.5.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Pitstop — F1 MCP Server

Formula 1 データを扱う、HTTP ファーストの Model Context Protocol(MCP)サーバーです。複数の信頼できるソースからリアルタイム、過去のレース、ニュースのデータを集約し、あらゆる MCP クライアントですぐに使える 11 個のツールを提供します。

v0.5.0 | 作成者:Praneeth Ravuri


インストール

ホステッドエンドポイント(インストール不要)

無料の公開インスタンスが Hugging Face Spaces で稼働しています。

https://praneeth1025-pitstop.hf.space/mcp
claude mcp add --transport http pitstop https://praneeth1025-pitstop.hf.space/mcp

注:Space は長時間アクセスがないとスリープします。しばらくアクセスがなかった後の最初のリクエストでは、コールドスタートが発生します。

ローカルインストール

uvx 経由の stdio(クローン不要):

PITSTOP_TRANSPORT=stdio uvx pitstop-f1

Claude Code:

claude mcp add pitstop -e PITSTOP_TRANSPORT=stdio -- uvx pitstop-f1

Codex CLI:

codex mcp add pitstop --env PITSTOP_TRANSPORT=stdio -- uvx pitstop-f1

Gemini CLI:

gemini mcp add pitstop uvx pitstop-f1 --env PITSTOP_TRANSPORT=stdio

VS Code:

code --add-mcp '{"name":"pitstop","command":"uvx","args":["pitstop-f1"],"env":{"PITSTOP_TRANSPORT":"stdio"}}'

Claude Desktop(claude_desktop_config.json)、Cursor(~/.cursor/mcp.json)、Windsurf(~/.codeium/windsurf/mcp_config.json)では、同じ JSON 形式を使用します。

{
  "mcpServers": {
    "pitstop": {
      "command": "uvx",
      "args": ["pitstop-f1"],
      "env": { "PITSTOP_TRANSPORT": "stdio" }
    }
  }
}

Docker(HTTP トランスポート。F1 データベースを含む完全なサーバーを実行します):

docker compose up
# → http://localhost:8000/mcp

概要

Pitstop は、HTTP(デフォルト)または stdio 経由で、F1 データを 11 個の MCP ツールとして提供します。FastF1、Jolpica、OpenF1、Wikidata、RSS フィード、および独自の F1 データベースからデータを取得し、ページネーション、リトライ、キャッシュ、同時実行数の制限を自動的に処理します。


データソース

ソース対象期間種類
FastF12018年~現在過去のレース/タイミング/テレメトリー
Jolpica-F11950年~現在過去のレース(Ergast 互換)
OpenF12023年~現在リアルタイム
Wikidata全時代SPARQL クエリ
RSS フィード(20 ソース)最新情報ニュース
Pitstop F1 データベース1950年~現在独自の sqlite(F1DB から初期データを投入し、Jolpica から毎週自動更新)+ラップごとのタイム

データベースの更新:.github/workflows/db-update.yml が毎週実行され、Jolpica の新しい結果を独自の F1 データベースに取り込みます。


ツール

ツール説明主なパラメーター
get_session_dataレース/予選の結果、ラップタイム、天候、ドライバーの詳細(2018年〜現在)year, gp, session, includes, page, page_size
get_telemetry_dataラップごとのマシンのテレメトリデータ(速度、スロットル、ブレーキ、ギア)(2018年〜現在)year, gp, session, drivers, lap_numbers, max_points, page, page_size
get_live_dataライブのタイム差、ピットストップ、チームラジオ、スティント、レースコントロール、天候、順位、ラップ、オーバーテイク(2023年〜現在)data_types, year, country, session_name, driver_number, compound, flag, category, page, page_size
get_standingsドライバーおよびコンストラクターのチャンピオンシップ順位(1950年〜現在)year, round, type, driver_name, team_name, page, page_size
get_scheduleレースカレンダーとセッションスケジュールyear, include_testing, round, event_name, only_remaining, page, page_size
get_reference_dataサーキット、ドライバー、コンストラクターの百科事典(1950年〜現在)reference_type, year, name, page, page_size
get_f1_news20のRSSソースからのF1ニュース見出しsource, limit, keywords, driver, team, circuit, year, date_from, date_to, page, page_size
get_resultsレース/予選/スプリントの結果、ラップタイム、ピットストップ(1950年〜現在)year, round, result_type, driver, page
get_race_analysisペース、タイヤの劣化、スティントの概要、一貫性(2018年〜現在)year, gp, session, drivers, analysis_type, page
query_wikidataF1の人物紹介、キャリア記録、歴史に関するWikidataへのSPARQLクエリーsparql, page, page_size
query_f1_databasepitstopが所有するF1データベース(1950年〜現在)への読み取り専用SQL:結果、順位、ドライバーの家系図、チームの系譜sql, page, page_size

トランスポート

HTTP(デフォルト)
uv sync
uv run pitstop
# → http://localhost:8000

MCP クライアントの設定:

{
  "mcpServers": {
    "pitstop": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}
stdio(オプトイン)
PITSTOP_TRANSPORT=stdio uv run pitstop

MCP クライアントの設定:

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

ヘルス API

エンドポイント用途
GET /healthソースごとのステータス(FastF1、f1db、Jolpica、OpenF1、RSS)
GET /live稼働状況のプローブ
GET /ready準備状況のプローブ

/health のレスポンス例:

{
  "version": "0.5.0",
  "overall": "ok",
  "sources": [
    { "name": "fastf1",  "status": "ok", "latency_ms": 2,   "detail": "cache writable" },
    { "name": "f1db",    "status": "ok", "latency_ms": 1,   "detail": "" },
    { "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 は "ok"/"degraded"/"down" です。HTTP 200/207/503。


Wikidata SPARQL

query_wikidata は、レース API でカバーされていないF1の人物情報や歴史的事実を取得するため、Wikidata に対してSPARQLクエリーを実行します。

SELECT と ASK のクエリーのみ受け付けます(読み取り専用)。クエリーには必ず LIMIT を含めてください。

例 — 生年月日を含むF1ドライバーを検索する:

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

ページネーション

リストを返すすべてのツールは、page(1から始まり、デフォルトは1)と page_size(ツールによって異なり、デフォルトは10〜50)を受け付けます。レスポンスには pagination ブロックが含まれます:

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

設定

変数デフォルト説明
PITSTOP_TRANSPORThttphttp または stdio
PITSTOP_HOST0.0.0.0バインドアドレス(HTTP のみ)
PITSTOP_PORT8000リッスンポート(HTTP のみ)
PITSTOP_ENVdevelopmentdevelopment または production
PITSTOP_LOG_LEVELPITSTOP_ENV に依存開発環境では DEBUG、それ以外では INFO
PITSTOP_LOG_FORMATPITSTOP_ENV に依存開発環境では text、それ以外では json
PITSTOP_ENABLE_CACHINGtrueHTTP レスポンスと FastF1 のディスクキャッシュを有効にする
PITSTOP_CACHE_TTL_SECONDS300HTTP レスポンスのキャッシュ有効期間(秒)
PITSTOP_RATE_LIMIT_ENABLEDfalse同時呼び出し数の制限を有効にする
PITSTOP_RATE_LIMIT_PER_HOUR3600最大同時呼び出し数(1時間あたりのクォータから算出)
FASTF1_CACHEcacheFastF1 キャッシュディレクトリのパス

キャッシュ

Pitstop は、200 のレスポンスを返す GET リクエストに対して、メモリ内の HTTP レスポンスキャッシュ(Hishel を使用)を利用します。これにより、ツールの呼び出しを上流サービスのレート制限内に抑えます。

  • Jolpica:4 req/s、500/hr
  • OpenF1:3 req/s、30/min
  • Wikidata:クエリの複雑さに関する制限
  • RSS:フィードごとのリダイレクトをキャッシュ

FastF1 は、FASTF1_CACHE ディレクトリに独自のディスクキャッシュを保持します。キャッシュは以下で制御します。

  • PITSTOP_ENABLE_CACHING=true(デフォルト)
  • PITSTOP_CACHE_TTL_SECONDS=300(デフォルト)

開発

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

貢献

CONTRIBUTING.md をご覧ください。


クレジットと帰属表示

ソース説明ライセンス
F1DBF1DB を基にデータベースを作成し、その後 pitstop が変更・拡張CC BY 4.0
FastF1F1 のタイミング、テレメトリ、セッションデータを扱う Python ライブラリMIT
Jolpica-F11950 年から現在までの Ergast 互換 F1 データ API。F1DB を基にしたデータベースの週次自動更新にも使用—
OpenF1リアルタイムの F1 データを提供する無料のオープンソース APIMIT
WikidataSPARQL クエリサービスを備えたオープンなナレッジグラフCC0
Ergast Motor Racing API1950~2024 年の F1 歴史データ(現在は Jolpica 経由で提供)—
RSS フィード(20 ソース)ニュースの見出し。まとめてクレジットを表示します。get_f1_news の結果にある各フィードの link フィールドをご覧ください各発行元のライセンス

Formula 1 または FIA とは提携していません。データは、各利用規約に基づいてサードパーティのソースから提供されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。