Skip to main content
Glama
darshjoshi

io.github.darshjoshi/pitwall

by darshjoshi

Quick Start

Claude Code — one command, all 79 tools:

claude mcp add pitwall -- uvx --from "f1pitwall[full]" f1pitwall

Then ask Claude: "Who won the 2025 Australian GP?"

Needs uv (curl -LsSf https://astral.sh/uv/install.sh | sh). No pip, no virtualenv, no "which python3" — and you always get the latest release.

First launch downloads the FastF1 stack (~540 MB) and takes about 25 seconds. Every launch after that is under a second. If the very first start times out, just restart Claude Code — the download is already cached.

Want the plugin instead, so you get the f1 skill along with the server? See Install as a Claude Code plugin.

Skips pandas/numpy/matplotlib/FastF1. Still includes all 16 live-timing tools.

claude mcp add pitwall -- uvx --from f1pitwall f1pitwall
pip install "f1pitwall[full]"        # or just f1pitwall for lite
claude mcp add pitwall -- f1pitwall
git clone https://github.com/darshjoshi/pitwall.git && cd pitwall
pip install -r requirements.txt        # lite (incl. live timing)
pip install -r requirements-full.txt   # full
claude mcp add pitwall -- python3 $(pwd)/pitwall.py

Install as a Claude Code plugin

The plugin ships the MCP server and the f1 skill together — the skill teaches Claude which of the 79 tools to reach for and how to explain F1 to someone who's never watched a race.

/plugin marketplace add darshjoshi/pitwall
/plugin install pitwall@pitwall

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "pitwall": {
      "command": "uvx",
      "args": ["--from", "f1pitwall[full]", "f1pitwall"]
    }
  }
}

Related MCP server: fastf1-mcp-server

Why Pitwall?

Claude knows F1 from training data — but it can't look up last week's race. It can't show you Verstappen's throttle trace through Turn 1. It doesn't know who pitted first or when the safety car came out.

Pitwall connects Claude to real F1 data:

  • Real data, not hallucinations — actual timing feeds from formula1.com

  • Lap-level telemetry — speed, RPM, throttle, brake, gear, DRS at 4Hz per car

  • Visual plots — speed trace comparisons, gear shift maps returned as images

  • 75 years of history — every race result and championship since 1950

  • Fresh after every session — full telemetry and timing published ~30 min after each session ends, back to 2018

  • Zero API keys — all core data is free, no account needed


What You Can Ask

"Who won the 2025 Australian GP?"           → Race results and classification
"Verstappen's speed on lap 25 at Monaco"    → Lap telemetry at 4Hz
"Plot Hamilton vs Norris speed trace"       → Visual speed comparison chart
"Compare Ferrari's tyre strategy"           → Stint-by-stint breakdown
"Who won the 1994 championship?"            → 75 years of history
"When was the safety car at Silverstone?"   → Race control messages and flags

Question

Tool Used

"Who won the Chinese GP?"

get_standings

"What was Verstappen's speed on lap 25?"

get_telemetry

"Compare Hamilton vs Leclerc"

get_driver_comparison

"What tyres did everyone use?"

get_tyre_strategy

"Fastest pit stop at Australia 2025?"

get_pit_stops

"When was the safety car?"

get_race_control

"Was it raining during the race?"

get_weather

"Top speeds at Monza 2024?"

get_speed_traps

"Norris's lap times in the race"

get_lap_times

"Who won the 2005 championship?"

get_championship_standings

"Plot Verstappen vs Hamilton speed trace"

plot_telemetry_comparison

"Show me the gear shift map at Monaco"

plot_gear_shifts

"Who gained the most positions?"

compare_grid_to_finish

"Overtakes in the race"

detect_overtakes

"Compare Verstappen lap 5 vs lap 50"

plot_multi_telemetry_comparison

"Ferrari head-to-head in qualifying"

team_head_to_head

"Deleted laps in qualifying"

get_deleted_laps

"Gap to leader throughout the race"

get_gap_to_leader


Features

79 tools across two modes. Pitwall auto-detects what's installed — no config changes needed.

Lite Mode (30 tools)

pip install f1pitwall — light deps only (mcp, requests, plus websockets/aiohttp for live timing); no pandas/numpy/FastF1.

Race results, lap times, telemetry, tyre strategy, pit stops, weather, race control, speed traps, driver comparison, and historical data back to 1950. Plus 16 live-timing tools (running order, gaps, lap/sector times, tyres, weather, race control, speed traps, mini-sectors, …) that read F1's real-time SignalR feed during a session — no auth needed. (Live car telemetry + GPS are auth-gated and live in Full mode.) Uses F1's free static archive and the Jolpica API.

Full Mode (79 tools)

pip install -r requirements-full.txt — adds FastF1.

Everything in Lite, plus:

Category

What You Get

Visual Plots

Speed trace comparisons, gear shift maps, multi-lap telemetry overlays

Deep Telemetry

Brake point analysis, RPM patterns, DRS usage, throttle traces

Advanced Strategy

Stint degradation, compound comparisons, tire age performance

Race Intelligence

Overtake detection, gap tracking, position changes, qualifying progression

Lite Tools (always available)

Tool

Description

list_seasons

Available seasons (2018-present)

list_races

Full season calendar with dates

get_race_info

Session details and available data feeds

get_standings

Race classification — positions, gaps, best laps, pits

get_lap_times

Lap-by-lap times, filterable by driver and lap range

get_telemetry

Speed, RPM, throttle, brake, gear, DRS for a specific lap

get_tyre_strategy

Compound, stint length, new/used for every driver

get_pit_stops

All pit stops sorted by fastest

get_race_control

Flags, penalties, safety cars, investigations

get_weather

Air/track temp, rain, humidity, wind

get_speed_traps

Speed at 4 measurement points per driver

get_driver_comparison

Head-to-head: position, pace, strategy, pit stops

get_historical_results

Race results from 1950 to present

get_championship_standings

Driver/constructor championships from 1950+

