npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

onside-football-mcp

v0.2.0

Published

MCP server exposing Onside's World Cup 2026 AI win-probability model, fantasy picks, live scores and Monte Carlo champion simulator. Plug-and-play for Claude Desktop, Cursor, Windsurf and any MCP-compatible client. Stdio + streamable-HTTP transports.

Readme

onside-football-mcp

MCP server exposing Onside's World Cup 2026 AI model, fantasy picks, live scores, and the 10,000-run Monte Carlo champion simulator. Plug-and-play for Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.

npm version License: MIT MCP Compatible MCP Registry Smithery Glama

Ask your AI assistant:

"Who does Onside's model favour to win World Cup 2026?" "What are the upset risks for matchday 1?" "Best captain pick for FIFA World Cup Fantasy MD2?" "Compare England and Argentina at WC 2026." "What matches are on right now?"

…and it'll answer using Onside's live data — the same engine that runs onsidearena.com/world-cup-2026.


Quick start (30 seconds)

Claude Desktop

Add this to your claude_desktop_config.json (see Claude's docs for the file location):

{
  "mcpServers": {
    "onside-football": {
      "command": "npx",
      "args": ["-y", "onside-football-mcp"]
    }
  }
}

Restart Claude Desktop. Open a new chat. Ask "Who wins World Cup 2026 according to the Onside model?" and watch it call get_wc_champion_odds.

Cursor

In Cursor → Settings → MCP → "Add new MCP server" → paste:

{
  "onside-football": {
    "command": "npx",
    "args": ["-y", "onside-football-mcp"]
  }
}

Windsurf / any STDIO client

Same npx -y onside-football-mcp command. The server speaks JSON-RPC over stdin/stdout (the MCP standard).

Manual install

npm install -g onside-football-mcp
onside-football-mcp

(You'll need this if your client doesn't auto-resolve npx commands.)

Hosted / remote (Streamable HTTP transport, v0.2.0+)

If you need to run the server remotely — for example to register it with OpenAI's ChatGPT App Directory, or to share a single instance with a team — install and run the HTTP variant:

npm install -g onside-football-mcp
PORT=8080 onside-football-mcp-http

The server exposes:

| Path | Method | Purpose | | ----------- | ------ | ------------------------------------------------- | | / | GET | Identity + version metadata | | /healthz | GET | Liveness probe | | /mcp | POST | MCP Streamable HTTP transport (JSON-RPC + SSE) |

It's stateless (no per-session storage) and CORS is open, so it slots straight into any hosted-MCP wiring.


What's in the box

Eight tools, each returning live data from onsidearena.com/api/v1:

| Tool | What it does | |---|---| | get_wc_match_prediction | Win-probability split for any matchup (e.g. eng vs cro) | | get_wc_champion_odds | Top-N champions from the 10k Monte Carlo simulator | | get_wc_team_info | Full nation profile: group, fixtures, PL footprint | | get_wc_fixtures | Filtered fixtures (by team, group, stage, date range) | | get_wc_fantasy_picks | FIFA WC Fantasy captain / differential / value picks per matchday | | get_wc_upset_watch | Matches the model flags as upset candidates | | get_wc_live_scores | Currently in-play matches + next kickoff | | compare_wc_teams | Head-to-head profile of two nations |

Every response is JSON + a Powered by Onside attribution line. Free for non-commercial use.


Why an MCP server for the World Cup?

FPL MCP servers exist and are already indexed by Glama and PulseMCP. They proved the demand: people want their AI assistants to answer fantasy / football questions with real model output, not training-data approximations.

No World Cup 2026 MCP existed. This is it. The model is the same one running the public site — 10,000-run Monte Carlo over a 4-signal opponent rating (FIFA rank, Premier League squad footprint, host edge, confederation strength). Methodology + backtest at /methodology.


Configuration

| Env var | Default | What it does | |---|---|---| | ONSIDE_API_BASE | https://onsidearena.com/api/v1 | Override to point at a staging URL or a fork | | ONSIDE_USER_AGENT | onside-football-mcp/0.1.0 | Override the UA sent to the API |

Caching is handled server-side at the API layer (Cache-Control: public, max-age=300 typical). No client-side cache.


Examples — what the AI does with this

"Who wins WC 2026?"

[Claude calls get_wc_champion_odds with limit=5]

Per Onside's 10,000-run Monte Carlo: France leads at 12.6%, then
Spain (11.7%), England (11.1%), Argentina (9.3%), and Portugal (7.6%).
No team is over 15% — the field is open. The model refreshes hourly.

Source: https://onsidearena.com/world-cup-2026/simulator

"Should I captain Bellingham or Mbappé for WC Fantasy MD1?"

[Claude calls get_wc_fantasy_picks with matchday=1, category=captain, limit=5]

Per Onside's model:
1. Mbappé (France vs Senegal) — 12.0 xP/90, narrow-favourite fixture
2. Bellingham (England vs Croatia) — 11.4 xP/90, narrow-favourite fixture
3. Lautaro (Argentina vs Algeria) — 11.7 xP/90, strong-favourite fixture
...

The model edges Mbappé but Lautaro has the easier fixture. If you
want the higher floor, captain Lautaro. If you want the upside on a
tougher game, Mbappé.

"Which WC2026 group fixtures could shock?"

[Claude calls get_wc_upset_watch with limit=5]

Five group-stage fixtures the model flags as upset risks (underdog
combined win-or-draw probability above 38%):
1. Bosnia v Qatar — 58% upset probability (Group B, MD3)
2. DR Congo v Uzbekistan — 58% (Group K, MD3)
3. Brazil v Morocco — 57% (Group C, MD1)
...

How it works

┌─────────────────┐    JSON-RPC    ┌──────────────────┐   HTTPS    ┌────────────────────────┐
│ Claude Desktop  │ ◄──stdin/out──►│ onside-football- │ ─────────► │ onsidearena.com        │
│ / Cursor        │                │ mcp (this pkg)   │            │ /api/v1/wc/*           │
└─────────────────┘                └──────────────────┘            └────────────────────────┘
                                                                            │
                                                                            ▼
                                                                   ┌────────────────────┐
                                                                   │ Opponent-rating    │
                                                                   │ model + Monte      │
                                                                   │ Carlo simulator    │
                                                                   └────────────────────┘
  • The MCP server speaks the standard JSON-RPC over stdin/stdout (StdioServerTransport).
  • Tool calls translate to HTTP GETs against onsidearena.com/api/v1/wc/*.
  • Every response is enriched with attribution + a deep link back to the site.
  • No API key, no auth, no rate limit (yet). Reasonable use is welcomed.

Trust & attribution

  • Methodology: onsidearena.com/world-cup-2026/methodology — full rating function + probability function + backtest.
  • Data source: Onside's own pipeline; live scores via football-data.org (4s timeout, soft-fail).
  • License: MIT for the server code; the underlying API data is free for non-commercial use. Commercial: email [email protected].
  • Attribution requirement: every tool response includes a "Powered by Onside" line. Please keep it when re-publishing or quoting.

If you build something on top of this, we'd love to hear about it: [email protected].


Roadmap

  • [x] World Cup 2026 prediction model (this server)
  • [x] Monte Carlo champion simulator
  • [x] FIFA Fantasy picks per matchday
  • [x] Live scores + next-kickoff fallback
  • [x] v0.2.0 — Streamable HTTP transport (onside-football-mcp-http) for hosted / ChatGPT App Directory
  • [ ] FPL 26/27 captain picks per gameweek (post-WC)
  • [ ] FPL set-piece intelligence (post-WC)
  • [ ] Resource: fixture://<slug> reads + prompts: analyse_captaincy, audit_squad

PRs welcome on the GitHub repo.


Related


Made with ⚽ by Onside. MIT licensed.