Skip to main content
Glama
rakeshgangwar

Formula One MCP Server

フォーミュラワン MCP サーバー

このモデルコンテキストプロトコル(MCP)サーバーは、FastF1 Pythonライブラリを使用して、F1のデータと統計情報へのアクセスを提供します。レースカレンダー、イベント情報、セッション結果、ドライバーデータ、ラップタイム、テレメトリ、チャンピオンシップ順位表など、わかりやすいMCPインターフェースからアクセスできます。

特徴

  • 特定のシーズンのF1レースカレンダーを入手

  • グランプリイベントの詳細情報を取得する

  • セッション結果を取得する(レース、予選、練習)

  • ドライバー情報と統計にアクセスする

  • ラップタイムとテレメトリデータでドライバーのパフォーマンスを分析

  • 複数のドライバーのパフォーマンスを比較する

  • ドライバーとコンストラクターのチャンピオンシップ順位を取得する

Related MCP server: Formula One MCP Server

前提条件

  • Node.js 18以降

  • Python 3.8以降

  • FastF1ライブラリ

インストール

1. Pythonの依存関係をインストールする

pip install fastf1 pandas numpy

2. Node.jsの依存関係をインストールする

cd f1-mcp-server
npm install

3. TypeScriptコードをビルドする

npm run build

4. MCP設定に追加

Cline MCP 設定ファイル ( ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json ) に以下を追加します。