Live Timing (lite — no auth, reads F1's real-time SignalR feed during a session)

Tool

Description

get_live_session_status

Session name, flag/track status, lap count

get_live_positions

Live running order with gap + interval

get_live_lap_times

Last + best lap per driver

get_live_sector_times

Sector times + speed trap for one driver

get_live_time_gaps

Gap to leader + interval to car ahead (mode-aware)

get_live_best_sectors

Personal-best sectors + best lap, ranked

get_live_speed_trap

Speed-trap (ST) ranking across the field

get_live_speed_comparison

Best speed at I1/I2/FL/ST per driver

get_live_tyres

Compound, age (laps), stint number per driver

get_live_stint_history

Full compound sequence per driver

get_live_pit_activity

Pit count + in-pit / out-lap flags

get_live_weather

Air/track temp, humidity, wind, rain

get_live_race_control

Flags, penalties, track-limit deletions, SC/VSC

get_live_session_clock

Time remaining in the session

get_live_track_status_history

Chronological track/session status log

get_live_mini_sectors

Mini-sector status (green/purple/yellow) per driver

FastF1 Tools (requires FastF1)

Category

Tools

Visual Plots

plot_telemetry_comparison, plot_gear_shifts, plot_multi_telemetry_comparison, plot_driver_telemetry_comparison

Telemetry Analysis

analyze_brake_points, analyze_rpm_data, analyze_drs_usage

Lap Analysis

get_lap_times_fastf1, get_deleted_laps, analyze_lap_consistency, get_fastest_sectors, get_personal_best_laps, compare_sector_times

Strategy

get_driver_tyre_detail, get_stint_analysis, compare_tire_compounds, compare_tire_age_performance, analyze_starting_tires, compare_strategies

Race Analysis

get_race_results, get_sprint_results, get_session_summary, get_fastest_lap_data, detect_overtakes, compare_grid_to_finish, get_qualifying_progression

Pit Stops

get_pit_stop_detail, get_fastest_pit_stops

Driver & Team

get_driver_info, get_driver_standings, get_constructor_standings, team_head_to_head, get_team_laps, analyze_long_run_pace

Track & Safety

get_circuit_info, get_track_status, get_track_record, get_race_control_messages, get_penalties, get_dnf_list

Speed & Position

get_speed_trap_comparison, get_position_changes, get_gap_to_leader

History

get_race_winners_history

Live (auth-gated)

get_live_telemetry, get_live_gps_positions — live car telemetry + GPS, need an F1 TV token

Session

get_schedule, get_session_info, get_weather_data


Setup

Claude Code:

claude mcp add pitwall -- python3 /absolute/path/to/pitwall.py

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pitwall": {
      "command": "python3",
      "args": ["/absolute/path/to/pitwall.py"]
    }
  }
}

1. Find your Python path:

where python

This will return something like C:\Users\YourName\AppData\Local\Programs\Python\Python313\python.exe or C:\Python313\python.exe.

2. Note where you cloned Pitwall: For example: C:\Users\YourName\Projects\pitwall\pitwall.py

Claude Code (PowerShell):

claude mcp add pitwall -- python C:\Users\YourName\Projects\pitwall\pitwall.py

Claude Desktop — add to %APPDATA%\Claude\claude_desktop_config.json:

To open this folder, press Win + R, type %APPDATA%\Claude, and hit Enter. If the Claude folder or claude_desktop_config.json doesn't exist, create them.

{
  "mcpServers": {
    "pitwall": {
      "command": "python",
      "args": ["C:\\Users\\YourName\\Projects\\pitwall\\pitwall.py"]
    }
  }
}

Note: Use double backslashes (\\) in the JSON path, or forward slashes (/) — both work. The command is python (not python3) on Windows.

Claude Code:

claude mcp add pitwall -- python3 /absolute/path/to/pitwall.py

Claude Desktop — add to ~/.config/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pitwall": {
      "command": "python3",
      "args": ["/absolute/path/to/pitwall.py"]
    }
  }
}

Restart Claude Code or Claude Desktop after setup. Works with any MCP-compatible client.

Optional: Beginner-Friendly Skill (Claude Desktop)

Upload SKILL.md as a skill in Claude Desktop (Settings → Skills → Upload). Claude will explain F1 jargon inline — DRS, undercut, compound, safety car, etc.


Data Sources

All core data is free and requires no API keys.

Source

Coverage

What it provides

F1 Static Live Timing

2018-present

Telemetry, timing, strategy, pit stops, weather, race control

Jolpica-F1

1950-present

Historical results and championships

FastF1 (optional)

2018-present

Enhanced telemetry analysis and visual plots

F1 SignalR Core (optional)

Live only

Real-time race data during active sessions


How It Works

Pitwall reads from F1's publicly available static timing archive — the same data that powers the official F1 app. After each session ends (~30 minutes), F1 publishes 33 data feeds per session including full car telemetry (speed, RPM, throttle, brake, gear, DRS at ~4Hz per car), GPS positions, tyre data, pit stops, and race control messages.

The telemetry tool (get_telemetry) correlates the timing stream with the car data stream to extract telemetry for a specific driver on a specific lap — something no other F1 MCP server does.

Architecture

Claude ──MCP──> Pitwall ──HTTP──> livetiming.formula1.com/static/ (free)
                       ──HTTP──> api.jolpi.ca/ergast/f1/ (free)
                       ──lib──>  FastF1 (optional, local)
                       ──WS───> SignalR Core (optional, live races)

Running the Server

python3 pitwall.py              # MCP stdio (Claude Code / Claude Desktop)
python3 pitwall.py --http       # MCP HTTP (remote / self-hosted)
python3 pitwall.py --http --port 3000

Live Race Data

Pitwall includes a raw SignalR Core WebSocket client for real-time data during active F1 sessions. Most data is free — car telemetry and GPS require an F1 TV Pro or Premium subscription.

Note: The get_live_* MCP tools read this client's live SignalR feed directly. 16 timing tools (running order, gaps, lap/sector times, tyres, weather, race control, speed traps, mini-sectors, …) work in the lite install with no auth; live car telemetry and GPS (get_live_telemetry, get_live_gps_positions) need an F1 TV token and ship in the full install. Post-session data — telemetry, timing, strategy — also remains available through the main tools after each session ends.

Data

Free

F1 TV

Race positions, gaps, lap times

Yes

Yes

Race control, flags, penalties

Yes

Yes

Weather, track status

Yes

Yes

Tyre compounds, stint info

Yes

Yes

Team radio URLs

Yes

Yes

Car telemetry (speed, RPM, throttle, brake)

No

Yes

GPS positions (X/Y/Z coordinates)

No

Yes

All data (including telemetry and GPS) becomes free in the static archive ~30 minutes after a session ends.

python3 auth_setup.py

This opens a browser for F1 TV login. The token is saved locally:

  • <project_dir>/.f1token

  • ~/Library/Application Support/fastf1/f1auth.json (macOS)

Token expires every ~4 days. Re-run to refresh. Never uploaded anywhere.

import asyncio
from signalr_client import F1LiveClient

async def main():
    # Free mode — timing, weather, race control (no auth needed)
    client = F1LiveClient(no_auth=True)

    @client.on("TimingData")
    def on_timing(data, timestamp):
        for num, info in data.get("Lines", {}).items():
            print(f"P{info.get('Position','?')} #{num} Gap: {info.get('GapToLeader','')}")

    @client.on("RaceControlMessages")
    def on_rc(data, timestamp):
        for msg in data.get("Messages", {}).values():
            print(f"[{msg.get('Flag', '')}] {msg.get('Message', '')}")

    await client.connect()

