Skip to main content
Glama
mackolik-mcp

mackolik-mcp

mackolik-mcp 🇹🇷

mcp-name: io.github.mohammad-abbasi-sh/mackolik-mcp

Unofficial read-only MCP server for mackolik.com, Türkiye's #1 sports-scores app (~38M installs) — live scores, results, fixtures, league standings and match detail for football (and basketball) worldwide, with Turkish leagues first-class.

Built by Mohammad Abbasi as part of the "Turkey MCP factory" (Sepehr-style pipeline). Not affiliated with mackolik.com. Built for Mackolik only — never Sahadan (same owner, same underlying data).

For AI agents

Add to your MCP client config (stdio):

{
  "mcpServers": {
    "mackolik": {
      "command": "uvx",
      "args": ["mackolik-mcp"]
    }
  }
}

Or run locally: python -m mackolik_mcp.server (needs mcp<2, curl-cffi).

Related MCP server: iddaa-mcp

Tools

Tool

Description

mackolik_live_scores

Matches currently in play — league optional substring filter (e.g. "Süper Lig", "Premier Lig"), limit 1..50; minute, score, half-time, red cards, 1/X/2 odds

mackolik_results

Finished matches for one date (default today) — date YYYY-MM-DD or DD/MM/YYYY, league filter, limit 1..50

mackolik_fixtures

Upcoming matches for one date (default today) — same params as results

mackolik_standings

League standings — league: Tur (Türkiye Süper Lig), Eng (Premier Lig), Esp (LaLiga), Ita (Serie A), Ger (Bundesliga); rank, team, played, points, goal difference

mackolik_match_detail

Full detail for one match by match_id (from the other tools) + optional date (the feed is per-day, so a past match needs its date)

Example output (mackolik_live_scores / 2026-11-07):

{"total_live": 34, "matches": [
  {"match_id": 4542744, "home_team": "Eyüpspor", "away_team": "Kocaelispor",
   "league": "Süper Lig", "country": "Türkiye", "date": "07/11/2026",
   "time": "13:30", "status": "live", "status_text": "17",
   "score": "0-0", "odds_1": "3.46", "odds_x": "2.97", "odds_2": "1.78",
   "url": "https://arsiv.mackolik.com/Futbol-Mac/4542744/eyupspor-kocaelispor"}, …]}

Example output (mackolik_standings / Tur):

{"league": "Tur", "league_name": "Türkiye", "count": 9, "standings": [
  {"rank": 1, "team": "Galatasaray", "played": 10, "points": 25,
   "goal_difference": 11}, …]}

How it works

mackolik.com redirects to arsiv.mackolik.com (Akamai-fronted, no bot wall). The live data comes from the site's own JSON feed, vd.mackolik.com/livedata, which the site's JavaScript calls with ?group=0 (all of today, 836 matches on 2026-11-07) or ?date=DD/MM/YYYY (1,370 matches for 07/11/2026) — no login, no API key. Match rows are arrays decoded against the site's own livescore-go.js: id, teams, status code, status text, score, half-time/red-card detail, kick-off time, 1/X/2 iddaa odds (display only), date, and league group (country, league, season). Status codes: 0/12 = not started, 1/3/5 = live (minute number in status_text — the site adds the ' when rendering), 14/15/17 = basketball periods, 20 = extra time ("UZ"), 4/13 with "MS" = finished (Maç Sonu). A live/finished match with a blank score field is 0-0 (no goal scored yet). Standings come from the site's own widget handler (Home/StandingHandler.aspx?league=Tur|Eng|Esp|Ita|Ger). Transport uses Chrome TLS impersonation (curl-cffi, chrome120); requests are spaced ~0.8s apart; everything is read-only. Note: "Süper Lig" is also the league name in Greece, Switzerland, Serbia, Slovakia, India and Indonesia — filter by country via the league substring or check the country field.

Install

uvx mackolik-mcp        # run directly (needs uv)
# or
pip install mackolik-mcp
mackolik-mcp    # starts the MCP server on stdio

Tests

python -m venv .venv && .venv/bin/pip install -e .
.venv/bin/python -m unittest discover -s tests -v

Offline tests run on recorded fixtures (real feed responses from 2026-11-07); live tests hit mackolik.com. 26/26 green at build time (14 offline + 12 live) plus an MCP stdio smoke test (34 live matches, Süper Lig leader Galatasaray 25 pts).

Roadmap

  • Goal scorers / match events (the detail page carries them for finished matches)

  • Basketball live scores as a first-class filter (sport field is already parsed)

  • Head-to-head / team form from the team pages

License

MIT — see LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Gives your MCP host (Claude Desktop, Cursor, Continue, Zed) access to live scores, match details, standings, top scorers, knockout brackets and player stats across football, basketball, cricket and tennis. Backed by the free public SportScore API — no key, no signup, CORS-open.
    8
    71 npm
    15
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server that provides structured access to real-time sportsbook data from iddaa, including live events, competitions, and league fixtures with strategy analysis. Designed for AI agents and automation workflows.
    5
    85 npm
    1
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Enables access to live FotMob football data for fixture lookup, team and player research, match details, lineups, league discovery, and search-based entity lookup.
    7
    10
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to query live football data, including fixtures, live scores, standings, statistics, betting odds, and full odds movement history for corner and card lines.
    11
    27 npm
    MIT