fastf1-mcp-server
fastf1-mcp
FastF1ライブラリを介してAIアシスタントにF1データを提供するMCPサーバーです。Claude(またはMCP互換クライアント)に、レース結果、ラップタイム、テレメトリー、順位などについて質問できます。
機能
21個のツール: 順位、レース結果、ラップタイム、テレメトリー、ピットストップ、予選を網羅
4個のMCPリソース: スケジュール、ドライバー、コンストラクター、サーキットの参照データ
5個のガイド付きプロンプト: レースの振り返り、予選分析、戦略の深掘り、週末のプレビュー
非同期対応のLRUセッションキャッシュ: 初回読み込み後は、繰り返しクエリが即座に実行されます
距離ベースのテレメトリーサンプリング: 大規模な生データを500ポイント以下に圧縮
構造化されたエラー返却: 不正な入力でもサーバーがクラッシュすることはありません
要件
Python 3.12以上
uv(推奨)または pip
インストール
uvを使用する場合(推奨)
git clone https://github.com/yourname/fastf1-mcp
cd fastf1-mcp
uv syncpipを使用する場合
pip install fastf1-mcp-serverサーバーの実行
# via uv (development)
uv run fastf1-mcp-server
# or directly
python -m fastf1_mcpMCP Inspector(開発・デバッグ用)
# Option A — official npx inspector
npx @modelcontextprotocol/inspector uv --directory . run fastf1-mcp-server
# Option B — fastmcp wrapper
uv run fastmcp dev inspector -m fastf1_mcp.server --with-editable .どちらも http://localhost:6274 でインスペクターが開きます。
Claude Desktopの設定
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に以下を追加してください:
{
"mcpServers": {
"fastf1": {
"command": "uv",
"args": ["run", "fastf1-mcp-server"],
"cwd": "/absolute/path/to/fastf1-mcp",
"env": {
"FASTF1_MCP_LOG_LEVEL": "INFO",
"FASTF1_MCP_MAX_CACHED_SESSIONS": "10"
}
}
}
}保存後、Claude Desktopを再起動してください。ツールパネルに fastf1 サーバーが表示されます。
設定
すべての設定は FASTF1_MCP_ プレフィックスが付いた環境変数から読み込まれます。
変数 | デフォルト | 説明 |
|
| FastF1セッションファイルのディスクキャッシュ |
|
| メモリ内に保持する最大セッション数 (LRU) |
|
| デフォルトのテレメトリーサンプルポイント数 |
|
| テレメトリーサンプルポイント数の上限 |
|
| Pythonのログレベル |
ツール
クイックルックアップ(Ergast API — 1950年〜現在)
ツール | 説明 |
| シーズンのF1レースカレンダーを取得 |
| ドライバー選手権の順位を取得 |
| コンストラクター選手権の順位を取得 |
| ドライバー情報を取得 |
| 過去のレース結果を取得(2018年以前、またはセッションデータが利用できない場合) |
| サーキット情報を取得 |
セッションデータ(FastF1 Live Timing — 2018年〜現在)
ツール | 説明 |
| セッションの分類/結果を取得 |
| セッション内のドライバーの全ラップタイムを取得 |
| セッション内の最速ラップを取得(ドライバーごとに1つ) |
| 全ドライバーの平均レースペースを計算 |
| レースのタイヤスティントを分析 |
| レースの全ピットストップを取得 |
| Q1/Q2/Q3に分割された予選結果を取得 |
テレメトリー(FastF1 Live Timing — 2018年〜現在)
ツール | 説明 |
| 特定ラップのテレメトリーデータを取得 |
| 同一セッション内の2人のドライバーのテレメトリーを比較 |
| セッション内の全ドライバーのスピードトラップおよび最高速度データを取得 |
| 各ドライバーのベストセクタータイムと理論上のベストラップを取得 |
ユーティリティ
ツール | 説明 |
| シーズン内の全イベントをリストアップ |
| シーズン内の全ドライバーをリストアップ(特定のイベントでフィルタリング可能) |
| サーバーのメモリ内セッションキャッシュの状態を確認 |
| メモリ内ストレージからキャッシュされたセッションをクリア |
リソース
URI | 説明 |
| シーズンの全レースカレンダー |
| シーズンに出場した全ドライバー |
| シーズンの全コンストラクター |
| 全F1サーキット(全期間) |
プロンプト
プロンプト | 引数 | 内容 |
|
| 結果 + 最速ラップ + ピットストップ + スティントを呼び出し、レースを解説 |
|
| Qの内訳 + セクタータイム + トップラップ分析 |
|
| シーズンレベルの直接対決:順位、レース、予選 |
|
| スティント + ピットタイミング + レースペース — 戦略バトルを解説 |
|
| サーキット詳細 + 最近の歴史 + 選手権の状況 |
クエリ例(Claude Desktop)
Who won the 2024 Monaco Grand Prix and what was the strategy?
→ use race_recap prompt or call get_session_results + get_stint_analysis
Compare Verstappen and Leclerc's telemetry in 2024 Monaco qualifying
→ compare_telemetry(2024, "Monaco", "Q", "VER", "LEC")
Who had the fastest theoretical lap in 2024 Silverstone qualifying?
→ get_sector_times(2024, "Silverstone", "Q")
Show me the 2024 constructor standings after round 10
→ get_constructor_standings(2024, after_round=10)開発
# Install dev dependencies
uv sync --dev
# Run tests
uv run pytest
# Run tests with coverage
uv run pytest --cov=fastf1_mcp
# Lint
uv run ruff check src/データソースとカバレッジ
ソース | カバレッジ | 用途 |
Ergast API (via FastF1) | 1950年〜現在 | 順位、スケジュール、過去の結果、サーキット情報 |
2018年〜現在 | ラップタイム、テレメトリー、予選、ピットストップ、タイヤデータ |
注: FastF1のセッションデータは2018年以降のみ利用可能です。それ以前のシーズンについては
get_race_results_historicalを使用してください。
ライセンス
MIT
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/Surya96t/fastf1-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server