mcpbeat Sign in

Olympus Bets Analytics MCP Server

by olympus-bets Your server? Claim it
answering

Olympus Bets Analytics is answering right now. Last checked 10 min ago. It exposes 20 tools. Last commit 31 Jul 2026.

Quant sports analytics: 19 read-only tools across 12 leagues, projections, methods, track record.

Uptime history 47 days of history · worst day 99%
47 days agonow
100.0%
Uptime 24h
91 of 91 checks
20
Tools
read from the server
621 ms
Response time
average over 24h
0
Stars
last commit 31 Jul 2026

What changed 12

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 10 August 2026. No other catalogue keeps this.

17 Sep 2 tool descriptions were rewritten get_performance_summary, get_track_record
17 Sep 2 tools changed the parameters they ask for get_performance_summary, get_track_record
6 Sep a tool description was rewritten get_premium_slate
6 Sep a tool changed the parameters it asks for get_premium_slate
5 Sep a tool description was rewritten get_premium_slate
29 Aug a tool description was rewritten get_game_recommendation
13 Aug 2 tool descriptions were rewritten get_performance_summary, get_subscription_options
13 Aug a tool changed the parameters it asks for get_performance_summary
10 Aug a tool description was rewritten get_subscription_options

Nothing serious here today

Today is the operative word: we check Olympus Bets Analytics every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 10 min ago.

run in your terminal
claude mcp add olympus-bets-analytics --transport http https://app.olympus-bets.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "olympus-bets-analytics": {
      "url": "https://app.olympus-bets.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.olympus-bets-analytics]
url = "https://app.olympus-bets.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "olympus-bets-analytics": {
      "url": "https://app.olympus-bets.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "olympus-bets-analytics": {
      "url": "https://app.olympus-bets.com/mcp"
    }
  }
}

Available tools 20

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

