soccer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SOCCER_MCP_TTL | No | Cache seconds for the current day | 900 |
| SOCCER_MCP_CACHE | No | Where day scoreboards are cached | ~/.cache/soccer-mcp |
| SOCCER_ENGINE_PATH | No | Operator-only: path to a private analysis engine to bridge into | |
| SOCCER_MCP_PLUGINS | No | Comma-separated plugin module paths or file paths used to attach private tools, e.g. soccer_engine.mcp_tools,/opt/private/pro_tools.py | |
| SOCCER_MCP_LEAGUE_TTL | No | Cache duration for the ESPN league id-to-name map (30 days by default) | |
| SOCCER_MCP_FINISHED_TTL | No | Cache seconds for past days (scores never change) | 604800 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_fixturesA | All football fixtures of one day (YYYY-MM-DD) across every competition, with scores when played. Args: date: ISO date, e.g. 2026-09-20 league: optional case-insensitive substring filter on the competition name only_finished: only return matches with a final score |
| get_resultsA | Finished matches with final score for one day — the input for settling bets. Args: date: ISO date, e.g. 2026-09-20 league: optional substring filter on the competition name |
| settle_picksA | Settle a list of picks against the real scorelines and return per-pick results plus totals. Each pick: {"home": "...", "away": "...", "market": "O2.5", "odds": 1.75, "date": "2026-09-20"} Supported markets: O/U lines (1.0-4.5, quarter lines included), BTTS, 1X2, 2X2, DC. Team names are matched fuzzily against the day's fixtures, so slight spelling differences are fine. Args: picks: list of picks, each needing home, away, market and odds date: fallback ISO date when a pick carries no date of its own |
| devig_marketA | Strip the bookmaker margin from one market's prices and return the market's own probabilities. Args: prices: the decimal prices of all outcomes of the same market, e.g. [1.75, 3.6, 4.4] for 1X2 |
| evaluate_priceA | Judge a price against your own probability: fair odds, EV, minimum odds and a scaled Kelly stake. Args: probability: your probability for the outcome, e.g. 0.55 (not 55) odds: the decimal price on offer, e.g. 1.90 margin_pct: how much better than fair a price must be before you take it kelly_fraction: stake scaling; 0.25 means quarter Kelly |
| parlay_mathB | Combined odds and EV of an accumulator, plus how fast the edge decays with each leg. Args: legs: e.g. [{"probability": 0.6, "odds": 1.8}, {"probability": 0.5, "odds": 2.0}] |
| engine_statusA | Report whether the optional private analysis engine and private plugins are wired up. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
get_fixtures and get_results overlap substantially—get_results is essentially the finished-match subset of get_fixtures with only_finished enabled—so agents could misselect between them. The other tools are mostly distinct, especially the betting math tools, though devig_market and evaluate_price both deal with odds and probabilities and require careful reading of their descriptions.
Most names follow a clear verb_noun snake_case pattern: get_fixtures, get_results, settle_picks, devig_market, evaluate_price. Minor deviations include engine_status and parlay_math, which are noun-centric rather than imperative, but the overall style remains readable and predictable.
Seven tools is a well-scoped size for a soccer betting analytics server. Each tool has a clear role in the workflow, from fetching fixtures and results to settling picks, devigging odds, evaluating prices, and computing parlay math.
The core betting workflow is well covered: data retrieval, pick settlement, margin removal, price evaluation, and parlay calculations. Minor gaps exist around current odds fetching and league/team metadata, but agents can work around these since most math tools accept prices and probabilities as inputs.