asyncio.run(main())

For full telemetry (speed, RPM, throttle, brake, GPS):

from auth_setup import load_token

client = F1LiveClient(no_auth=False, auth_token=load_token())

@client.on("CarData.z")
def on_telemetry(data, timestamp):
    # Speed, RPM, throttle, brake, gear, DRS at ~4Hz per car
    ...

@client.on("Position.z")
def on_position(data, timestamp):
    # GPS X/Y/Z coordinates at ~4Hz per car
    ...

Reference

Race Names

Race names are fuzzy-matched. All of these work:

"china", "chinese", "shanghai"           → Chinese Grand Prix
"australia", "melbourne", "aus"          → Australian Grand Prix
"monaco", "monte carlo"                  → Monaco Grand Prix
"silverstone", "great britain", "british" → British Grand Prix

Driver Codes

VER = Verstappen    HAM = Hamilton    NOR = Norris     LEC = Leclerc
ANT = Antonelli     RUS = Russell     PIA = Piastri    BEA = Bearman
GAS = Gasly         LAW = Lawson      HAD = Hadjar     SAI = Sainz
ALO = Alonso        STR = Stroll      OCO = Ocon       BOT = Bottas
ALB = Albon         HUL = Hulkenberg  COL = Colapinto  LIN = Lindblad

Project Files

File

Purpose

pitwall.py

MCP server — 79 tools, auto-degrades to 30 without FastF1

signalr_client.py

Raw SignalR Core WebSocket client for live race data

decompressor.py

Zlib decompression for CarData.z / Position.z

merger.py

Keyframe + delta state management for F1's incremental format

topics.py

All 20 SignalR topics with auth/compression metadata

auth_setup.py

F1 TV token setup — browser-based OAuth flow


Contributing

Found a bug? Want to add a tool? Contributions are welcome.

  1. Fork the repo

  2. Create a feature branch

  3. Make your changes

  4. Run the test suite: python3 tests/pitwall_tool_validation.py

  5. Open a pull request


Credits

  • FastF1 by @theOehrly — the gold standard F1 Python library

  • Jolpica-F1 — the Ergast API successor

  • drivenrajat/f1 — inspiration for FastF1 tool patterns

Built by

Darsh Joshi — AI Engineer

LinkedIn GitHub Email

License

MIT

Available Tools

30 tools
get_championship_standingsB

Get championship standings from 1950 to present.

Args: year: Season year (0 = current) standings_type: 'driver' or 'constructor'

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
standings_typeNodriver

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

The description covers basic functionality (retrieving standings) and notes that year=0 means current season. However, it does not disclose error behavior for invalid inputs, rate limits, or that the operation is read-only. With no annotations, more behavioral context is needed.

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 extremely concise with a clear header and an Args section. Every line adds value, and the structure front-loads the purpose. No unnecessary text.

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

Completeness4/5

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

Given the low parameter count and presence of an output schema, the description sufficiently covers the tool's behavior. It could mention that it returns historical (not live) data, but this is implied by 'from 1950 to present' and the sibling list.

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

Parameters4/5

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

The description explains each parameter beyond the schema: year is 'Season year (0 = current)' and standings_type is limited to 'driver' or 'constructor'. This adds meaningful context that the schema's defaults and types do not provide.

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 'Get championship standings from 1950 to present,' specifying the tool's purpose and time range. It does not explicitly differentiate from siblings like 'get_standings' or 'get_historical_results,' but the tool name and description make the focus clear.

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?

No guidance is provided on when to use this tool versus alternatives. The description lacks context such as prerequisites or exclusions, leaving the agent to infer usage from the tool name and siblings.

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

get_driver_comparisonA

Compare two drivers head-to-head — position, pace, strategy, pit stops.

Args: driver_a: First driver TLA (e.g. 'VER') driver_b: Second driver TLA (e.g. 'HAM') year: Season year race: Race name (partial match) session_type: Session type

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
driver_aYes
driver_bYes
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description must carry the full burden of behavioral disclosure. It mentions compared aspects but does not disclose if data is historical or live, what happens on invalid driver codes, or the response structure. The brief description falls short given the lack of annotations.

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 extremely concise: one line for purpose, then a clean Args list. Every sentence adds value, and the purpose is front-loaded. No wasted words.

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

Completeness4/5

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

Given the complexity of 5 parameters, no annotations, and 29 sibling tools, the description is fairly complete for what it covers (purpose, arguments), but lacks usage guidance and behavioral details. The presence of an output schema reduces the need to document return values, but agent still needs more context.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates well by providing examples for driver_a and driver_b ('VER', 'HAM'), noting 'partial match' for race, and listing session_type. This adds meaning beyond the schema's vague titles, though details like year range or default behaviors are missing.

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

Purpose5/5

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

The description clearly states the verb 'compare' and specifies the resource 'two drivers'. It lists aspects compared: position, pace, strategy, pit stops, distinguishing it from sibling tools like get_historical_results which likely focus on a single driver or general data.

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?

No guidance is provided on when to use this tool versus the many sibling tools (e.g., get_telemetry, get_lap_times). An agent would not know whether this is the best choice for a head-to-head comparison or if other tools are more appropriate.

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

get_historical_resultsA

Get historical F1 race results from 1950 to present.

Args: year: Specific year (0 = current season) race: Circuit name (e.g. 'monza', 'monaco') driver: Driver ID (e.g. 'verstappen', 'hamilton')

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
driverNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must convey behavior. It states the tool returns historical results and lists parameters, but does not explain how multiple filters interact (AND/OR), default behavior when all params default, or whether results are paginated. Basic purpose is clear but deeper behavioral context is lacking.

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 succinct: one sentence summary followed by a bullet list of parameters. It is front-loaded with the core purpose and well-structured with no unnecessary words.

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 has an output schema (not shown) and 3 optional parameters, the description covers the time range and param meanings adequately. However, it does not explain parameter interactions (e.g., combining year and driver) or any limitations (e.g., result limits), leaving some gaps in completeness.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate. It provides clear meaning for each parameter: year (specific year, 0 = current season), race (circuit name with examples), driver (driver ID with examples). This adds significant value beyond the schema's property titles and defaults.

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

Purpose5/5

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

The tool name and description clearly specify 'Get historical F1 race results' with a defined time range 'from 1950 to present'. This is distinct from sibling tools like get_live_* (real-time) and get_championship_standings (standings).

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

Usage Guidelines4/5

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

