io.github.darshjoshi/pitwall
Pitwall is an F1 data MCP server that acts as an F1 race engineer, providing access to real-time and historical Formula 1 data without requiring API keys.
Historical Data: Access race results and championship standings from 1950 to present, and list available seasons (2018–present).
Session & Calendar: Retrieve full race calendars, session details, and available data feeds for any race weekend.
Race Results: Get full race classification with positions, gaps, best laps, pit stops, and retirements. Retrieve lap-by-lap times for drivers, filterable by lap range.
Car Telemetry: Access detailed telemetry (speed, RPM, throttle, brake, gear, DRS) for specific laps at ~4Hz.
Strategy & Pit Stops: Analyze tyre strategies (compound, stint lengths, new/used) and pit stop details (fastest stops).
Race Control & Weather: View race control messages (flags, penalties, safety cars, investigations) and weather conditions (temperature, rain, wind, humidity). Also get speed trap readings at multiple track points per driver.
Driver Comparison: Compare two drivers head-to-head on position, pace, strategy, and pit stops.
Live Timing (No Auth Required): During live sessions, access session status, live running order with gaps, lap and sector times, tyre and stint info, race control messages, weather, speed trap rankings, mini-sector statuses, and more.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.darshjoshi/pitwallWho won the 2025 Australian GP?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Quick Start
Claude Code — one command, all 79 tools:
claude mcp add pitwall -- uvx --from "f1pitwall[full]" f1pitwallThen 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 f1pitwallpip install "f1pitwall[full]" # or just f1pitwall for lite
claude mcp add pitwall -- f1pitwallgit 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.pyInstall 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@pitwallClaude 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 flagsQuestion | Tool Used |
"Who won the Chinese GP?" |
|
"What was Verstappen's speed on lap 25?" |
|
"Compare Hamilton vs Leclerc" |
|
"What tyres did everyone use?" |
|
"Fastest pit stop at Australia 2025?" |
|
"When was the safety car?" |
|
"Was it raining during the race?" |
|
"Top speeds at Monza 2024?" |
|
"Norris's lap times in the race" |
|
"Who won the 2005 championship?" |
|
"Plot Verstappen vs Hamilton speed trace" |
|
"Show me the gear shift map at Monaco" |
|
"Who gained the most positions?" |
|
"Overtakes in the race" |
|
"Compare Verstappen lap 5 vs lap 50" |
|
"Ferrari head-to-head in qualifying" |
|
"Deleted laps in qualifying" |
|
"Gap to leader throughout the race" |
|
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 |
| Available seasons (2018-present) |
| Full season calendar with dates |
| Session details and available data feeds |
| Race classification — positions, gaps, best laps, pits |
| Lap-by-lap times, filterable by driver and lap range |
| Speed, RPM, throttle, brake, gear, DRS for a specific lap |
| Compound, stint length, new/used for every driver |
| All pit stops sorted by fastest |
| Flags, penalties, safety cars, investigations |
| Air/track temp, rain, humidity, wind |
| Speed at 4 measurement points per driver |
| Head-to-head: position, pace, strategy, pit stops |
| Race results from 1950 to present |
| Driver/constructor championships from 1950+ |
Live Timing (lite — no auth, reads F1's real-time SignalR feed during a session)
Tool | Description |
| Session name, flag/track status, lap count |
| Live running order with gap + interval |
| Last + best lap per driver |
| Sector times + speed trap for one driver |
| Gap to leader + interval to car ahead (mode-aware) |
| Personal-best sectors + best lap, ranked |
| Speed-trap (ST) ranking across the field |
| Best speed at I1/I2/FL/ST per driver |
| Compound, age (laps), stint number per driver |
| Full compound sequence per driver |
| Pit count + in-pit / out-lap flags |
| Air/track temp, humidity, wind, rain |
| Flags, penalties, track-limit deletions, SC/VSC |
| Time remaining in the session |
| Chronological track/session status log |
| Mini-sector status (green/purple/yellow) per driver |
FastF1 Tools (requires FastF1)
Category | Tools |
Visual Plots |
|
Telemetry Analysis |
|
Lap Analysis |
|
Strategy |
|
Race Analysis |
|
Pit Stops |
|
Driver & Team |
|
Track & Safety |
|
Speed & Position |
|
History |
|
Live (auth-gated) |
|
Session |
|
Setup
Claude Code:
claude mcp add pitwall -- python3 /absolute/path/to/pitwall.pyClaude 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 pythonThis 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.pyClaude Desktop — add to %APPDATA%\Claude\claude_desktop_config.json:
To open this folder, press
Win + R, type%APPDATA%\Claude, and hit Enter. If theClaudefolder orclaude_desktop_config.jsondoesn'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 ispython(notpython3) on Windows.
Claude Code:
claude mcp add pitwall -- python3 /absolute/path/to/pitwall.pyClaude 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 |
2018-present | Telemetry, timing, strategy, pit stops, weather, race control | |
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 3000Live 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.pyThis 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 PrixDriver 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 = LindbladProject Files
File | Purpose |
| MCP server — 79 tools, auto-degrades to 30 without FastF1 |
| Raw SignalR Core WebSocket client for live race data |
| Zlib decompression for CarData.z / Position.z |
| Keyframe + delta state management for F1's incremental format |
| All 20 SignalR topics with auth/compression metadata |
| F1 TV token setup — browser-based OAuth flow |
Contributing
Found a bug? Want to add a tool? Contributions are welcome.
Fork the repo
Create a feature branch
Make your changes
Run the test suite:
python3 tests/pitwall_tool_validation.pyOpen 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
License
MIT
Available Tools
30 toolsget_championship_standingsB
Get championship standings from 1950 to present.
Args: year: Season year (0 = current) standings_type: 'driver' or 'constructor'
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| standings_type | No | driver |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| driver_a | Yes | ||
| driver_b | Yes | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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')
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| driver | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| driver | No | ||
| lap_end | No | ||
| lap_start | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| category | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lap | No | ||
| race | No | ||
| year | No | ||
| driver | Yes | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Turn Claude or ChatGPT into a cycling coach that plans your week, grades it, and adapts. Free beta.
AI YouTube analyst in Claude for creators: audit, fix, decide what to make next, grow subs.
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Claude Code / MCP skills for the dev pipeline: discover, spec, design, build, ship, operate.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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
- AlicenseAqualityCmaintenanceMCP 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.21MIT
- AlicenseNot gradedqualityDmaintenanceEnables Formula 1 data analysis through natural language, providing tools like track dominance, lap time analysis, and team performance comparisons.Apache 2.0
- AlicenseAqualityCmaintenanceA 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.171MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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