Koskamo

Kerbside F1 MCP

A public, read-only MCP server providing Formula 1 statistics, including standings, title math, teammate comparisons, and historical records. It allows AI assistants to query data with source links, supporting tools for championship analysis, driver milestones, and hypothetical scoring systems without requiring user authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Kerbside F1 MCP logo, by KerbsideVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-08Operated by Kerbside
MCP endpoint (Streamable HTTP)
https://kerbside.racing/api/mcp
Vendor documentation

What its tools do

10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

10 of 10 have a description · 10 of 10 declare behavior hints · 6 of 9 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to kerbside.racing ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Query current championship standings and points margins
  • Compare teammate performance head-to-head across seasons
  • Check if drivers or constructors can still win the title
  • Retrieve all-time driver records and career milestones

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
kerbside 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
10 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Formula 1 statistics from Kerbside (kerbside.racing), 1950 to the latest race. Resolve names with `search` first. Every answer carries `definitions` (what each number counts), `as_of` (the latest race included), the Kerbside `url` it came from, and a licence: data CC BY-NC-SA 4.0 from Jolpica (Ergast) and OpenF1. Cite the `url` when you use a figure.

Tools

10 advertised

search — Find drivers, teams and races
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolve a name to Kerbside drivers, teams (marques) and races, with their Kerbside URLs. A driver slug is the last part of its URL (/drivers/<slug>); other tools take that slug.

search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 100,
      "minLength": 2,
      "description": "A name, e.g. \"Hamilton\", \"Brawn\", \"Monaco 2008\""
    }
  }
}
search annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
championship_standings — Championship standings after any round
Advertised by the server during the last successful anonymous check.
Advertised read-only

Drivers' championship standings of a season after a given round (default: the latest round with results), with the points each driver scored in that round. The final round of a finished season is the final championship table: the champion and the margin.

championship_standings input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "season"
  ],
  "properties": {
    "round": {
      "type": "integer",
      "maximum": 30,
      "minimum": 1,
      "description": "Round number; omit for the latest"
    },
    "season": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1950,
      "description": "Championship year, e.g. 2008"
    }
  }
}
championship_standings annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
championship_math — Who can still win the title
Advertised by the server during the last successful anonymous check.
Advertised read-only

For the current season: each driver's and constructor's points, the most they can still score in the remaining races (today's points table, sprints included), and whether they can still win the title.

championship_math input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
championship_math annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
power_ranking — Driver Power Ranking for a season
Advertised by the server during the last successful anonymous check.
Advertised read-only

Kerbside's Power Score ranking of a season's drivers (default weights), with the four component scores. A site-defined metric: the definition is returned with the data.

power_ranking input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "season"
  ],
  "properties": {
    "season": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1950,
      "description": "Championship year, e.g. 2008"
    }
  }
}
power_ranking annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
teammate_head_to_head — Teammate head-to-head
Advertised by the server during the last successful anonymous check.
Advertised read-only

Qualifying and race head-to-head between two drivers who were teammates (from 1981), overall and per season, for each team they shared.

teammate_head_to_head input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "driver_a",
    "driver_b"
  ],
  "properties": {
    "driver_a": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 80,
      "minLength": 2,
      "description": "Kerbside driver slug, e.g. \"lewis-hamilton\" (use the search tool)"
    },
    "driver_b": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 80,
      "minLength": 2,
      "description": "Kerbside driver slug, e.g. \"lewis-hamilton\" (use the search tool)"
    }
  }
}
teammate_head_to_head annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
peak_finder — Best spell of consecutive seasons
Advertised by the server during the last successful anonymous check.
Advertised read-only

Drivers ranked by their best run of 3, 5 or 10 consecutive seasons (every season raced), by points, wins, podiums or win rate.

peak_finder input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "top": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    },
    "metric": {
      "enum": [
        "points",
        "wins",
        "podiums",
        "win_rate"
      ],
      "type": "string",
      "default": "points"
    },
    "window": {
      "anyOf": [
        {
          "type": "number",
          "const": 3
        },
        {
          "type": "number",
          "const": 5
        },
        {
          "type": "number",
          "const": 10
        }
      ],
      "default": 3,
      "description": "Consecutive seasons"
    }
  }
}
peak_finder annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
driver_milestones — Upcoming driver milestones
Advertised by the server during the last successful anonymous check.
Advertised read-only

Active drivers close to a round-number career milestone (e.g. 100th podium) or an all-time team record, with how far off they are.

driver_milestones input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "driver": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 80,
      "minLength": 2,
      "description": "Only this driver (slug); omit for every milestone that is close"
    }
  }
}
driver_milestones annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
lap1_performance — Lap 1 positions gained and lost
Advertised by the server during the last successful anonymous check.
Advertised read-only

Per driver, the average places gained or lost on the opening lap over a season's races and sprints (seasons with position data: 2023 on).

lap1_performance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "season"
  ],
  "properties": {
    "season": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1950,
      "description": "Championship year, e.g. 2008"
    }
  }
}
lap1_performance annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
what_if — Season under another points system
Advertised by the server during the last successful anonymous check.
Advertised read-only

A season's drivers' championship re-scored with another points system, beside the actual standings. Systems, by points from 1st down: current 25-18-15-12-10-8-6-4-2-1 + fastest lap; classic 10-6-4-3-2-1; pre2003 10-8-6-5-4-3-2-1; winner_takes_all 25; linear 20…1.

what_if input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "season"
  ],
  "properties": {
    "season": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1950,
      "description": "Championship year, e.g. 2008"
    },
    "system": {
      "enum": [
        "current",
        "classic",
        "pre2003",
        "winner_takes_all",
        "linear"
      ],
      "type": "string",
      "default": "current"
    }
  }
}
what_if annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_record — All-time driver records
Advertised by the server during the last successful anonymous check.
Advertised read-only

One all-time driver record board from /records, top N with every driver tied at the cut.

get_record input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "record"
  ],
  "properties": {
    "top": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    },
    "record": {
      "enum": [
        "championships",
        "wins",
        "podiums",
        "poles",
        "points",
        "fastest_laps",
        "races",
        "seasons",
        "win_rate",
        "podium_rate",
        "best_circuit_wins",
        "most_starts_single_team",
        "youngest_win",
        "oldest_win"
      ],
      "type": "string"
    }
  }
}
get_record annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
972 ms
95th percentile latency
972 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 972 ms · metadata changed · 10 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http kerbside-f1-mcp https://kerbside.racing/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add kerbside-f1-mcp --url https://kerbside.racing/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable kerbside-f1-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "kerbside-f1-mcp": {
      "url": "https://kerbside.racing/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "kerbside-f1-mcp": {
      "type": "streamableHttp",
      "url": "https://kerbside.racing/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start kerbside-f1-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "kerbside-f1-mcp": {
      "type": "http",
      "url": "https://kerbside.racing/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http kerbside-f1-mcp https://kerbside.racing/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://kerbside.racing/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "kerbside-f1-mcp": {
      "serverUrl": "https://kerbside.racing/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Kerbside F1 MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Kerbside F1 MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing