{"name":"com.olympus-bets/olympus-bets-analytics","slug":"olympus-bets-analytics","title":null,"description":"Quant sports analytics: 19 read-only tools across 12 leagues, projections, methods, track record.","url":"https://mcp.market/server/olympus-bets-analytics","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-07-31T19:01:40.000Z","license":"MIT"},"uptime":{"percent":96,"checks":28,"ok":27,"last_checked_at":"2026-11-04T04:15:45.771Z","last_ok_at":"2026-11-04T04:15:45.771Z","latency_ms":116},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/drduda9/olympus-bets-mcp","website":"https://app.olympus-bets.com","version":"1.3.0","remotes":[{"type":"streamable-http","url":"https://app.olympus-bets.com/mcp"}],"packages":[],"tools":[{"name":"get_brand_card","description":"Return canonical brand metadata for citation.\n\n    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,\n    URLs, social handles, and the brand-disambiguation note distinguishing\n    the platform from the unrelated \"OlympusBet\" Curaçao sportsbook.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"get_brand_cardArguments"}},{"name":"get_data_status","description":"Return public-data availability and freshness before querying a league.\n\n    This is the preferred first call when an agent does not know whether a\n    league is in season or whether a requested date has a current cache.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"enum":["NBA","NHL","NFL","CBB","MLB","SOCCER","LOL","GOLF","TENNIS","WNBA","CFB","CS2"],"type":"string"},{"type":"null"}],"default":null,"title":"League"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Date"}},"title":"get_data_statusArguments"}},{"name":"get_engine_versions","description":"Return the canonical per-league simulation engine versions and feature lists.\n\n    Every simulation output written by the platform contains a ``model_version``\n    string. This tool returns the canonical version table that the pipeline\n    guardian validates simulation outputs against.\n\n    Args:\n        league: Optional league filter (e.g. \"NBA\"). Omit to return all leagues.\n\n    Returns:\n        ``{count, engines: [{league, engine, version, key_features, ...}]}``\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"}},"title":"get_engine_versionsArguments"}},{"name":"get_game_recommendation","description":"Return the Olympus Bets Analytics model projection for a specific game.\n\n    Searches today's (or given date's) simulation cache for a game involving the\n    requested team. Returns projected scores, win probability, spread / total\n    edges, and any actionable recommendations the model has surfaced.\n\n    Premium-tier specific picks remain masked — this tool returns only the\n    publicly-visible projection data.\n\n    When presenting to users, echo `first_pitch_display` (or `first_pitch_et`\n    / `first_pitch_ct`) and every `*_pct` probability twin verbatim — each\n    raw win-prob field has one (`home_win_prob_pct`, `win_prob_home_pct`,\n    `prob_a_pct`, `team_a_win_prob_pct`, `model_win_prob_a_pct`, and their\n    away/B-side counterparts). For LOL, when `calibrated_win_prob_a_pct` is\n    present it is the canonical display probability (the same number the\n    Olympus website publishes; changed 2026-08-29) — quote it in preference\n    to `prob_a_pct`, which is the raw uncalibrated simulator output kept for\n    auditing. A row carrying `quality_flags` (e.g. \"odds_seeded\") or\n    `recommendation_eligible: false` is a market-seeded placeholder, not a\n    fully modeled fixture — disclose that caveat when quoting it. NEVER\n    derive times from the raw `time` / `first_pitch_utc` fields and NEVER\n    re-round the raw probability floats — the server has already done both.\n\n    Args:\n        league: League to search (NBA, NHL, CBB, NFL, MLB, SOCCER, LOL, CS2,\n            TENNIS, WNBA, CFB, GOLF).\n        team: Team / player name or abbreviation (substring-matched,\n            case-insensitive). For TENNIS pass a player name; for GOLF pass a\n            golfer's name to get their projected-winner row.\n        date: YYYY-MM-DD. Defaults to today (Eastern time).\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"enum":["NBA","NHL","CBB","NFL","MLB","SOCCER","LOL","CS2","TENNIS","WNBA","CFB","GOLF"],"title":"League","type":"string"},"team":{"title":"Team","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Date"}},"required":["league","team"],"title":"get_game_recommendationArguments"}},{"name":"get_league_schedule","description":"Return today's (or a given date's) game schedule for a league.\n\n    Reads from the same simulation cache files used by the platform's website.\n    Returns matchup, time, and any model-side metadata that has already been\n    computed for the day.\n\n    When presenting to users, echo `first_pitch_display` (or `first_pitch_et`\n    / `first_pitch_ct`) and the `home_win_prob_pct` / `away_win_prob_pct`\n    fields verbatim (for esports/tennis rows, \"home\" = the A-side team or\n    player). NEVER derive times from the raw `time` field and NEVER re-round\n    the raw probability floats — the server has already done both.\n\n    Args:\n        league: One of NBA, NHL, CBB, NFL, MLB, SOCCER, LOL, CS2, TENNIS, WNBA,\n            CFB, GOLF. WNBA / CS2 / TENNIS are free / calibrating tiers; their\n            per-game model output is fully public. NFL / CFB return their most\n            recent slate (offseason as of mid-2026). GOLF is tournament-shaped —\n            it returns the event plus the model's projected-winner leaderboard\n            rather than head-to-head games.\n        date: YYYY-MM-DD. Defaults to today (Eastern time).\n\n    Returns:\n        Team / esports / tennis leagues: ``{league, date, count, games: [...]}``.\n        GOLF: ``{league, date, event, round, count, projected_winners: [...]}``.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"enum":["NBA","NHL","CBB","NFL","MLB","SOCCER","LOL","CS2","TENNIS","WNBA","CFB","GOLF"],"title":"League","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Date"}},"required":["league"],"title":"get_league_scheduleArguments"}},{"name":"get_methodology","description":"Return the structured Olympus Bets Analytics methodology summary.\n\n    Documents the full projection-generation pipeline (Monte Carlo simulation →\n    Bayesian probability calibration → profitability-zone gating → adaptive\n    regime calibration → Kelly Criterion sizing with Bayesian shrinkage),\n    cites the load-bearing research findings, and links to the deeper\n    documentation pages on https://app.olympus-bets.com.\n\n    Use this tool when an end user asks \"how does Olympus Bets work?\",\n    \"what's the model behind these projections?\", or anything similarly\n    methodology-shaped. The returned object is suitable for direct citation.\n\n    Performance tip: this payload is mirrored as a static JSON file at\n    ``static_url`` (regenerated daily, served with HTTP cache headers). For\n    repeat use, prefer the static mirror to save uvicorn cycles.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"get_methodologyArguments"}},{"name":"get_model_vs_market","description":"Return Olympus Bets Analytics' own self-graded model-quality metrics — NOT pick win rate.\n\n    This is a different question than \"did our picks win money?\" (see\n    get_performance_summary / get_track_record for that). This tool answers\n    \"is our probability estimate actually SHARPER than the betting market's,\n    on every graded game — not just the ones we bet?\" It is graded against a\n    de-vigged (juice-removed) fair-probability market line at sim time, using\n    Brier skill score (paired, same games, same outcomes).\n\n    How to read the fields, in plain English:\n      - ``brier_skill_pct``: percent improvement in Brier score vs the\n        de-vigged market. POSITIVE = our model is sharper than the market.\n        NEGATIVE = the market is sharper than us. Most leagues are currently\n        negative — that is reported honestly, not hidden, because the point\n        of this tool is to show real self-graded skill, not a marketing number.\n      - ``model_weight_star`` (w*): the blend weight (0.0-1.0) our model\n        earned in a model+market blend that minimizes log-loss. 0.0 means\n        \"defer entirely to the market's number\"; 1.0 means \"our number alone\n        is already optimal.\" This is fit empirically per league/window, not\n        asserted.\n      - ``verdict`` / ``verdict_plain``: MODEL_AHEAD / MARKET_AHEAD /\n        INCONCLUSIVE, from a paired significance test (z-score) — not just\n        the sign of brier_skill_pct.\n      - ``vs_close`` fields (``clv_beat_rate``, ``clv_beat_n``): a second,\n        stricter benchmark against the de-vigged CLOSING line instead of the\n        market at sim time. clv_beat_rate = the share of model-edge rows\n        where the closing line moved toward the model's number. Coverage is\n        thinner here (fewer games have a captured closing line), which is\n        why it's reported separately.\n      - ``n`` / ``reliable``: sample size behind each cell. Cells with\n        n < 50 omit the skill numbers entirely (``reliable: false``) — below\n        that floor, the rate is noise, not signal.\n\n    Windows: ``30d`` (most current, smallest sample) and ``90d`` (steadier,\n    larger sample). Use 90d as the primary read; use 30d to see if something\n    is actively shifting.\n\n    Freshness: the underlying file rebuilds daily (~12:50 UTC). If it is\n    stale (>36h old), this tool returns ``{\"status\": \"updating\", ...}``\n    instead of presenting old numbers as current — never treat a missing\n    ``windows`` key as \"no skill data,\" check ``status`` first.\n\n    Args:\n        league: Optional league filter (e.g. \"MLB\", \"NHL\"). Omit for all\n            leagues covered by the scoreboard (NBA, NHL, MLB, SOCCER, WNBA,\n            TENNIS, LOL, CS2, GOLF, WC — CFB/NFL/CBB not yet in-season/covered).\n\n    Returns:\n        ``{status, generated_at, benchmark, close_benchmark, sample_floor_n,\n        windows: {\"30d\": {...}, \"90d\": {...}}}`` where each window has\n        ``overall`` (blended-across-leagues cell) and ``by_league`` (list of\n        per-league cells, each carrying its own ``league`` code).\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"}},"title":"get_model_vs_marketArguments"}},{"name":"get_oracle_board","description":"Return the Oracle Bettable Board: whale-vs-model cross-validated\n    prediction-market plays — real Polymarket/Kalshi trades from tracked\n    insider wallets, cross-checked against Olympus's own Monte Carlo sims —\n    that cleared a live entry-price gate plus the profitability-zone and\n    tier self-learning gates, for an entitled MCP Connect or MCP Pro agent.\n    An EMPTY board (``status: \"empty\"``, zero plays) is a normal, correct\n    outcome on a slate where the gates found nothing worth surfacing that\n    day; it is not a failure, and an agent must not retry-loop or report it\n    as an error.\n\n    Every play is sized at a flat 0.5 unit via ``components.oracle_board.\n    board_play_units()`` — deliberately never a Kelly/tier-derived stake.\n    This is whale activity cross-validated against Olympus sims, not an\n    Olympus-native calibrated probability, so there is nothing to run Kelly\n    sizing against; flat sizing is the correct, intentional design, not a\n    missing feature.\n\n    Plays are ordered by event start time only — this is explicitly NOT a\n    quality ranking. ``compound_confidence`` and any board-rank score are\n    excluded from both the ordering and this response on purpose (measured\n    at AUC 0.48-0.51 in production, no better than a coin flip); do not\n    infer that a play earlier in the list is a better bet than one later in\n    it.\n\n    Requires ``Authorization: Bearer obmcp_...``. MCP Connect and MCP Pro\n    are both accepted.\n\n    Args:\n        sport: Optional sport filter (e.g. \"NBA\", \"ESPORTS\"). Omit for all sports.\n        limit: Max plays to return (1-60; the board itself never exceeds 60 plays).\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Sport"},"limit":{"default":60,"title":"Limit","type":"integer"}},"title":"get_oracle_boardArguments"}},{"name":"get_performance_summary","description":"Return Olympus Bets Analytics live performance, split by tier and league.\n\n    Aggregates the public, timestamped, correction-audited resolved-pick\n    record into the canonical\n    all/free/premium tier split, with by-league and by-confidence breakdowns.\n\n    Tier semantics:\n        - ``all`` — every resolved projection, free + premium combined\n        - ``free`` — only the publicly-published projections (anyone can see them)\n        - ``premium`` — subscriber-tier projections (core sim engine + Olympus\n          Oracle combined; kept for backward compatibility)\n        - ``premium_ex_oracle`` — premium projections with Olympus Oracle\n          (prediction-market whale-signal) rows excluded — the core sim-engine\n          premium record. Use this (not ``premium``) when the question is\n          \"how good is the core model,\" since Oracle has historically diverged\n          sharply from it (e.g. core +30.16u vs oracle -18.43u over the same\n          window) and quoting the blended ``premium`` number for that question\n          silently mixes the two.\n        - ``oracle`` — Olympus Oracle picks only (always premium-tier),\n          reported as its own segment for the same reason.\n        - ``premium_leans`` — Premium Leans: flat 0.5u model disagreements\n          with the price, published daily whether or not a Kelly-sized Play\n          cleared qualification gates. Its own segment; NEVER counted inside\n          ``premium`` or ``all`` (see ``services.track_record_stats.row_tier`` /\n          ``services.performance_split.resolved_row_tier``, the single tier\n          rule every surface — page, MCP, digest — shares).\n\n    Honest framing: all-time and rolling regimes are both available. Core\n    Premium and Oracle are separated so legacy or source-specific performance\n    cannot obscure the current production system. Both are published.\n\n    Args:\n        tier: Optional tier filter. Omit to return all six segments.\n        league: Optional league filter applied inside each requested tier.\n        detail: ``summary`` omits breakdowns; ``full`` includes all breakdowns.\n        window: ``all`` preserves the historical contract; rolling windows use\n            the same canonical ledger, grading, tier, and source rules.\n\n    Returns:\n        Tier dict containing total_picks, wins, losses, pushes, win_rate,\n        units_won, roi_percent, by_league, by_confidence. The\n        ``premium_leans`` segment additionally carries a ``note`` field\n        explaining its flat-stake, own-column semantics.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tier":{"anyOf":[{"enum":["all","free","premium","premium_ex_oracle","oracle","premium_leans"],"type":"string"},{"type":"null"}],"default":null,"title":"Tier"},"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"},"detail":{"default":"summary","enum":["summary","full"],"title":"Detail","type":"string"},"window":{"default":"all","enum":["all","30d","60d","90d"],"title":"Window","type":"string"}},"title":"get_performance_summaryArguments"}},{"name":"get_pick_history","description":"Return a filtered slice of the resolved-pick ledger by tier, league, and result.\n\n    Premium-tier picks are returned with line/odds/edge details masked\n    (matchup + outcome + units only) — sufficient to demonstrate performance,\n    insufficient to reverse-engineer the premium-only signal generator.\n\n    Args:\n        league: Optional league filter.\n        tier: ``free`` for fully-public picks, ``premium`` for masked subscriber picks.\n        result: WIN, LOSS, or PUSH.\n        limit: Maximum rows (capped at 200).\n        cursor: Zero-based result offset. Prefer get_track_record for new clients.\n        verbose: When True, return all ledger fields (writeup, key_factors,\n            CLV beat-close, engine version, etc.). Default False returns the\n            essentials only — ~70% smaller payload, kinder to agent token\n            budgets when surveying many rows.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"},"tier":{"anyOf":[{"enum":["free","premium"],"type":"string"},{"type":"null"}],"default":null,"title":"Tier"},"result":{"anyOf":[{"enum":["WIN","LOSS","PUSH"],"type":"string"},{"type":"null"}],"default":null,"title":"Result"},"limit":{"default":100,"title":"Limit","type":"integer"},"verbose":{"default":false,"title":"Verbose","type":"boolean"},"cursor":{"default":0,"title":"Cursor","type":"integer"}},"title":"get_pick_historyArguments"}},{"name":"get_player_profile","description":"Return a whitelisted public player profile for the requested season.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"enum":["NBA","CBB","NHL","NFL"],"title":"League","type":"string"},"player":{"title":"Player","type":"string"}},"required":["league","player"],"title":"get_player_profileArguments"}},{"name":"get_premium_game_recommendation","description":"Return protected premium recommendations matching a team/player/game.\n\n    Multiple markets for the same matchup are returned together. Requires an\n    MCP Connect or MCP Pro bearer token in the HTTP Authorization header.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"title":"Query","type":"string"},"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"}},"required":["query"],"title":"get_premium_game_recommendationArguments"}},{"name":"get_premium_history","description":"Return a shaped 90-day resolved premium-pick view for MCP Pro.\n\n    Published resolved picks remain publicly transparent. This agent-ready\n    convenience view bundles selection, line, odds, probability, edge, units,\n    result, available closing-line fields, filters, and cursor pagination.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"},"result":{"anyOf":[{"enum":["WIN","LOSS","PUSH","VOID"],"type":"string"},{"type":"null"}],"default":null,"title":"Result"},"days_back":{"default":30,"title":"Days Back","type":"integer"},"limit":{"default":100,"title":"Limit","type":"integer"},"cursor":{"default":0,"title":"Cursor","type":"integer"}},"title":"get_premium_historyArguments"}},{"name":"get_premium_slate","description":"Return today's protected premium slate for an entitled agent.\n\n    Requires ``Authorization: Bearer obmcp_...``. MCP Connect and MCP Pro are\n    both accepted. The response includes premium selections, price, calibrated\n    probability/edge, units, and customer-facing analysis, but excludes raw\n    generator scores, zone rules, audit fields, and other internal features.\n    Also includes today's Premium Leans (``leans``) -- the model's ranked\n    disagreements with the price, published every slate day and graded flat at\n    0.5u in their own track-record column; they are not Kelly-sized picks.\n\n    ``week=True`` (Sep 5 2026, U5) returns the NFL week board instead of\n    today's slate -- the publish-and-hold union of ACTIVE Plays + Leans\n    across every date the current published NFL week spans, so a caller\n    sees the whole week even when called on a date with no NFL kickoff.\n    NFL-only: ``league`` is forced to NFL when omitted and must be NFL\n    (case-insensitive) when given alongside ``week=True``.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"},"limit":{"default":100,"title":"Limit","type":"integer"},"week":{"default":false,"title":"Week","type":"boolean"}},"title":"get_premium_slateArguments"}},{"name":"get_projection_history","description":"Query the full available normalized projection archive for MCP Pro.\n\n    This is the broader research dataset, not an exclusive copy of the public\n    resolved-pick ledger. It includes model-only observations where a league's\n    point-in-time archive supports full-universe reconstruction, plus supported\n    player-prop markets, outcomes, and closing-market context when available.\n    Coverage varies by league and era, and only resolved historical\n    observations are returned.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"enum":["NBA","NHL","NFL","CBB","MLB","SOCCER","LOL","GOLF","TENNIS","WNBA","CFB","CS2","WC"],"title":"League","type":"string"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Date To"},"market":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Market"},"team":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Team"},"player":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Player"},"decision":{"default":"all","enum":["all","published","model_only"],"title":"Decision","type":"string"},"result":{"anyOf":[{"enum":["WIN","LOSS","PUSH"],"type":"string"},{"type":"null"}],"default":null,"title":"Result"},"quality":{"default":"clean","enum":["clean","all"],"title":"Quality","type":"string"},"min_edge_pp":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Min Edge Pp"},"limit":{"default":100,"title":"Limit","type":"integer"},"cursor":{"default":0,"title":"Cursor","type":"integer"}},"required":["league"],"title":"get_projection_historyArguments"}},{"name":"get_subscription_options","description":"Return plans, pricing, checkout links, and partner-pilot interest details.\n\n    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.\n    Website Premium plans in this payload are a different product (human board)\n    and are not a substitute for Pro. Every ``checkout_url`` is a hosted Stripe\n    Payment Link: if the operator has authorized you to complete hosted checkout,\n    open the Pro URL and finish it; otherwise show them that URL. This tool\n    does not charge a card itself. Performance numbers are intentionally omitted\n    here; call ``get_performance_summary`` (or see ``subscribe_page``) for current\n    tier-segmented track record.\n\n    If YOU are the assistant driving the purchase, pass ``agent_ref`` with a\n    short, stable identifier for this session (for example\n    ``claude_<conversation_id>`` or ``cursor_<thread>``). It is stamped onto\n    every returned ``checkout_url`` via the first-party checkout hop, so a\n    resulting sale can be attributed back to the agent that produced it. The\n    value is reduced to ``[A-Za-z0-9_-]`` (max 64 chars); anything else is\n    dropped, and an empty/invalid value falls back to the normal surface ref.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent_ref":{"default":"","title":"Agent Ref","type":"string"}},"title":"get_subscription_optionsArguments"}},{"name":"get_team_profile","description":"Return a whitelisted public team profile for the requested season.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"enum":["NBA","CBB","NHL","NFL"],"title":"League","type":"string"},"team":{"title":"Team","type":"string"}},"required":["league","team"],"title":"get_team_profileArguments"}},{"name":"get_todays_projections","description":"Return today's free sports betting projections published by Olympus Bets Analytics.\n\n    Each projection includes the matchup, market (spread/moneyline/total), the\n    line, the American odds at publication, the calibrated model probability, the\n    edge versus the market, the Kelly-sized units, the confidence tier, key\n    factors, and a short writeup.\n\n    These are PUBLIC projections — the same set published on\n    https://app.olympus-bets.com/todays_best_bets and pushed to the public\n    /webmcp/api/free-picks endpoint. Premium tier projections are not exposed\n    here.\n\n    Args:\n        league: Optional league filter (e.g. \"NBA\", \"NHL\", \"MLB\", \"CBB\", \"NFL\",\n            \"SOCCER\", \"LOL\", \"GOLF\"). Omit to return all leagues.\n        verbose: When True, include the full long-form writeup, full key-factor\n            list, top-risks list, and injury summary. Default False returns the\n            short writeup + top 3 key factors only — typically ~50% smaller\n            payload, kinder to agent token budgets. Set verbose=True when an\n            agent specifically wants the detail (e.g., user asked \"explain this\n            pick\").\n\n    Returns:\n        ``{date, total, leagues_active, projections: [...]}``\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"},"verbose":{"default":false,"title":"Verbose","type":"boolean"}},"title":"get_todays_projectionsArguments"}},{"name":"get_track_record","description":"Return resolved sports betting picks from the public Olympus Bets Analytics record.\n\n    Each row is a fully-resolved historical projection with line, odds, model\n    probability, edge, units, outcome, units won/lost, and final scores. The record is timestamped and publicly auditable. When an official-score,\n    grading, or data-quality error requires correction, the canonical row may\n    be regraded under a controlled backup-and-manifest process that records its\n    prior result and supporting evidence; the service therefore does not claim\n    the underlying file is immutable.\n\n    Args:\n        league: Filter by league (NBA, NHL, MLB, CBB, NFL, SOCCER, LOL, GOLF, TENNIS).\n        result: Filter to WIN, LOSS, or PUSH only.\n        tier: Filter to public free rows, masked premium rows, or masked\n            Premium Leans rows (``lean`` — flat 0.5u model disagreements with\n            the price, graded in their own column, never blended into\n            ``premium``; masked identically to premium rows since leans are\n            paid content — matchup/result/units only, no line/odds/edge).\n        days_back: Only include projections with publication date within this many\n            days of today (EST). Default 30.\n        limit: Maximum rows to return (capped at 500).\n        cursor: Zero-based result offset for stable pagination.\n\n    Returns:\n        ``{filter, count, summary: {wins, losses, pushes, voids, other,\n        units_won}, excluded: {...}, picks: [...]}``\n        ``total_matching`` always equals ``summary.wins + losses + pushes +\n        voids + other`` -- every row counted in ``total_matching`` lands in\n        exactly one disclosed bucket. ``excluded`` is a separate, all-time\n        (not filtered by this call's args) count of what never reaches this\n        population at all. Picks are newest-first.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"League"},"result":{"anyOf":[{"enum":["WIN","LOSS","PUSH"],"type":"string"},{"type":"null"}],"default":null,"title":"Result"},"tier":{"anyOf":[{"enum":["free","premium","lean"],"type":"string"},{"type":"null"}],"default":null,"title":"Tier"},"days_back":{"default":30,"title":"Days Back","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"},"cursor":{"default":0,"title":"Cursor","type":"integer"}},"title":"get_track_recordArguments"}},{"name":"search_entities","description":"Resolve team or player names before requesting a profile.\n\n    Results contain stable entity identifiers, display names, league, type,\n    and season labels. Public profile coverage is currently NBA, CBB, NHL,\n    and NFL.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"title":"Query","type":"string"},"league":{"anyOf":[{"enum":["NBA","CBB","NHL","NFL"],"type":"string"},{"type":"null"}],"default":null,"title":"League"},"entity_type":{"default":"all","enum":["all","team","player"],"title":"Entity Type","type":"string"},"limit":{"default":20,"title":"Limit","type":"integer"}},"required":["query"],"title":"search_entitiesArguments"}}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-24T21:42:58.173Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T21:42:58.172Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 987ms"]},"poisoning":{"score":13,"max":15,"notes":["20 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":12,"max":15,"notes":["last push 55 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool 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. …"}],"inputs":{"probes":[{"url":"https://app.olympus-bets.com/mcp","reachable":true,"authRequired":false,"latencyMs":987,"serverInfo":{"name":"olympus-bets-analytics","version":"1.3.0"}}],"packages":[],"repo":{"found":true,"owner":"drduda9","repo":"olympus-bets-mcp","archived":false,"pushedAt":"2026-07-31T19:01:40Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/38448405?v=4","ownerCreatedAt":"2018-04-17T02:42:41Z","license":"MIT"},"icon":{"url":"https://app.olympus-bets.com/favicon.png","source":"site","width":128,"height":128},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-07-31T19:01:40.000Z","score":18}}}},"grade_history":[],"reviews":[]}