MCP.Market

F1verse MCP server

by jinsim·io.github.jinsim/f1verse·v0.14.0

Formula 1 race data with the domain rules applied: stints, tyre wear, publish-safety. Zero deps.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
New

0 stars27 downloads/wk

Reviews

Write one

Nobody has reviewed F1verse yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

F1verse tools

No tool declarations could be read from the package source. They show once the server is installed.

Public scan report

scanner v0.1.10 · 2026-10-29 · same rubric, same numbers if you re-run it

no findings
  • Code scan37 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 59 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How F1verse compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
88/100
higher than 75% of 48,243 servers
Downloads a week
27
more than 14% of 12,306 servers with a package

Install F1verse in Claude Code, Cursor or VS Code

claude mcp add f1verse -- uvx f1verse
Add to Cursor

What the publisher says

From the F1verse repository's README, as published. We do not edit it. Read it on GitHub

f1verse

Documentation · MCP server · llms.txt · Changelog · Contributing · Security · License

The story layer for Formula 1 data. Data libraries fetch and tidy — f1verse tells you what happened: lead changes, laps led, event timelines, stint strategy, race pace — and what happens next: title probabilities from a season simulation that ships with its own backtest.

Zero dependencies. Standard library only. Full live-timing coverage from 2023; lap-by-lap racing back to 1996, pit stops to 2011, and results, qualifying and standings to 1950 — each answer stating which era it came from and what that era does not hold.

pip install f1verse
import f1verse

race = f1verse.load(2026, 12)        # year, round — no other library needed

race.laps_led()      # {'ANT': 32, 'NOR': 31, 'HAM': 9}
race.leader_runs()   # [{'abbr': 'NOR', 'from': 1, 'to': 4}, ...]
race.results()[7]    # {'abbr': 'HUL', 'gap': '+1 LAP', ...}
race.race_pace()     # median pace — pit/SC/VSC laps excluded by default
race.story()         # one call, whole story, plain JSON

race.championship_prediction()   # per-lap "if it ended now" title projection
race.team_radio()                # timestamped clip URLs (nothing downloaded)

f1verse.championship_projection(2026)   # who wins the title, 20,000 seasons
f1verse.title_scenarios(2026)           # and who is mathematically out

Give it to an AI agent

<!-- mcp-name: io.github.jinsim/f1verse -->

f1verse ships its own MCP server. No install step, no dependencies:

{"mcpServers": {"f1verse": {"command": "uvx", "args": ["--from", "f1verse", "f1verse-mcp"]}}}

That is the whole setup — the server is standard library only, so it starts and answers tools/list in about 140 ms instead of unpacking a scientific stack into a throwaway environment first. Eight tools, not eighty: a model picks the right one.

For any other LLM pipeline, the library describes itself:

f1verse.tools()                  # MCP-dialect JSON schemas
f1verse.tools("openai")          # function-calling dialect
f1verse.call_tool("f1_race_story", {"year": 2026, "round": 12})

Errors are written for the caller that has to fix them without reading this page:

f1verse.call_tool("f1_race_summary", {})
# LookupError: unknown tool 'f1_race_summary' — available: f1_race_story, ...
f1verse.load_session(2026, 12, "Qualy")
# LookupError: ... listing the sessions that weekend actually had

The whole weekend, not just the race

f1verse.sessions(2026, 12)
# Practice 1 · Sprint Qualifying · Sprint · Qualifying · Race

q = f1verse.load_session(2026, 12, "Qualifying")
q.results()[0]
# {'abbr': 'NOR', 'q1': 72.695, 'q1_gap': 0.085, 'q3': 71.163, 'q3_gap': 0.0,
#  'best': 71.163, 'eliminated_in': None, ...}

q.segments()["q1"]
# {'fastest': 'PIA', 'advanced': [...16 codes...], 'eliminated': [...],
#  'cut_margin': 0.022}

Each kind gets the classification it actually has. Qualifying gaps are to the fastest lap of that segment — the pole-sitter above was 0.085 s off in Q1 — because a single "gap to leader" column would misreport the session. A sprint loads as a Race; practice is a best-lap table.

Is this data safe to publish?

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

F1verse: common questions

Is F1verse MCP server safe?
Yes, by our scan: it is graded A (88/100). Read the F1verse safety report
How do I install F1verse?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does F1verse need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is F1verse maintained?
The last commit was 66 days ago (2026-09-01). The latest release is v0.14.0.
How does F1verse compare with other MCP servers?
safety score 88/100 (higher than 75% of 48,243 servers); downloads a week 27 (more than 14% of 12,306 servers with a package). Full comparison.