{
  "mcpServers": {
    "formula1": {
      "command": "node",
      "args": ["/Users/rakeshgangwar/Documents/Cline/MCP/f1-mcp-server/build/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

利用可能なツール

1. get_event_schedule

特定のシーズンのF1レースカレンダーを取得します。

パラメータ:

  • year (数字):シーズン年(例:2023)

2. get_event_info

特定のF1グランプリに関する詳細情報を取得します。

パラメータ:

  • year (数字):シーズン年(例:2023)

  • identifier (文字列):イベント名またはラウンド番号(例:「モナコ」または「7」)

3. get_session_results

特定のF1セッションの結果を取得します。

パラメータ:

  • year (数字):シーズン年(例:2023)

  • event_identifier (文字列): イベント名またはラウンド番号 (例: "Monaco" または "7")

  • session_name (文字列): セッション名 (例: "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")

4. get_driver_info

特定のF1ドライバーに関する情報を取得します。

パラメータ:

  • year (数字):シーズン年(例:2023)

  • event_identifier (文字列): イベント名またはラウンド番号 (例: "Monaco" または "7")

  • session_name (文字列): セッション名 (例: "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")

  • driver_identifier (文字列): ドライバー識別子 (番号、コード、または名前。例: "44"、"HAM"、"Hamilton")

5. analyze_driver_performance

F1 セッションにおけるドライバーのパフォーマンスを分析します。

パラメータ:

  • year (数字):シーズン年(例:2023)

  • event_identifier (文字列): イベント名またはラウンド番号 (例: "Monaco" または "7")

  • session_name (文字列): セッション名 (例: "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")

  • driver_identifier (文字列): ドライバー識別子 (番号、コード、または名前。例: "44"、"HAM"、"Hamilton")

6. compare_drivers

複数のF1ドライバーのパフォーマンスを比較します。

パラメータ:

  • year (数字):シーズン年(例:2023)

  • event_identifier (文字列): イベント名またはラウンド番号 (例: "Monaco" または "7")

  • session_name (文字列): セッション名 (例: "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")

  • drivers (文字列):ドライバーコードのコンマ区切りリスト(例:"HAM,VER,LEC")

7. get_telemetry

特定の F1 ラップのテレメトリ データを取得します。

パラメータ:

  • year (数字):シーズン年(例:2023)

  • event_identifier (文字列): イベント名またはラウンド番号 (例: "Monaco" または "7")

  • session_name (文字列): セッション名 (例: "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")

  • driver_identifier (文字列): ドライバー識別子 (番号、コード、または名前。例: "44"、"HAM"、"Hamilton")

  • lap_number (数値、オプション): ラップ番号 (指定しない場合は最速ラップが取得されます)

8. get_championship_standings

F1チャンピオンシップの順位表を入手します。

パラメータ:

  • year (数字):シーズン年(例:2023)

  • round_num (数値、オプション): ラウンド番号 (指定されていない場合は最新の順位を取得します)

使用例

サーバーが MCP 設定に追加され実行されると、Cline でこれらのツールを使用して Formula One データにアクセスできるようになります。

クエリの例:

  • 「2023年のF1レースカレンダーを見せてください」

  • 「2022年モナコグランプリの結果はこちら」

  • 「2021年イギリスGPにおけるハミルトンとフェルスタッペンのパフォーマンスを比較」

  • 「2023年イタリアGP予選におけるルクレールの最速ラップのテレメトリーデータを見せてください」

  • 「現在のF1チャンピオンシップの順位はどうなっていますか?」

データソース

このサーバーは、公式のF1タイミングデータ、車両テレメトリ、セッション結果へのアクセスを提供するFastF1 Pythonライブラリを使用します。

ライセンス

マサチューセッツ工科大学

Available Tools

8 tools
analyze_driver_performanceC

Analyze a driver's performance in a Formula One session

ParametersJSON Schema
NameRequiredDescriptionDefault
driver_identifierYesDriver identifier (number, code, or name; e.g., "44", "HAM", "Hamilton")
event_identifierYesEvent name or round number (e.g., "Monaco" or "7")
session_nameYesSession name (e.g., "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")
yearYesSeason year (e.g., 2023)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states the tool analyzes performance but doesn't describe what the analysis entails (e.g., metrics returned, format of results, potential errors, or data sources). For a tool with four required parameters and no output schema, this lack of behavioral context is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a performance analysis tool with four required parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the analysis returns, how results are structured, or any behavioral aspects like error handling. The schema covers inputs well, but the description fails to address the tool's output and operational context adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-specific information beyond what the input schema provides, which has 100% coverage with clear descriptions for all four parameters. Since the schema fully documents the parameters, the baseline score of 3 is appropriate. The description doesn't compensate for any gaps, but none exist in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('analyze') and resource ('driver's performance in a Formula One session'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'compare_drivers' or 'get_session_results', but the focus on individual driver analysis is implied. The description avoids tautology by specifying what is being analyzed beyond just the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'compare_drivers' or 'get_session_results'. It doesn't mention prerequisites, such as needing valid identifiers, or contextual factors like data availability. The agent must infer usage from the tool name and parameters alone, which is insufficient for optimal selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_driversC

Compare performance between multiple Formula One drivers

ParametersJSON Schema
NameRequiredDescriptionDefault
driversYesComma-separated list of driver codes (e.g., "HAM,VER,LEC")
event_identifierYesEvent name or round number (e.g., "Monaco" or "7")
session_nameYesSession name (e.g., "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")
yearYesSeason year (e.g., 2023)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'compare performance' but doesn't specify what 'performance' entails (e.g., lap times, positions, statistics), how results are returned, or any constraints like rate limits or authentication needs. This is a significant gap for a tool with multiple required parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded and wastes no words, making it easy for an agent to parse quickly. Every word earns its place in conveying the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of comparing multiple drivers across events and sessions, with no annotations and no output schema, the description is insufficient. It doesn't explain what 'performance' means, how comparisons are made, or what the output looks like. This leaves critical gaps for an agent to understand the tool's behavior and results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with each parameter clearly documented in the input schema. The description adds no additional meaning beyond the schema, such as explaining interactions between parameters or usage examples. This meets the baseline for high schema coverage but doesn't enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Compare performance between multiple Formula One drivers.' It specifies the verb 'compare' and the resource 'Formula One drivers,' but doesn't explicitly differentiate from siblings like 'analyze_driver_performance' or 'get_session_results,' which might overlap in functionality. This makes it clear but not fully distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'analyze_driver_performance' and 'get_session_results' that might offer similar or related data, there's no indication of context, prerequisites, or exclusions. This leaves the agent without direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_championship_standingsC

Get Formula One championship standings

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesSeason year (e.g., 2023)
round_numNoRound number (optional, gets latest standings if not provided)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only states the basic purpose and does not disclose any behavioral traits such as data ordering, pagination, or whether historical data is included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, complete sentence with no wasted words. It is appropriately front-loaded but lacks any structural elements like sections or examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with fully documented parameters and no output schema, the description is adequate. However, it could be improved by mentioning the return format or scope (e.g., drivers and/or constructors).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (year, round_num) are documented in the input schema with descriptions. The tool description adds no additional semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves Formula One championship standings, which is a specific verb+resource. It distinguishes itself from sibling tools that focus on drivers, events, or sessions, though it could be more explicit about whether standings include drivers, constructors, or both.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, filtering options, or scenarios where other tools might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_driver_infoC

Get information about a specific Formula One driver

ParametersJSON Schema
NameRequiredDescriptionDefault
driver_identifierYesDriver identifier (number, code, or name; e.g., "44", "HAM", "Hamilton")
event_identifierYesEvent name or round number (e.g., "Monaco" or "7")
session_nameYesSession name (e.g., "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")
yearYesSeason year (e.g., 2023)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but only states it 'gets information' without specifying what type of information (e.g., biographical, performance stats), format, or any constraints like rate limits, authentication needs, or data freshness. This is inadequate for a tool with four required parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with zero wasted words, front-loading the core purpose efficiently. It's appropriately sized for a straightforward retrieval tool, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (four required parameters, no output schema, and no annotations), the description is incomplete. It doesn't explain what information is returned, how results are structured, or any behavioral traits like error handling. This leaves significant gaps for an agent to invoke the tool correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the input schema fully documents all four parameters with clear descriptions and examples. The description adds no additional parameter semantics beyond implying it retrieves driver-specific data, which is already evident from the tool name and schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('information about a specific Formula One driver'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'analyze_driver_performance' or 'get_session_results', which might also provide driver-related information in different contexts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., historical vs. real-time data), or how it differs from siblings like 'analyze_driver_performance' or 'get_session_results', leaving the agent to infer usage from parameters alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_event_infoB

Get detailed information about a specific Formula One Grand Prix

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesEvent name or round number (e.g., "Monaco" or "7")
yearYesSeason year (e.g., 2023)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' information (implying a read operation) but doesn't cover aspects like authentication needs, rate limits, error conditions, or what 'detailed information' includes (e.g., circuit details, race results, weather). This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 required parameters, no output schema, no annotations), the description is minimally adequate. It clarifies the resource (Formula One Grand Prix) but lacks context on return values, error handling, or differentiation from siblings. With no output schema, the agent must infer what 'detailed information' entails, which is a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('identifier' and 'year') with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema, such as format examples or constraints, but this is acceptable given the high schema coverage baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'detailed information about a specific Formula One Grand Prix', making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_event_schedule' or 'get_session_results', which might provide overlapping or related event information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_event_schedule' (which might list events) or 'get_session_results' (which might provide race outcomes), leaving the agent to infer usage context from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_event_scheduleC

Get Formula One race calendar for a specific season

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesSeason year (e.g., 2023)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a calendar but does not describe any behavioral traits, such as whether it's a read-only operation, potential rate limits, authentication needs, error handling, or the format of the returned data. This is a significant gap for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the tool's purpose without any unnecessary words. It is front-loaded with the core functionality, making it easy for an agent to quickly understand what the tool does. Every part of the sentence earns its place by specifying the resource and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of retrieving a race calendar, the lack of annotations, and no output schema, the description is incomplete. It does not explain what the return value includes (e.g., list of events, dates, locations) or any behavioral aspects like data freshness or limitations. For a tool with no structured output information, more context is needed to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'year' parameter clearly documented as 'Season year (e.g., 2023).' The description adds no additional parameter semantics beyond what the schema provides, such as valid year ranges or examples. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get Formula One race calendar for a specific season.' It specifies the verb ('Get') and resource ('Formula One race calendar'), and mentions the scope ('for a specific season'). However, it does not explicitly differentiate this tool from its sibling tools like 'get_event_info' or 'get_session_results,' which might also relate to events or sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or suggest other tools for related tasks, such as using 'get_event_info' for details on a single event or 'get_session_results' for race results. This lack of context leaves the agent without clear usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_session_resultsC

Get results for a specific Formula One session

ParametersJSON Schema
NameRequiredDescriptionDefault
event_identifierYesEvent name or round number (e.g., "Monaco" or "7")
session_nameYesSession name (e.g., "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")
yearYesSeason year (e.g., 2023)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It doesn't specify whether this is a read-only operation, what format results are returned in, whether authentication is required, or any rate limits. For a tool that presumably queries historical data, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise at a single sentence that directly states the tool's purpose with zero wasted words. It's front-loaded with the essential information and doesn't include any unnecessary elaboration or redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficiently complete. For a tool that retrieves session results, users need to know what format results are returned in (e.g., structured data, raw text, specific metrics), whether it includes timing data, driver positions, or other details. The current description leaves too many contextual questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter semantics beyond what's already documented in the schema, which has 100% coverage with clear descriptions for all three parameters. The baseline score of 3 reflects adequate parameter documentation entirely through the schema, with the description providing no additional value in this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('results for a specific Formula One session'), making it immediately understandable. However, it doesn't distinguish this tool from potential siblings like 'get_event_info' or 'get_telemetry' that might also provide session-related data, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_event_info' (which might include session results) and 'get_telemetry' (which could provide detailed session data), there's no indication of what makes this tool distinct or when it should be preferred over other options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_telemetryC

Get telemetry data for a specific Formula One lap

ParametersJSON Schema
NameRequiredDescriptionDefault
driver_identifierYesDriver identifier (number, code, or name; e.g., "44", "HAM", "Hamilton")
event_identifierYesEvent name or round number (e.g., "Monaco" or "7")
lap_numberNoLap number (optional, gets fastest lap if not provided)
session_nameYesSession name (e.g., "Race", "Qualifying", "Sprint", "FP1", "FP2", "FP3")
yearYesSeason year (e.g., 2023)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on behavioral traits such as rate limits, authentication needs, data format of the telemetry, or whether it's a read-only operation. For a tool with no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of telemetry data and the lack of annotations and output schema, the description is incomplete. It doesn't explain what telemetry data includes, the return format, or any behavioral aspects like error handling. For a tool with 5 parameters and no structured output information, more context is needed to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as explaining relationships between parameters or providing examples. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate or enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get telemetry data') and resource ('for a specific Formula One lap'), making the purpose immediately understandable. It distinguishes from siblings like 'get_driver_info' or 'get_session_results' by focusing on telemetry data rather than general information or results. However, it doesn't explicitly differentiate from potential telemetry-related siblings that might not exist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'analyze_driver_performance' or 'compare_drivers' that might overlap in use cases, nor does it specify prerequisites or scenarios where this tool is preferred. Usage is implied through the description but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: analyze_driver_performance focuses on performance analysis, compare_drivers on driver comparisons, get_driver_info on driver details, get_event_info on Grand Prix specifics, get_event_schedule on calendar data, get_session_results on session outcomes, and get_telemetry on lap telemetry. An agent can easily distinguish between these tools based on their specific functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as analyze_driver_performance, get_driver_info, and get_event_schedule. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

Tool Count5/5

With 7 tools, the server is well-scoped for its Formula One domain, covering key aspects like driver analysis, event details, schedules, results, and telemetry. Each tool earns its place by addressing a specific need without being overly sparse or bloated.

Completeness4/5

The tool set provides comprehensive coverage for querying and analyzing Formula One data, including drivers, events, schedules, results, and telemetry. A minor gap exists in update or creation operations (e.g., no tools for modifying data), but this is reasonable for a read-focused server, and agents can work effectively with the available tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • 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
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that provides comprehensive Formula One racing data, enabling access to event schedules, driver information, telemetry data, race results, and performance analytics through natural language queries.
    8
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables access to Formula 1 data from the openF1.org API, including driver information, race results, lap times, telemetry, pit stops, weather conditions, and live position data across multiple seasons.
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time access to football (soccer) data including fixtures, standings, teams, players, transfers, and injuries through the API-Football service via the Model Context Protocol.
    3

Appeared in Searches

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/rakeshgangwar/f1-mcp-server'

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