The description implies usage for historical data via the name and time range. While it does not explicitly exclude live tools or provide when-not guidance, the context from sibling names (e.g., get_live_lap_times) makes the distinction clear.

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

get_lap_timesB

Get lap-by-lap times for one or all drivers. Filterable by lap range.

Args: year: Season year race: Race name (partial match) driver: Driver TLA (e.g. 'VER') or empty for all session_type: Session type lap_start: First lap to include lap_end: Last lap to include

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
driverNo
lap_endNo
lap_startNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations, and description lacks behavioral details such as data freshness, rate limits, or scope limitations. Only basic functionality described.

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?

Extremely concise: one sentence plus parameter list. No wasted words. Front-loaded with purpose.

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?

Adequate for a simple historical query tool, but given 6 parameters and many siblings, more context on output or use cases would improve.

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?

Description adds some semantics for parameters like driver ('TLA or empty for all') and lap range, but many parameters are only listed with names. Schema coverage 0% means description must compensate, and it partially does.

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

Purpose5/5

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

Clearly states 'Get lap-by-lap times for one or all drivers' with filterable lap range. Specific verb and resource, and distinguishes from siblings like get_live_lap_times.

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?

No guidance on when to use this tool vs alternatives (e.g., live vs historical). No when-not or contextual tips.

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

get_live_best_sectorsB

Live personal-best sector times and overall best lap per driver, ranked by lap position. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only mentions 'live' and 'No auth required', but fails to disclose other behavioral traits like update frequency, read-only nature, or what happens when no data.

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?

Two clear, front-loaded sentences with no unnecessary words. Every phrase adds value: 'Live', 'personal-best sector times', 'overall best lap per driver', 'ranked by lap position', and 'No auth required'.

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

Completeness4/5

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

Given zero parameters and an existing output schema, the description provides sufficient context: live data, content (best sectors and best lap), ranking, and auth requirement. It could mention output schema reference but is adequate.

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

Parameters4/5

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

No parameters exist, and schema coverage is 100%. The description adds no parameter details, but baseline for zero parameters is 4, and it adds context about the returned data content.

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 returns 'live personal-best sector times and overall best lap per driver, ranked by lap position'. It specifies the resource (best sectors and best lap) and the action (get live), distinguishing it from siblings like get_live_sector_times and get_live_lap_times.

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?

No guidance on when to use this tool vs alternatives. The only contextual hint is 'No auth required', but without explicit when/when-not or sibling differentiation.

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

get_live_lap_timesA

Live last + best lap time per driver. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, description carries full burden. It states the tool is live and requires no auth, but does not disclose other behavioral traits such as whether the data is updated in real-time, polling rates, or any limitations. Having an output schema helps but behavioral context is minimal.

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?

Two concise sentences that front-load the core purpose and immediately follow with the key usage note. No redundant information.

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

Completeness4/5

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

Given the tool has no parameters and an output schema, the description covers the basic need. However, it could mention that it’s tied to a live session or that results are from the current session, but missing that is acceptable for simplicity.

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

Parameters4/5

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

Tool has 0 parameters with 100% schema coverage. Baseline is 4 per rubric. Description adds slight value by mentioning 'per driver' implying the result is per driver, but no parameter details are needed.

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

Purpose5/5

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

Description clearly states it retrieves live last and best lap times per driver. Distinguishes from sibling tools like get_lap_times (historical) and get_live_sector_times (sector-specific) by specifying 'live' and 'per driver'.

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

Usage Guidelines3/5

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

Specifies 'No auth required' as a usage condition, but does not provide explicit when-to-use or when-not-to-use guidance relative to siblings like get_live_sector_times or get_live_time_gaps. The purpose is implicit but not directive.

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

get_live_mini_sectorsA

Live mini-sector status per driver: g=green/personal-best, p=purple/overall-best, y=yellow, .=no data. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/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. It states that no authentication is required and explains the return symbols clearly. It implies a read-only operation with no destructive side effects, which is adequate for a simple data retrieval tool.

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 extremely concise: one sentence defining the resource and a legend for symbols. Every element is informative and there is no wasted text.

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

Completeness5/5

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

Given the tool has no parameters, an output schema exists, and the description covers output format and authentication, it is contextually complete for a simple read tool.

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

Parameters4/5

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

The tool has no parameters, and schema description coverage is 100%. According to guidelines, 0 parameters yields a baseline of 4. The description does not need to add parameter semantics since none exist.

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

Purpose5/5

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

The description clearly states the tool returns 'Live mini-sector status per driver' and defines the symbols (g, p, y, .). It distinguishes itself from sibling tools like get_live_best_sectors and get_live_sector_times by specifying 'mini-sector' status, which is a specific and different resource.

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

Usage Guidelines3/5

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

The description mentions 'No auth required' but does not provide explicit guidance on when to use this tool over alternatives. While the tool is self-explanatory, it lacks when/when-not usage context compared to siblings.

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

get_live_pit_activityA

Live pit-stop count and real-time in-pit / out-lap flags per driver. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the tool returns live counts and flags per driver, and requires no auth. This is basic behavioral info, but it does not disclose potential error states (e.g., no live session) or data freshness details.

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 two short sentences, concise and front-loaded with the core purpose. No extraneous information.

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

Completeness4/5

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

Given zero parameters and an output schema, the description is largely complete. It covers the key outputs (count and flags per driver). However, it could briefly clarify the difference from similar live tools like get_pit_stops or get_live_stint_history.

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

Parameters4/5

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

The tool has no parameters, and the schema is empty. The description adds value by explaining what the tool returns (pit-stop count and flags per driver), going beyond the schema's lack of information.

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 provides live pit-stop counts and real-time in-pit/out-lap flags per driver. It distinguishes itself from sibling tools like 'get_pit_stops' by emphasizing 'live', but does not explicitly differentiate from other live tools like 'get_live_stint_history'.

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

Usage Guidelines3/5

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

The description mentions 'No auth required', which is a usage guideline. However, it does not explicitly state when to use this tool versus alternatives (e.g., for historical data use get_pit_stops). The usage context is implied but not explicit.

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

get_live_positionsA

Live running order with gap-to-leader and interval. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

The description notes 'No auth required,' but lacks details on data freshness, refresh rate, or response structure. With no annotations present, the description partially covers behavioral traits but is minimal.

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 extremely concise with two sentences, no redundant words, and front-loads key information. Every part is essential.

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

Completeness4/5

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

Given no parameters and an output schema available, the description covers the essential purpose and auth status. It could specify if the output includes all cars or only top positions, but overall it is reasonably complete.

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

Parameters4/5

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

The tool has zero parameters, so schema coverage is 100%. The description does not need to add parameter information, and the baseline of 4 is appropriate as it adds no confusion.

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 returns 'live running order with gap-to-leader and interval,' which identifies the verb (get) and resource (positions). It distinguishes itself from siblings like get_live_time_gaps and get_live_lap_times by focusing on the overall position list rather than individual metrics.

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?

No guidance is provided on when to use this tool versus its many siblings. The description only states the function and auth requirement, leaving the agent with no explicit context for tool selection.

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

get_live_race_controlA

Live race control: flags, penalties, track-limit deletions, SC/VSC. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It reveals 'No auth required' and data types, but doesn't disclose rate limits, response format, or whether data is real-time or delayed. The transparency is adequate but not thorough.

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?

Extremely concise: one sentence plus a note on authentication. All necessary information is front-loaded without extraneous text. Every word adds value.

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

Completeness4/5

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

Given no parameters and existence of an output schema, the description is fairly complete. It enumerates the main data categories. However, it could briefly mention that the output includes timestamps or event types, but the output schema likely covers that. Slightly lacking in usage context but overall sufficient.

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

Parameters4/5

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

The input schema has zero parameters. The description correctly confirms no parameters are needed. Baseline for zero parameters is 4; the description adds no additional parameter meaning but is consistent.

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

Purpose5/5

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

The description clearly states the tool retrieves live race control data, listing specific data types (flags, penalties, track-limit deletions, SC/VSC). The name aligns with the description, and it distinguishes from siblings like get_race_control which likely returns historical data.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. The description implies it's for live race control, but doesn't contrast with alternatives such as get_race_control or other live tools. Usage context is clear but could be improved with explicit directives.

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

get_live_sector_timesA

Live sector times + speed trap for one driver (TLA or car number). No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault
driverYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/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. It correctly states 'No auth required,' which is a key behavioral trait. However, it does not disclose other behaviors such as whether data is real-time or cached, any rate limits, or the exact return structure (though output schema may cover that). This is minimal but adequate.

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 sentence that front-loads the main purpose ('Live sector times + speed trap for one driver') and then adds the key constraint ('TLA or car number') and access requirement ('No auth required'). No wasted words.

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

Completeness5/5

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

Given that an output schema exists, the description does not need to detail return values. It fully covers what the tool does (returns sector times and speed trap for one driver) and how to specify the driver. This is sufficient for an agent to select and invoke the tool correctly.

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

Parameters5/5

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

The input schema has only one parameter ('driver') with no description (0% coverage). The description adds critical semantic information by specifying that the driver can be a TLA (three-letter abbreviation) or car number. This goes beyond the schema and is essential for correct invocation.

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

Purpose5/5

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

The description clearly states it returns live sector times and speed trap for a single driver. It uses a specific resource ('sector times + speed trap') and specifies it's for one driver, distinguishing it from sibling tools like get_live_best_sectors (which likely aggregates best sectors across drivers) and get_live_speed_trap (which might return all drivers' speed traps).

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

Usage Guidelines4/5

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

The description indicates the tool is for a single driver and requires a driver identifier (TLA or car number). It implies usage when you need both sector times and speed trap for one driver. However, it does not explicitly exclude cases where you might want only sector times (use get_live_best_sectors?) or only speed trap (use get_live_speed_trap?), leaving some ambiguity.

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

get_live_session_clockA

Live time remaining in the current session. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It mentions 'No auth required' and implies read-only via 'Live time remaining', but lacks details on refresh behavior, error conditions, or rate limits.

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?

Two short clauses in one sentence, no unnecessary words. Front-loaded with the purpose.

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

Completeness4/5

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

Given the tool has 0 parameters and an output schema exists (per context signals), the description is adequate. It could mention real-time updates, but the output schema likely covers return format.

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

Parameters4/5

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

No parameters are needed (schema coverage 100%), so baseline is 4. The description does not need to add parameter info.

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

Purpose5/5

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

The description clearly states 'Live time remaining in the current session' with a specific verb 'get' and resource 'live session clock'. It distinguishes among siblings like get_live_session_status and get_live_lap_times by focusing on the clock.

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 only usage guidance is 'No auth required.' There is no information on when to use this tool versus alternatives, no prerequisites, no context on session selection or timing.

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

get_live_session_statusA

Live F1 session status: session name, flag/track status, lap count. No auth required. Honest 'no live session' message when nothing is running.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool is read-only (no auth), returns specific fields, and gives a truthful response when no session is active. While it doesn't mention rate limits or caching, the disclosure is sufficient for a simple 0-parameter tool.

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 extremely concise, consisting of two short sentences that convey all essential information. It is front-loaded with the primary purpose and efficiently adds behavioral notes.

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

Completeness4/5

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

Given no parameters, an output schema, and a simple purpose, the description covers the core behavior and edge case (no live session). It could mention that it returns current live session data, but the provided information is adequate for a zero-parameter tool.

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

Parameters4/5

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

The input schema has no parameters, so schema coverage is 100%. The description does not need to add parameter semantics; the baseline of 4 is appropriate.

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

Purpose5/5

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

The description clearly identifies the tool as retrieving live F1 session status, specifying the exact data points (session name, flag/track status, lap count). It distinguishes itself from sibling live tools like get_live_lap_times and get_live_weather by focusing on overall session status.

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

Usage Guidelines5/5

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

The description explicitly states 'No auth required' and explains the honest behavior when no live session is running ('no live session' message). This provides clear guidance on when to use the tool and what to expect, effectively covering usage context.

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

get_live_speed_comparisonA

Live best speed at each measurement point (I1, I2, FL, ST) for every driver. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Without annotations, the description bears full burden. It adds 'No auth required' but leaves out other behavioral traits like read-only nature, data freshness, caching, or rate limits. An agent might need more info for correct invocation.

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?

Two concise sentences front-load the purpose and critical prerequisite. No wasted words; every sentence adds value.

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

Completeness4/5

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

Given low complexity (no parameters) and an output schema existing, the description covers essential purpose and auth requirement. It could mention the output is per driver or the standard meaning of measurement points, but overall it is mostly complete.

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

Parameters4/5

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

There are no parameters, and schema coverage is 100% (trivially). The description does not need to add parameter details, so a baseline score of 4 is appropriate.

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

Purpose5/5

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

The description clearly states it returns live best speed at specific measurement points (I1, I2, FL, ST) for every driver. The verb 'get' is implied, and the resource is well-defined, distinguishing it from siblings like get_live_sector_times or get_live_speed_trap.

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

Usage Guidelines4/5

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

The description explicitly notes 'No auth required,' which is a helpful prerequisite. It does not provide when-to-use vs alternatives, but the purpose is clear enough for an agent to infer usage context. A slight improvement would be to mention it complements other live tools.

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

get_live_speed_trapA

