Anonymous read-only Formula 1 tools, resources, prompts, completion, and interactive dashboard.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compare two Formula 1 drivers or constructors in one season using sourced standings and explicitly described calculations.
First driver or constructor name to compare.
Formula 1 season year.
Second driver or constructor name to compare.
Compare two drivers or two constructors.
Compare two Formula 1 drivers or constructors in one season using sourced standings and explicitly described calculations.
| Argument | Type | Description |
|---|---|---|
| left* | string | First driver or constructor name to compare. |
| year* | integer | Formula 1 season year. |
| right* | string | Second driver or constructor name to compare. |
| competitorType* | string | Compare two drivers or two constructors. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"competitorType",
"left",
"right",
"year"
],
"properties": {
"left": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "First driver or constructor name to compare."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"right": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Second driver or constructor name to compare."
},
"competitorType": {
"enum": [
"driver",
"constructor"
],
"type": "string",
"description": "Compare two drivers or two constructors."
}
},
"description": "Compare two drivers or two constructors within one Formula 1 season.",
"additionalProperties": false
}Get circuit metadata and normalized track geometry for a race weekend selected by meeting key, round, race name, or slug.
| Argument | Type | Description |
|---|---|---|
| slug | string | Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix. |
| year* | integer | Formula 1 season year. |
| round | integer | Championship round number for the season. |
| raceName | string | Human-friendly Grand Prix or race name, matched case-insensitively. |
| meetingKey | integer | OpenF1 meeting key for the race weekend. |
{
"type": "object",
"oneOf": [
{
"required": [
"meetingKey"
]
},
{
"required": [
"round"
]
},
{
"required": [
"raceName"
]
},
{
"required": [
"slug"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"year"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 160,
"minLength": 1,
"description": "Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"round": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Championship round number for the season."
},
"raceName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Human-friendly Grand Prix or race name, matched case-insensitively."
},
"meetingKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 meeting key for the race weekend.",
"exclusiveMinimum": 0
}
},
"description": "Select one race weekend by season and exactly one of meetingKey, round, raceName, or slug.",
"additionalProperties": false
}Get one complete historical Formula 1 race classification by season and championship round. Use only for a single race; for two or more races, call get_f1_historical_race_results once instead.
| Argument | Type | Description |
|---|---|---|
| year* | integer | Formula 1 season year. |
| round* | integer | Championship round number in the historical season. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"round",
"year"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"round": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Championship round number in the historical season."
}
},
"description": "Select a historical Formula 1 race by season and championship round.",
"additionalProperties": false
}Get 2 to 8 complete historical Formula 1 race classifications in one consolidated request, with per-race sources and bounded partial failures. Use once for multi-race questions instead of repeating get_f1_historical_race_result.
| Argument | Type | Description |
|---|---|---|
| races* | array | Two to eight historical races to retrieve in one request. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"races"
],
"properties": {
"races": {
"type": "array",
"items": {
"type": "object",
"required": [
"round",
"year"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"round": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Championship round number in the historical season."
}
},
"description": "Select a historical Formula 1 race by season and championship round.",
"additionalProperties": false
},
"maxItems": 8,
"minItems": 2,
"description": "Two to eight historical races to retrieve in one request.",
"uniqueItems": true
}
},
"description": "Select 2 to 8 historical Formula 1 races for one consolidated multi-race lookup.",
"additionalProperties": false
}Get the latest explicitly timestamped status for the current or selected Formula 1 session. Returns unavailable rather than implying stale data is live.
| Argument | Type | Description |
|---|---|---|
| year | integer | Season to inspect. Defaults to the current UTC season. |
| meetingKey | integer | Optional OpenF1 meeting key. Omit to discover the current live session. |
| sessionKey | integer | Optional OpenF1 session key. Requires meetingKey when supplied. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Season to inspect. Defaults to the current UTC season."
},
"meetingKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Optional OpenF1 meeting key. Omit to discover the current live session.",
"exclusiveMinimum": 0
},
"sessionKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Optional OpenF1 session key. Requires meetingKey when supplied.",
"exclusiveMinimum": 0
}
},
"description": "Inspect the current Formula 1 session or select one by season, meeting key, and session key.",
"additionalProperties": false
}Find the next Formula 1 session or race weekend from a UTC timestamp, including an event already in progress.
| Argument | Type | Description |
|---|---|---|
| from | string | UTC timestamp to search from. Defaults to the current time. |
| year | integer | Season to search. Defaults to the season containing the search timestamp, then the following season if needed. |
| level | string | Return the next individual session or the next race weekend. Defaults to session. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"from": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"description": "UTC timestamp to search from. Defaults to the current time."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Season to search. Defaults to the season containing the search timestamp, then the following season if needed."
},
"level": {
"enum": [
"session",
"raceWeekend"
],
"type": "string",
"default": "session",
"description": "Return the next individual session or the next race weekend. Defaults to session."
}
},
"description": "Select the next Formula 1 session or race weekend from a UTC point in time.",
"additionalProperties": false
}Get a published F1DB race, qualifying, or sprint classification by season and a friendly race selector, without requiring meeting or session keys.
| Argument | Type | Description |
|---|---|---|
| slug | string | Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix. |
| year* | integer | Formula 1 season year. |
| round | integer | Championship round number for the season. |
| raceName | string | Human-friendly Grand Prix or race name, matched case-insensitively. |
| meetingKey | integer | OpenF1 meeting key for the race weekend. |
| classification | string | Published F1DB classification to return. Defaults to the Grand Prix race. |
{
"type": "object",
"oneOf": [
{
"required": [
"meetingKey"
]
},
{
"required": [
"round"
]
},
{
"required": [
"raceName"
]
},
{
"required": [
"slug"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"year"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 160,
"minLength": 1,
"description": "Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"round": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Championship round number for the season."
},
"raceName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Human-friendly Grand Prix or race name, matched case-insensitively."
},
"meetingKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 meeting key for the race weekend.",
"exclusiveMinimum": 0
},
"classification": {
"enum": [
"race",
"qualifying",
"sprint"
],
"type": "string",
"default": "race",
"description": "Published F1DB classification to return. Defaults to the Grand Prix race."
}
},
"description": "Select one race weekend and its race, qualifying, or sprint classification using a friendly selector.",
"additionalProperties": false
}Get a structurally spoiler-safe race-weekend briefing containing schedule and venue context but no classifications, winners, podiums, or result fields.
| Argument | Type | Description |
|---|---|---|
| slug | string | Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix. |
| year* | integer | Formula 1 season year. |
| round | integer | Championship round number for the season. |
| raceName | string | Human-friendly Grand Prix or race name, matched case-insensitively. |
| meetingKey | integer | OpenF1 meeting key for the race weekend. |
{
"type": "object",
"oneOf": [
{
"required": [
"meetingKey"
]
},
{
"required": [
"round"
]
},
{
"required": [
"raceName"
]
},
{
"required": [
"slug"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"year"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 160,
"minLength": 1,
"description": "Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"round": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Championship round number for the season."
},
"raceName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Human-friendly Grand Prix or race name, matched case-insensitively."
},
"meetingKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 meeting key for the race weekend.",
"exclusiveMinimum": 0
}
},
"description": "Select one race weekend by season and exactly one of meetingKey, round, raceName, or slug.",
"additionalProperties": false
}Get one public Formula 1 race weekend by season and exactly one friendly selector: meeting key, round, race name, or slug.
| Argument | Type | Description |
|---|---|---|
| slug | string | Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix. |
| year* | integer | Formula 1 season year. |
| round | integer | Championship round number for the season. |
| raceName | string | Human-friendly Grand Prix or race name, matched case-insensitively. |
| meetingKey | integer | OpenF1 meeting key for the race weekend. |
{
"type": "object",
"oneOf": [
{
"required": [
"meetingKey"
]
},
{
"required": [
"round"
]
},
{
"required": [
"raceName"
]
},
{
"required": [
"slug"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"year"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 160,
"minLength": 1,
"description": "Race Calendar race slug, such as round-6-miami-grand-prix or miami-grand-prix."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"round": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Championship round number for the season."
},
"raceName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Human-friendly Grand Prix or race name, matched case-insensitively."
},
"meetingKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 meeting key for the race weekend.",
"exclusiveMinimum": 0
}
},
"description": "Select one race weekend by season and exactly one of meetingKey, round, raceName, or slug.",
"additionalProperties": false
}Get the verified public Formula 1 schedule for a season, including UTC session times, freshness, results, and canonical links.
| Argument | Type | Description |
|---|---|---|
| year* | integer | Formula 1 season year. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"year"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
}
},
"description": "Select one Formula 1 season.",
"additionalProperties": false
}Get the published F1DB classification for one Formula 1 session by season, meeting key, and session key, with positions and available result details.
| Argument | Type | Description |
|---|---|---|
| year* | integer | Formula 1 season year. |
| meetingKey* | integer | OpenF1 meeting key for the race weekend. |
| sessionKey* | integer | OpenF1 session key. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"meetingKey",
"sessionKey",
"year"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"meetingKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 meeting key for the race weekend.",
"exclusiveMinimum": 0
},
"sessionKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 session key.",
"exclusiveMinimum": 0
}
},
"description": "Select one Formula 1 session by season, meeting key, and session key.",
"additionalProperties": false
}Get the public Formula 1 driver and constructor standings for a season with canonical source links.
| Argument | Type | Description |
|---|---|---|
| year* | integer | Formula 1 season year. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"year"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
}
},
"description": "Select one Formula 1 season.",
"additionalProperties": false
}Get the published F1DB starting grid for one Formula 1 session by season, meeting key, and session key; use session results for the final classification.
| Argument | Type | Description |
|---|---|---|
| year* | integer | Formula 1 season year. |
| meetingKey* | integer | OpenF1 meeting key for the race weekend. |
| sessionKey* | integer | OpenF1 session key. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"meetingKey",
"sessionKey",
"year"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950,
"description": "Formula 1 season year."
},
"meetingKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 meeting key for the race weekend.",
"exclusiveMinimum": 0
},
"sessionKey": {
"type": "integer",
"maximum": 9007199254740991,
"description": "OpenF1 session key.",
"exclusiveMinimum": 0
}
},
"description": "Select one Formula 1 session by season, meeting key, and session key.",
"additionalProperties": false
}Get recent public schedule, standings, and result changes after an optional timestamp or cursor.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum changes to return. Defaults to 20 and never exceeds 50. |
| since | string | Only return changes after this UTC timestamp. |
| cursor | string | Opaque continuation cursor returned by an earlier updates request. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Maximum changes to return. Defaults to 20 and never exceeds 50."
},
"since": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"description": "Only return changes after this UTC timestamp."
},
"cursor": {
"type": "string",
"maxLength": 1000,
"description": "Opaque continuation cursor returned by an earlier updates request."
}
},
"description": "Read a bounded page of recent public Formula 1 changes.",
"additionalProperties": false
}Search the Formula 1 history index for drivers, teams, circuits, and races with bounded, cursor-based results.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum results to return. Defaults to 10 and never exceeds 20. |
| query* | string | Driver, team, circuit, or race text to find. |
| types | array | Optional unique entity types to include in the search. |
| cursor | string | Opaque continuation cursor returned by an earlier history search. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "Maximum results to return. Defaults to 10 and never exceeds 20."
},
"query": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Driver, team, circuit, or race text to find."
},
"types": {
"type": "array",
"items": {
"enum": [
"driver",
"team",
"circuit",
"race"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Optional unique entity types to include in the search.",
"uniqueItems": true
},
"cursor": {
"type": "string",
"maxLength": 1000,
"description": "Opaque continuation cursor returned by an earlier history search."
}
},
"description": "Search the bounded Formula 1 history index.",
"additionalProperties": false
}