Skip to main content
Glama
f1verse MCP Server

f1verse MCP Server

by jinsim

Championship win probability, and who is still mathematically alive.

f1_title_race
Read-onlyIdempotent

Calculate Formula 1 championship win probabilities and identify drivers mathematically eliminated by simulating remaining races from measured finishing positions and retirement rates.

Instructions

Championship win probability, and who is still mathematically alive. Two answers to 'who wins the title', kept deliberately apart. First the arithmetic: maximum points still available, and who is therefore out for certain — a fact, not a forecast. Then the projection: the rest of the season simulated thousands of times, resampling each driver from the positions they have actually finished in, with retirements at their measured rate. Every run first re-draws the driver's own level, so a short season widens the answer rather than hiding inside it. Returns the assumptions and sample sizes it stands on; the same seed returns the same numbers.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "year": "<year>"
    },
    "name": "f1_title_race"
  }
}

Input Schema

NameRequiredDescriptionDefault
runsNoSimulated seasons. More is steadier and slower.
yearYesSeason year, e.g. 2026. Race data 2023+.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.15.0
    • addedInput schema / properties / year / minimum
      Added value: +1950
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "result": {
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond them by disclosing the simulation method, resampling from observed finish positions, measured retirement rates, per-run re-drawing of driver level, and that assumptions and sample sizes are returned. The one flaw is the closing claim that 'the same seed returns the same numbers' — no seed parameter exists in the schema, so this promises a control the caller cannot actually set.

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

Conciseness3/5

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

The first sentence is well front-loaded and the fact-versus-forecast split is a useful structure. However, sentences like 'a short season widens the answer rather than hiding inside it' are evocative rather than informative, and the dangling seed reference is wasted text that cannot be acted on.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the description appropriately spends its words on methodology, assumptions, and the fact/projection distinction. It is nearly complete for a simulation tool; the missing pieces are explicit routing advice versus f1_standings and the mismatch between the mentioned seed and the actual parameter set.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented, and the description adds little parameter-specific meaning beyond reinforcing that 'runs' drives simulation stability and that the year scopes the season. The methodology prose indirectly justifies what 'runs' controls, but no format, bound, or default guidance is added beyond the schema.

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

Purpose4/5

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

The description clearly states the resource and the two-part deliverable: arithmetic elimination (max points, who is out) and a simulated win probability. It conceptually separates itself from standings-style siblings by framing 'two answers to who wins the title', but it never names a sibling such as f1_standings or f1_season_status, so the differentiation is implicit rather than explicit.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the agent can infer 'use this when you want a title projection or a definitive elimination check'. There is no explicit when-not or 'use X instead for current points', which matters given that f1_standings and f1_season_status are adjacent concepts.

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