Live speed-trap (ST) ranking across the whole field. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden. It discloses that no authentication is needed, which is helpful. However, it does not mention data latency, rate limits, or the fact that the tool returns a ranking (which is already implied by 'ranking'). Some behavioral traits like output format are implicitly covered by the 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 extremely concise—just two short sentences. It gets straight to the point, stating the function (live ranking) and a key behavior (no auth required). No wasted words.

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

Completeness4/5

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

For a tool with no parameters and an output schema, the description covers the core purpose and a prerequisite (auth). It could mention that it's for the current session or that ranking is by trap, but given the output schema likely provides structure, this is sufficient. Sibling tools are similar but this one is distinct.

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

Parameters4/5

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

The input schema has zero parameters, so baseline is 4. The description correctly adds no additional parameter information because none exist. No value is added, but none is needed.

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

Purpose5/5

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

The description clearly states the tool provides a live speed-trap ranking across the entire field. 'Live' and 'ranking' are precise, differentiating it from historical speed trap tools (get_speed_traps) and comparison tools (get_live_speed_comparison). The abbreviation 'ST' is explained.

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

Usage Guidelines3/5

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

The description notes 'No auth required,' which is a useful usage condition. However, it does not provide guidance on when to prefer this tool over other live speed-related tools, nor does it mention context (e.g., current session only, frequency of updates).

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

get_live_stint_historyA

Live full compound sequence and stint lengths for every driver in track-position order. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations present, but description discloses key behaviors: data is live, for every driver, ordered by track position, and no authentication needed. Lacks potential details like update frequency but sufficient for a read-only tool.

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?

Single sentence, extremely concise, front-loaded with core purpose. No filler.

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

Completeness5/5

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

For a parameterless tool with output schema, description fully covers: data type, ordering, and auth requirements. No gaps.

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

Parameters4/5

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

No parameters, baseline 4. Description adds meaning beyond empty schema by specifying output content (compound sequence, stint lengths) and ordering.

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

Purpose5/5

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

Description clearly states it provides 'full compound sequence and stint lengths for every driver in track-position order'. Verb 'get' is implicit, resource is live stint history, and it distinguishes from siblings by specifying stint-related data.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternative guidance, but 'No auth required' indicates low barrier. Among many live siblings, this is the only one for stint history, so usage context is implied.

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

get_live_time_gapsA

Live gap to leader and interval to car ahead per driver, mode-aware (race gap vs quali/practice fastest). No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided. Description adds mode-awareness and auth requirement, but does not disclose other behavioral traits like caching, real-time update frequency, or response content beyond what is implied.

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?

Two sentences, front-loaded with key functionality and unique feature (mode-aware). No wasted words.

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

Completeness5/5

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

For a zero-parameter tool with output schema, the description covers what data is returned (gap to leader, interval to car ahead) and mode-awareness. Additionally mentions auth requirement. Sufficient for agent to understand and invoke tool.

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

Parameters4/5

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

No parameters in input schema. Schema coverage is 100%, so description does not need to add param info. Baseline of 4 is appropriate for zero-param tool.

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

Purpose5/5

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

Description clearly states it provides live gap to leader and interval to car ahead, mode-aware. Distinguishes from sibling live tools by specifying the exact data type (time gaps).

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?

No explicit guidance on when to use this tool versus alternatives. Only states 'No auth required', but does not mention exclusions or comparisons with sibling tools.

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

get_live_track_status_historyA

Live chronological log of track-status and session-status changes. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. States 'no auth required' but lacks details on data freshness or ordering. Adequate but minimal.

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?

One sentence, 11 words, front-loads purpose. Highly concise.

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

Completeness4/5

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

With no parameters and an output schema, description is sufficient. Could mention ordering or live nature, but overall complete for a simple tool.

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

Parameters4/5

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

No parameters, so baseline is 4. Description adds no parameter info, but none needed.

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

Purpose5/5

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

Description clearly states it returns a chronological log of track-status and session-status changes, distinguishing it from siblings that likely return current status.

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

Usage Guidelines3/5

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

No explicit when-to-use guidance, but the phrase 'chronological log' implies historical data vs. current status, and 'no auth required' is noted. Implicit but not explicit.

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

get_live_tyresA

Live tyre compound, age (laps), and stint number per driver. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

Without annotations, the description bears full responsibility for behavioral disclosure. It only mentions authentication requirements, but omits details like data freshness, rate limits, or any side effects. The read-only nature is implied but not explicit.

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 extremely concise: one sentence listing the data provided plus a separate note on auth. No wasted words, front-loaded with the most important information.

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

Completeness4/5

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

Given the tool has no parameters and an output schema exists, the description is largely complete. It explains the data content and auth requirement. However, it could brief on how the data is organized or any caveats about live data.

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

Parameters4/5

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

The input schema has zero parameters, so schema coverage is 100% and no param documentation is needed. The description adds nothing but also requires nothing extra.

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

Purpose5/5

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

The description clearly states the tool provides 'Live tyre compound, age (laps), and stint number per driver.' It uses a specific verb and resource, and the detail 'per driver' distinguishes it from siblings that might provide aggregate or different data.

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 notes 'No auth required,' which is useful for quick assessment, but provides no guidance on when to use this tool over alternatives like get_tyre_strategy or other live tools. There is no mention of prerequisites or context.

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

get_live_weatherA

Live track weather (air/track temp, humidity, wind, rain). No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns live weather data (air/track temp, humidity, wind, rain) and that no auth is needed. However, it lacks behavioral details like data freshness, rate limits, or any side effects, which would be helpful for an agent.

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 sentence that is perfectly front-loaded with the purpose ('Live track weather') and includes the key additional info about auth. Every word earns its place, and there is no wasted text.

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

Completeness5/5

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

Given the tool has zero parameters and an output schema exists, the description is complete enough. It tells the agent exactly what the tool does and the no-auth requirement, which suffices for invocation. No further details are needed.

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is 100%, so baseline is 4. The description adds value by listing the specific weather metrics (air/track temp, humidity, wind, rain) that are returned, providing semantic meaning beyond the empty schema.

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

Purpose5/5

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

The description states the tool retrieves live track weather including air/track temp, humidity, wind, and rain, with the additional clarity that no authentication is required. This clearly distinguishes it from sibling tools like 'get_weather', which likely covers historical data, and other live data tools.

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

Usage Guidelines3/5

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

The description mentions 'No auth required,' which is a usage condition, but it does not explicitly state when to use this tool over alternatives like 'get_weather' or other live data tools. The context implies it is for current weather, but no direct when-not-to-use or alternative guidance is provided.

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

get_pit_stopsB

Get all pit stops sorted by fastest stop time.