premium
get_premium_game_recommendation
Return protected premium recommendations matching a team/player/game. Multiple markets for the same matchup are returned together. Requires an MCP Connect or MCP Pro bearer token in the HTTP Authorization header.
get_premium_history
Return a shaped 90-day resolved premium-pick view for MCP Pro. Published resolved picks remain publicly transparent. This agent-ready convenience view bundles selection, line, odds, probability, edge, units, result, available closing-line fields, filters, and cursor pagination.
get_premium_slate
Return today's protected premium slate for an entitled agent. Requires ``Authorization: Bearer obmcp_...``. MCP Connect and MCP Pro are both accepted. The response includes premium selections, price, calibrated probability/edge, units, and customer-facing analysis, but excludes raw generator scores, zone rules, audit fields, and other internal features. Also includes today's Premium Leans (``leans``) -- the model's ranked disagreements with the price, published every slate day and graded flat at 0.5u in their own track-record column; they are not Kelly-sized picks. ``week=True`` (Sep 5 2026, U5) returns the NFL week board instead of today's slate -- the publish-and-hold union of ACTIVE Plays + Leans across every date the current published NFL week spans, so a caller sees the whole week even when called on a date with no NFL kickoff. NFL-only: ``league`` is forced to NFL when omitted and must be NFL (case-insensitive) when given alongside ``week=True``.
brand
get_brand_card
Return canonical brand metadata for citation. Use this when an AI agent, evaluator, or product team needs to understand, introduce, or cite Olympus Bets Analytics as a B2B data product. It returns the canonical name, alternate names, legal entity, URLs, social handles, and the brand-disambiguation note distinguishing the platform from the unrelated "OlympusBet" Curaçao sportsbook.
data
get_data_status
Return public-data availability and freshness before querying a league. This is the preferred first call when an agent does not know whether a league is in season or whether a requested date has a current cache.
engine
get_engine_versions
Return the canonical per-league simulation engine versions and feature lists. Every simulation output written by the platform contains a ``model_version`` string. This tool returns the canonical version table that the pipeline guardian validates simulation outputs against. Args: league: Optional league filter (e.g. "NBA"). Omit to return all leagues. Returns: ``{count, engines: [{league, engine, version, key_features, ...}]}``
entities
search_entities
Resolve team or player names before requesting a profile. Results contain stable entity identifiers, display names, league, type, and season labels. Public profile coverage is currently NBA, CBB, NHL, and NFL.
game
get_game_recommendation
Return the Olympus Bets Analytics model projection for a specific game. Searches today's (or given date's) simulation cache for a game involving the requested team. Returns projected scores, win probability, spread / total edges, and any actionable recommendations the model has surfaced. Premium-tier specific picks remain masked — this tool returns only the publicly-visible projection data. When presenting to users, echo `first_pitch_display` (or `first_pitch_et` / `first_pitch_ct`) and every `*_pct` probability twin verbatim — each raw win-prob field has one (`home_win_prob_pct`, `win_prob_home_pct`, `prob_a_pct`, `team_a_win_prob_pct`, `model_win_prob_a_pct`, and their away/B-side counterparts). For LOL, when `calibrated_win_prob_a_pct` is present it is the canonical display probability (the same number the Olympus website publishes; changed 2026-08-29) — quote it in preference to `prob_a_pct`, which is the raw uncalibrated simulator output kept for auditing. A row carrying `quality_flags` (e.g. "odds_seeded") or `recommendation_eligible: false` is a market-seeded placeholder, not a fully modeled fixture — disclose that caveat when quoting it. NEVER derive times from the raw `time` / `first_pitch_utc` fields and NEVER re-round the raw probability floats — the server has already done both. Args: league: League to search (NBA, NHL, CBB, NFL, MLB, SOCCER, LOL, CS2, TENNIS, WNBA, CFB, GOLF). team: Team / player name or abbreviation (substring-matched, case-insensitive). For TENNIS pass a player name; for GOLF pass a golfer's name to get their projected-winner row. date: YYYY-MM-DD. Defaults to today (Eastern time).
league
get_league_schedule
Return today's (or a given date's) game schedule for a league. Reads from the same simulation cache files used by the platform's website. Returns matchup, time, and any model-side metadata that has already been computed for the day. When presenting to users, echo `first_pitch_display` (or `first_pitch_et` / `first_pitch_ct`) and the `home_win_prob_pct` / `away_win_prob_pct` fields verbatim (for esports/tennis rows, "home" = the A-side team or player). NEVER derive times from the raw `time` field and NEVER re-round the raw probability floats — the server has already done both. Args: league: One of NBA, NHL, CBB, NFL, MLB, SOCCER, LOL, CS2, TENNIS, WNBA, CFB, GOLF. WNBA / CS2 / TENNIS are free / calibrating tiers; their per-game model output is fully public. NFL / CFB return their most recent slate (offseason as of mid-2026). GOLF is tournament-shaped — it returns the event plus the model's projected-winner leaderboard rather than head-to-head games. date: YYYY-MM-DD. Defaults to today (Eastern time). Returns: Team / esports / tennis leagues: ``{league, date, count, games: [...]}``. GOLF: ``{league, date, event, round, count, projected_winners: [...]}``.
methodology
get_methodology
Return the structured Olympus Bets Analytics methodology summary. Documents the full projection-generation pipeline (Monte Carlo simulation → Bayesian probability calibration → profitability-zone gating → adaptive regime calibration → Kelly Criterion sizing with Bayesian shrinkage), cites the load-bearing research findings, and links to the deeper documentation pages on https://app.olympus-bets.com. Use this tool when an end user asks "how does Olympus Bets work?", "what's the model behind these projections?", or anything similarly methodology-shaped. The returned object is suitable for direct citation. Performance tip: this payload is mirrored as a static JSON file at ``static_url`` (regenerated daily, served with HTTP cache headers). For repeat use, prefer the static mirror to save uvicorn cycles.
model
get_model_vs_market
Return Olympus Bets Analytics' own self-graded model-quality metrics — NOT pick win rate. This is a different question than "did our picks win money?" (see get_performance_summary / get_track_record for that). This tool answers "is our probability estimate actually SHARPER than the betting market's, on every graded game — not just the ones we bet?" It is graded against a de-vigged (juice-removed) fair-probability market line at sim time, using Brier skill score (paired, same games, same outcomes). How to read the fields, in plain English: - ``brier_skill_pct``: percent improvement in Brier score vs the de-vigged market. POSITIVE = our model is sharper than the market. NEGATIVE = the market is sharper than us. Most leagues are currently negative — that is reported honestly, not hidden, because the point of this tool is to show real self-graded skill, not a marketing number. - ``model_weight_star`` (w*): the blend weight (0.0-1.0) our model earned in a model+market blend that minimizes log-loss. 0.0 means "defer entirely to the market's number"; 1.0 means "our number alone is already optimal." This is fit empirically per league/window, not asserted. - ``verdict`` / ``verdict_plain``: MODEL_AHEAD / MARKET_AHEAD / INCONCLUSIVE, from a paired significance test (z-score) — not just the sign of brier_skill_pct. - ``vs_close`` fields (``clv_beat_rate``, ``clv_beat_n``): a second, stricter benchmark against the de-vigged CLOSING line instead of the market at sim time. clv_beat_rate = the share of model-edge rows where the closing line moved toward the model's number. Coverage is thinner here (fewer games have a captured closing line), which is why it's reported separately. - ``n`` / ``reliable``: sample size behind each cell. Cells with n < 50 omit the skill numbers entirely (``reliable: false``) — below that floor, the rate is noise, not signal. Windows: ``30d`` (most current, smallest sample) and ``90d`` (steadier, larger sample). Use 90d as the primary read; use 30d to see if something is actively shifting. Freshness: the underlying file rebuilds daily (~12:50 UTC). If it is stale (>36h old), this tool returns ``{"status": "updating", ...}`` instead of presenting old numbers as current — never treat a missing ``windows`` key as "no skill data," check ``status`` first. Args: league: Optional league filter (e.g. "MLB", "NHL"). Omit for all leagues covered by the scoreboard (NBA, NHL, MLB, SOCCER, WNBA, TENNIS, LOL, CS2, GOLF, WC — CFB/NFL/CBB not yet in-season/covered). Returns: ``{status, generated_at, benchmark, close_benchmark, sample_floor_n, windows: {"30d": {...}, "90d": {...}}}`` where each window has ``overall`` (blended-across-leagues cell) and ``by_league`` (list of per-league cells, each carrying its own ``league`` code).
oracle
get_oracle_board
Return the Oracle Bettable Board: whale-vs-model cross-validated prediction-market plays — real Polymarket/Kalshi trades from tracked insider wallets, cross-checked against Olympus's own Monte Carlo sims — that cleared a live entry-price gate plus the profitability-zone and tier self-learning gates, for an entitled MCP Connect or MCP Pro agent. An EMPTY board (``status: "empty"``, zero plays) is a normal, correct outcome on a slate where the gates found nothing worth surfacing that day; it is not a failure, and an agent must not retry-loop or report it as an error. Every play is sized at a flat 0.5 unit via ``components.oracle_board. board_play_units()`` — deliberately never a Kelly/tier-derived stake. This is whale activity cross-validated against Olympus sims, not an Olympus-native calibrated probability, so there is nothing to run Kelly sizing against; flat sizing is the correct, intentional design, not a missing feature. Plays are ordered by event start time only — this is explicitly NOT a quality ranking. ``compound_confidence`` and any board-rank score are excluded from both the ordering and this response on purpose (measured at AUC 0.48-0.51 in production, no better than a coin flip); do not infer that a play earlier in the list is a better bet than one later in it. Requires ``Authorization: Bearer obmcp_...``. MCP Connect and MCP Pro are both accepted. Args: sport: Optional sport filter (e.g. "NBA", "ESPORTS"). Omit for all sports. limit: Max plays to return (1-60; the board itself never exceeds 60 plays).
performance
get_performance_summary
Return Olympus Bets Analytics live performance, split by tier and league. Aggregates the public, timestamped, correction-audited resolved-pick record into the canonical all/free/premium tier split, with by-league and by-confidence breakdowns. Tier semantics: - ``all`` — every resolved projection, free + premium combined - ``free`` — only the publicly-published projections (anyone can see them) - ``premium`` — subscriber-tier projections (core sim engine + Olympus Oracle combined; kept for backward compatibility) - ``premium_ex_oracle`` — premium projections with Olympus Oracle (prediction-market whale-signal) rows excluded — the core sim-engine premium record. Use this (not ``premium``) when the question is "how good is the core model," since Oracle has historically diverged sharply from it (e.g. core +30.16u vs oracle -18.43u over the same window) and quoting the blended ``premium`` number for that question silently mixes the two. - ``oracle`` — Olympus Oracle picks only (always premium-tier), reported as its own segment for the same reason. - ``premium_leans`` — Premium Leans: flat 0.5u model disagreements with the price, published daily whether or not a Kelly-sized Play cleared qualification gates. Its own segment; NEVER counted inside ``premium`` or ``all`` (see ``services.track_record_stats.row_tier`` / ``services.performance_split.resolved_row_tier``, the single tier rule every surface — page, MCP, digest — shares). Honest framing: all-time and rolling regimes are both available. Core Premium and Oracle are separated so legacy or source-specific performance cannot obscure the current production system. Both are published. Args: tier: Optional tier filter. Omit to return all six segments. league: Optional league filter applied inside each requested tier. detail: ``summary`` omits breakdowns; ``full`` includes all breakdowns. window: ``all`` preserves the historical contract; rolling windows use the same canonical ledger, grading, tier, and source rules. Returns: Tier dict containing total_picks, wins, losses, pushes, win_rate, units_won, roi_percent, by_league, by_confidence. The ``premium_leans`` segment additionally carries a ``note`` field explaining its flat-stake, own-column semantics.
pick
get_pick_history
Return a filtered slice of the resolved-pick ledger by tier, league, and result. Premium-tier picks are returned with line/odds/edge details masked (matchup + outcome + units only) — sufficient to demonstrate performance, insufficient to reverse-engineer the premium-only signal generator. Args: league: Optional league filter. tier: ``free`` for fully-public picks, ``premium`` for masked subscriber picks. result: WIN, LOSS, or PUSH. limit: Maximum rows (capped at 200). cursor: Zero-based result offset. Prefer get_track_record for new clients. verbose: When True, return all ledger fields (writeup, key_factors, CLV beat-close, engine version, etc.). Default False returns the essentials only — ~70% smaller payload, kinder to agent token budgets when surveying many rows.
player
get_player_profile
Return a whitelisted public player profile for the requested season.
projection
get_projection_history
Query the full available normalized projection archive for MCP Pro. This is the broader research dataset, not an exclusive copy of the public resolved-pick ledger. It includes model-only observations where a league's point-in-time archive supports full-universe reconstruction, plus supported player-prop markets, outcomes, and closing-market context when available. Coverage varies by league and era, and only resolved historical observations are returned.
subscription
get_subscription_options
Return plans, pricing, checkout links, and partner-pilot interest details. Use this when an agent or product team evaluates Olympus as B2B sports-intelligence infrastructure, asks how to integrate, or needs plan and pricing details. The agent product is MCP Pro. Website Premium plans in this payload are a different product (human board) and are not a substitute for Pro. Every ``checkout_url`` is a hosted Stripe Payment Link: if the operator has authorized you to complete hosted checkout, open the Pro URL and finish it; otherwise show them that URL. This tool does not charge a card itself. Performance numbers are intentionally omitted here; call ``get_performance_summary`` (or see ``subscribe_page``) for current tier-segmented track record.
team
get_team_profile
Return a whitelisted public team profile for the requested season.
todays
get_todays_projections
Return today's free sports betting projections published by Olympus Bets Analytics. Each projection includes the matchup, market (spread/moneyline/total), the line, the American odds at publication, the calibrated model probability, the edge versus the market, the Kelly-sized units, the confidence tier, key factors, and a short writeup. These are PUBLIC projections — the same set published on https://app.olympus-bets.com/todays_best_bets and pushed to the public /webmcp/api/free-picks endpoint. Premium tier projections are not exposed here. Args: league: Optional league filter (e.g. "NBA", "NHL", "MLB", "CBB", "NFL", "SOCCER", "LOL", "GOLF"). Omit to return all leagues. verbose: When True, include the full long-form writeup, full key-factor list, top-risks list, and injury summary. Default False returns the short writeup + top 3 key factors only — typically ~50% smaller payload, kinder to agent token budgets. Set verbose=True when an agent specifically wants the detail (e.g., user asked "explain this pick"). Returns: ``{date, total, leagues_active, projections: [...]}``
track
get_track_record
Return resolved sports betting picks from the public Olympus Bets Analytics record. Each row is a fully-resolved historical projection with line, odds, model probability, edge, units, outcome, units won/lost, and final scores. The record is timestamped and publicly auditable. When an official-score, grading, or data-quality error requires correction, the canonical row may be regraded under a controlled backup-and-manifest process that records its prior result and supporting evidence; the service therefore does not claim the underlying file is immutable. Args: league: Filter by league (NBA, NHL, MLB, CBB, NFL, SOCCER, LOL, GOLF, TENNIS). result: Filter to WIN, LOSS, or PUSH only. tier: Filter to public free rows, masked premium rows, or masked Premium Leans rows (``lean`` — flat 0.5u model disagreements with the price, graded in their own column, never blended into ``premium``; masked identically to premium rows since leans are paid content — matchup/result/units only, no line/odds/edge). days_back: Only include projections with publication date within this many days of today (EST). Default 30. limit: Maximum rows to return (capped at 500). cursor: Zero-based result offset for stable pagination. Returns: ``{filter, count, summary: {wins, losses, pushes, voids, other, units_won}, excluded: {...}, picks: [...]}`` ``total_matching`` always equals ``summary.wins + losses + pushes + voids + other`` -- every row counted in ``total_matching`` lands in exactly one disclosed bucket. ``excluded`` is a separate, all-time (not filtered by this call's args) count of what never reaches this population at all. Picks are newest-first.

Endpoints

URLTransportStateLatencyChecked
https://app.olympus-bets.com/mcp streamable-http answering 677 ms 10 min ago

Alternatives to Olympus Bets Analytics

same job, measured the same way
HAVN
by havnre

Read-only AI access to HAVN properties, leads, tasks, files, media, and analytics.

answering
Hedera MCP
by expertvagabond

Build-only Hedera (Hashgraph) MCP — 73 tools across all core services plus analytics reads.

84 installs/wk local only
Google Analytics 4
by getmcpads

Google Analytics 4: 27 read-only tools across the Data API and the Admin API.

78 installs/wk local only
SEO Tools: Google Analytics 4
by antohins

Google Analytics 4: reports, traffic sources, landing pages, events, realtime (read-only).

47 installs/wk local only
Stathead MCP
by dachhack

Fantasy football analytics: stats, dynasty, projections, prospects, Sleeper leagues, Excel I/O

504 installs/wk local only
Nexly Analytics
by nexly

Read-only access to your Nexly web analytics: traffic, pages, acquisition, events, and reports.

answering
Google Search Console MCP
by scalably

Read-only Google Search Console MCP: Search Analytics, sitemaps, URL inspection. 5 tools.

local only
Fincontext
by fincontext

Read-only bank & investment accounts via Plaid: balances, holdings, transactions, SQL analytics.

answering

Olympus Bets Analytics — questions

Answers built from our own checks of this server.

What can Olympus Bets Analytics do?
It exposes 20 tools, read directly from the server on our last check. Among them: get_brand_card, get_data_status, get_engine_versions, get_game_recommendation, get_league_schedule, get_methodology and 14 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Olympus Bets Analytics working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 621 ms. The bar chart above shows every period we have measured.
How do I connect Olympus Bets Analytics?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Olympus Bets Analytics need an API key?
No. Olympus Bets Analytics completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 20 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Olympus Bets Analytics?
It answers our handshake in 621 ms on average, which is faster than 20% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Olympus Bets Analytics open source?
Yes — it is published under the MIT licence, written in Python and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.