Skip to main content
Glama
AI Ball MCP server

AI Ball MCP server

AI Ball MCP server

Read-only Model Context Protocol server for AI Ball, AI football match analysis.

It gives an AI assistant two things:

  • Pre-kick-off outcome probabilities. For each match, the model's home / draw / away probabilities as recorded before kick-off.

  • The open record. What happened afterwards: the final score and whether the model's most likely outcome came in. Misses are counted the same way as hits, and nothing is removed after the fact.

No account, no API key. The server only calls AI Ball's public record API.

Tools

Tool

What it returns

list_matches

One calendar day: match_id, kick-off time, league, teams and status (upcoming, pending or finished)

get_match_analysis

One match: home / draw / away probabilities recorded before kick-off, the most likely outcome, confidence, when the read was captured, and once played the score and whether it came in

get_open_record

The whole record, or one week with week_start: matches counted, how many went the model's way, two baselines on the same matches, and the count by confidence band

Every tool is read-only (readOnlyHint: true). Names are available in English (lang: "en") and Malay (lang: "ms"). Responses are built from a fixed list of fields; nothing from the upstream API is passed through as-is.

Reading the numbers

  • models.balanced holds fractions for home, draw and away that sum to 1. This version returns the balanced model; models_available lists what is included.

  • result.hit is true when the model's most likely outcome happened.

  • hit_rate is a percentage. null means the sample is under min_band_sample, so use the counts hits and n instead.

  • favourite_baseline scores the same matches by always taking the pre-match favourite; random_baseline is one outcome in three.

  • upcoming matches are locked before kick-off. pending matches carry a current read that may still change.

The server caches each upstream response for five minutes and spaces its requests, so repeated questions do not hit AI Ball's API again.

Related MCP server: Football Intelligence MCP

Hosted version

Prefer not to install anything? The same record is served over MCP at:

https://aiball.samagent.ai/mcp

Streamable HTTP, no sign-in, read-only. It has the three tools below plus get_match_context (head-to-head, recent form, injuries and fixtures for finished matches only). Rate limit: 60 requests a minute per IP.

claude mcp add --transport http aiball https://aiball.samagent.ai/mcp

Install (local version)

Claude Desktop

Download aiball-mcp.mcpb from the latest release and open it.

Claude Code

claude mcp add aiball -- npx -y github:aiballfooty/aiball-mcp

Cursor, VS Code and other clients

{
  "mcpServers": {
    "aiball": {
      "command": "npx",
      "args": ["-y", "github:aiballfooty/aiball-mcp"]
    }
  }
}

Requires Node.js 18 or later.

Example questions

  • "How did AI Ball's model do on last week's matches?"

  • "Which of last week's matches did the model get wrong?"

  • "What are the model's probabilities for today's matches, in Malaysia time?"

  • "Across the whole record, does the model do better than always taking the favourite?"

Privacy

The server runs on your machine and sends requests only to https://aiball.samagent.ai/api/v1. Requests carry the tool's parameters (a date, a time zone, a language) and a User-Agent of aiball-mcp/<version>. They do not carry your conversation, your files or any identifier. AI Ball's web server keeps standard access logs. Site privacy policy: https://aiball.samagent.ai/en/privacy

Development

npm install
npm test        # starts the server and calls every tool against the live API

Set AIBALL_API_BASE to point the server at another base URL.

Licence

MIT. For information only. Not advice. 18+.

Available Tools

3 tools
get_match_analysisGet outcome probabilities for a matchA
Read-onlyIdempotent
Inspect

For one match: the model's home / draw / away probabilities as recorded before kick-off (fractions that sum to 1), its most likely outcome, a confidence score, the pre-match favourite, and when the read was captured. For a finished match it also returns the final score and whether the most likely outcome happened (hit). This version returns the balanced model; models_available lists what is included.

Inputs: match_id (required), lang.

get_open_recordGet the open recordA
Read-onlyIdempotent
Inspect

How the model's pre-kick-off reads turned out. Without arguments: the whole public record. With week_start: one Monday-to-Sunday week. Returns matches counted (n), how many went the model's way (hits), the same matches scored by always taking the pre-match favourite and by one in three, and the breakdown by confidence band. hit_rate is a percentage; null means the sample is under min_band_sample, so quote the counts instead. Misses are counted the same way as hits.

Inputs: tz, week_start.

list_matchesList matches for a dateA
Read-onlyIdempotent
Inspect

Matches for one calendar day: match_id, kick-off time (UTC), league, teams and status. status is upcoming (pre-kick-off read is locked), pending (current read, may still change before kick-off) or finished. Pass a match_id to get_match_analysis for the outcome probabilities and, once played, the result.

Inputs: tz, date, lang, league.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 3 tools

    Disambiguation5/5

    The three tools target clearly distinct scopes: list_matches discovers matches for a day, get_match_analysis drills into one match's probabilities, and get_open_record reports aggregate performance. There is no functional overlap between them.

    Naming Consistency4/5

    All three follow a verb_noun pattern (list_matches, get_match_analysis, get_open_record), which is predictable and readable. The slightly odd term 'open_record' is a minor deviation but the convention itself is consistent.

    Tool Count4/5

    Three tools is lean but each maps to a distinct need (discovery, per-match detail, aggregate record). It is slightly thin for a data service but nothing feels redundant or missing at the top level.

    Completeness3/5

    Core flow — find matches, analyze a match, check the record — is covered, but notable gaps remain: no multi-day or date-range query, no league/team filtering, and no way to look up a specific match directly without a daily listing. These force workarounds for common agent requests.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides comprehensive soccer/football data including standings, team search, league search, match predictions, and head-to-head records via the API-Football service.
      136 npm
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables access to and analysis of a curated historical football database covering 37,000 matches across European competitions, with tools for team/player search, match details, form, head-to-head, comparisons, and match prediction.
      -
    • A
      license
      A
      quality
      B
      maintenance
      Provides football fixtures, real results, and bet settlement with odds arithmetic, enabling AI agents to devig markets, evaluate prices, and settle picks without an API key.
      7
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables clients to search, read, and verify sealed forecasts and public-record cards, inspect resolution calendars, engine strands, sensor alerts, and wire headlines, and check whether stories are independent events or echoes. All access is read-only and requires no key, account, or dependencies.
      3 npm
      1
      Apache 2.0