Args: year: Season year race: Race name (partial match) session_type: Session type

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/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 disclose behavioral traits. It only states the output ordering but does not mention what fields are returned, data freshness, or authentication requirements. The output schema exists but is not referenced.

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

Conciseness3/5

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

The description is very short (one sentence plus list), which is concise but at the expense of completeness. It frontloads the purpose but omits necessary context.

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 3 parameters, no annotations, and no output schema details, the description is insufficient. It does not explain valid values for session_type, what constitutes a 'partial match' for race, or how to interpret the 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?

Schema coverage is 0%, so the description must compensate. The Args list adds minimal meaning: 'year: Season year', 'race: Race name (partial match)', 'session_type: Session type'. The partial match hint for race is useful but not enough to fully clarify usage.

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

Purpose5/5

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

The description clearly states the action ('Get'), the resource ('all pit stops'), and the ordering ('sorted by fastest stop time'). This is a specific verb-resource combination that distinguishes it from siblings like get_live_pit_activity.

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?

No guidance on when to use this tool versus alternatives such as get_live_pit_activity for live data. The description does not mention prerequisites, context, or exclusions.

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

get_race_controlC

Get race control messages — flags, penalties, safety cars, investigations.

Args: year: Season year race: Race name (partial match) session_type: Session type category: Filter: 'Flag', 'SafetyCar', 'Drs', 'Other', or empty for all

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
categoryNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states what the tool does but does not disclose any behavioral traits such as data freshness, query limits, or permission requirements. For a retrieval tool, it fails to note whether results are cached or rate-limited.

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 concise with two sentences and an argument list. It is front-loaded with the tool's purpose. No unnecessary words, but could be more structured with bullet points.

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 4 parameters with zero schema descriptions, the description is incomplete. It does not explain what 'partial match' means or provide allowed values for session_type. Although an output schema exists, the input parameter details are lacking.

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 coverage is 0%, so the description must compensate. It provides brief meanings for each parameter (e.g., year: Season year, race: partial match, category: filter with enumerated values). However, it lacks details on accepted formats, partial match behavior, or expected values for session_type. This adds some value but is insufficient.

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 that the tool retrieves race control messages and lists examples like flags, penalties, safety cars, and investigations. This provides a specific verb-resource pair. However, it does not explicitly differentiate from siblings like get_live_race_control, relying on the name for distinction.

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?

There is no guidance on when to use this tool versus alternatives. For example, it does not mention that this tool likely returns historical data while get_live_race_control is for live data. No context for when to use or not use is provided.

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

get_race_infoA

Get session details and list of available data feeds.

Args: year: Season year race: Race name (partial match — 'china', 'monaco', 'silverstone') session_type: 'Race', 'Qualifying', 'Sprint', 'Practice 1', etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Discloses partial match behavior for race name, but no annotations exist; description lacks details on read-only nature, auth, or side effects. Adequate but not rich.

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?

Efficient single-sentence purpose plus bullet-like Args. No wasted words.

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

Completeness4/5

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

Covers main purpose and parameters; output schema exists, so return values are covered. Could mention relation to sibling tools for completeness, but adequate.

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

Parameters4/5

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

Adds meaningful context beyond schema: explains partial match for race and lists example values for session_type. Schema has 0% coverage, so description compensates well.

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

Purpose5/5

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

Clearly states it gets session details and lists data feeds. Differentiates from sibling tools like list_races (which lists races) and live tools.

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?

No guidance on when to use this tool vs alternatives like list_races or live tools. Only provides example race names for partial match.

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

get_speed_trapsC

Get speed trap readings at 4 measurement points (I1, I2, FL, ST) per driver.

Args: year: Season year race: Race name (partial match) session_type: Session type

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the basic functionality. It does not state whether the operation is read-only, idempotent, or has side effects. The description adds minimal behavioral context.

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 concise with a clear first line and structured args list. It is front-loaded with the main action and well-organized, though the parameter descriptions in the docstring are minimal.

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 tool has 3 optional parameters, no annotations, and many siblings, the description is incomplete. It does not explain what the output contains (though an output schema exists), nor does it clarify that all parameters are optional or the partial match behavior for race. More context is needed for an agent to select and invoke the tool correctly.

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

Parameters2/5

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

The input schema has 0% description coverage for parameters, and the description only minimally adds meaning via the args docstring (e.g., 'race: Race name (partial match)'). The description does not fully compensate for the lack of schema descriptions; it omits details like default values or allowed session types.

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 the resource 'speed trap readings at 4 measurement points (I1, I2, FL, ST) per driver', making the tool's purpose specific. However, it does not explicitly distinguish it from sibling tools like get_live_speed_trap or get_speed_comparison, so it's not a perfect 5.

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 such as get_live_speed_trap or get_speed_comparison. It also does not mention any prerequisites or typical scenarios.

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

get_standingsA

Get race classification — positions, gaps, best laps, pit stops, retirements.

Args: year: Season year (2018-2026) race: Race name (partial match — 'china', 'australia', 'monaco') session_type: 'Race', 'Qualifying', 'Sprint', etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It lists outputs (positions, gaps, etc.), which is transparent. However, it doesn't disclose potential side effects, authorization needs, or rate limits. For a read-like operation, it's mostly sufficient.

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 extremely concise with no wasted words. It uses a brief header and bulleted args. Every sentence is necessary.

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

Completeness4/5

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

Given an output schema exists, the description adequately covers the tool's purpose and parameters. It could mention that 'race' might be required (or default behavior), but overall it is complete for a simple classification tool.

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

Parameters4/5

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

The schema has 0% description coverage, so the description must compensate. It provides a year range, partial match hint for race, and example session types. This adds value, though it could be more precise (e.g., exact allowed session_type values).

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

Purpose5/5

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

The description clearly states it retrieves race classification with specific outputs (positions, gaps, etc.). It distinguishes from sibling 'get_championship_standings' by focusing on a single race.

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

Usage Guidelines3/5

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

The purpose implies usage for a specific race's classification, but there is no explicit guidance on when to use this versus siblings like 'get_championship_standings' or 'get_driver_comparison'. The description would benefit from a note that this is per-race, not season-wide.

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

get_telemetryA

Get car telemetry — speed, RPM, throttle, brake, gear, DRS for a specific lap.

Returns ~60-90 samples at ~4Hz. Set lap=0 to see available laps.

Args: driver: Driver TLA (e.g. 'VER', 'HAM') — required year: Season year (2018-2026) race: Race name (partial match) lap: Lap number (0 = show available laps) session_type: Session type

ParametersJSON Schema
NameRequiredDescriptionDefault
lapNo
raceNo
yearNo
driverYes
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries behavioral burden. It discloses output frequency (~60-90 samples at ~4Hz) and lap=0 behavior. However, lacks info on auth, rate limits, or error handling.

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?

Concise: one summary sentence followed by bullet-pointed args. No redundant or unnecessary information. Efficient use of space.

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

Completeness5/5

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

Given the output schema exists, description doesn't need return details. It covers parameter semantics, frequency, and special behavior. Complete for the tool's complexity.

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

Parameters5/5

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

Schema coverage is 0%, so description must compensate. It explains each parameter: driver TLA format, year range, race partial match, lap special case, session type. Adds significant meaning.

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

Purpose5/5

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

The description clearly states the tool retrieves car telemetry data including speed, RPM, throttle, brake, gear, DRS for a specific lap. It distinguishes itself from sibling tools which focus on standings, comparisons, or live data.

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

Usage Guidelines4/5

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

The description provides a usage hint: 'Set lap=0 to see available laps.' It implies telemetry retrieval context, but does not explicitly contrast with alternatives or state when not to use.

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

get_tyre_strategyC

Get tyre strategy for every driver — compound, stint length, new/used tyres.

Args: year: Season year race: Race name (partial match) session_type: Session type

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description lacks behavioral details such as whether the tool is read-only, requires authentication, or has rate limits. The description assumes a simple read operation but does not confirm it.

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 concise, with a clear one-line purpose followed by a parameter list. All information is front-loaded and no unnecessary text. The structure is efficient for quick scanning.

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 presence of an output schema (reducing the need to explain return values), and the simple nature of the tool (3 parameters, no required fields), the description adequately covers purpose and parameter meanings. However, lacking usage context and behavioral details makes it minimally complete.

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 basic semantic meaning to parameters (year as 'Season year', race as 'partial match', session_type as 'Session type') and provides defaults, but does not fully compensate for the 0% schema description coverage. The added value is marginal but exists.

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 'Get tyre strategy for every driver' with specific details (compound, stint length, new/used tyres). The verb and resource are clear, but it does not differentiate from sibling tools like get_live_tyres, leaving potential ambiguity.

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?

No guidance on when to use this tool versus alternatives (e.g., get_live_tyres, get_pit_stops). The description only lists parameters without contextual usage advice.

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

get_weatherB

Get weather conditions during a session — temperature, rain, wind, humidity.

Args: year: Season year race: Race name (partial match) session_type: Session type

ParametersJSON Schema
NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only status, side effects, or data freshness. The description only lists parameters without explaining the operation's nature.

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 extremely concise with a one-line summary followed by a compact Args list. Every sentence is necessary and front-loaded, with no wasted words.

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 lack of annotations and schema descriptions, the description provides basic information about inputs but omits details about output structure, typical usage, or data range. It is minimally adequate for a simple query tool.

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 Args section adds context beyond the input schema by noting that 'race' supports partial match and 'session_type' is a session type. However, the descriptions are minimal and do not fully compensate for the 0% schema description 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 tool retrieves weather conditions (temperature, rain, wind, humidity) during a session. It is specific enough to understand the tool's purpose, but does not differentiate from the sibling tool 'get_live_weather', which may have a similar function.

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, such as 'get_live_weather'. It does not mention prerequisites, typical scenarios, or exclusion criteria.

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

list_racesA

List all races and sessions for a season with dates and session paths.

Args: year: Season year (2018-2026)

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/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 convey behavioral traits. It does not state whether the operation is read-only, requires permissions, or has rate limits. The underlying behavior is implied to be safe (listing), but this is not explicitly confirmed.

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 one concise sentence followed by a compact Args block. Every word is necessary, and the key action and scope are front-loaded.

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

Completeness4/5

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

The description covers the tool's purpose and the single parameter. An output schema exists, so the return format is not required. However, it does not mention any prerequisites or edge cases, but for a straightforward listing tool, this is adequate.

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

Parameters4/5

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

The input schema has 0% description coverage, but the description compensates by documenting the 'year' parameter with an allowed range (2018-2026). This adds meaningful context beyond the schema's integer type. No additional details like format or examples are given.

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

Purpose5/5

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

The description clearly states the tool lists 'all races and sessions for a season with dates and session paths,' which is a specific verb and resource. It distinguishes itself from siblings that focus on individual race details or live data.

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?

No guidance is provided on when to use this tool versus alternatives like 'list_seasons' or other race-specific tools. There is no mention of prerequisites, filters, or contexts where another tool would be more appropriate.

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

list_seasonsA

List all available F1 seasons (2018-present).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Discloses the data range (2018-present) and it's a read-only list. No annotations, but description adequately conveys safety and behavior for a simple listing tool.

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?

Single, concise sentence with no extraneous information. Efficient and front-loaded.

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

Completeness5/5

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

With zero parameters and an output schema existing, the description fully covers the tool's purpose and behavior. No additional information needed.

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

Parameters4/5

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

No parameters, so parameter semantics are irrelevant. Baseline score of 4 applies as no parameter information is needed.

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

Purpose5/5

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

Clear action and resource: listing available F1 seasons with a date range constraint (2018-present). Distinguishes from sibling tools which focus on race-specific or live data.

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

Usage Guidelines3/5

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

No explicit usage guidelines or exclusions, but the purpose is simple enough that context is implied. Does not mention when not to use or alternatives.

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

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct data subset: standings, driver comparison, lap times, telemetry, live positions, etc. Even similar tools are differentiated by time scope (historical vs live) and specific data (e.g., get_standings vs get_championship_standings). Descriptions are detailed and clarify boundaries.

Naming Consistency5/5

All tool names follow a clear verb_noun pattern (get_*, list_*), consistently using snake_case. Live tools are prefixed with 'get_live_', making the pattern predictable and easy to navigate.

Tool Count4/5

30 tools is slightly high but appropriate for the breadth of F1 data coverage, including historical, live, and telemetry. A few could potentially be merged (e.g., time gaps and positions) but the current granularity aids agent selection.

Completeness5/5

The tool set covers the full lifecycle of F1 data: standings, race results, lap times, pit stops, telemetry, weather, and real-time session updates. No obvious gaps for its stated domain; both historical (1950+) and live data are represented.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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
    Enables interaction with Formula 1 data through LLM interfaces like Claude. Provides access to F1 information including circuits, constructors, drivers, grand prix, manufacturers, races, and seasons.
    Apache 2.0
  • 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
    Not graded
    quality
    D
    maintenance
    Enables Formula 1 data analysis through natural language, providing tools like track dominance, lap time analysis, and team performance comparisons.
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    A local MCP server that gives Claude (or any MCP-compatible AI client) access to Formula 1 race data. Load any session from 2018 onwards, ask questions in natural language, and get answers backed by real telemetry, timing, and strategy data.
    17
    1
    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/darshjoshi/pitwall'

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