Skip to main content
Glama
futpicks-mcp

futpicks-mcp

by Khavel

FutPicks MCP Server

Model Context Protocol server for football data: probable lineups with a per-player start probability and expected fantasy points, match analysis, model picks and a public track record — LaLiga, Premier League, Serie A, Bundesliga, Ligue 1 and Primeira Liga.

Every tool calls the public futpicks.com REST API over HTTPS. No database access, no shell, no local secrets beyond the API tokens you put in the environment. The lineup, match and track-record tools need no key at all.

The lineups are graded in public against the confirmed XI, so the accuracy the tools report is measured, not claimed. Same data as futpicks.com/onces/la-liga.

Quick start

Add it to any MCP client (Claude Code shown here) — no install step, npx fetches it:

{
  "mcpServers": {
    "futpicks": {
      "command": "npx",
      "args": ["-y", "futpicks-mcp"]
    }
  }
}

Then ask for a probable lineup: flab_teams to find a club, flab_matches_upcoming for the fixtures, flab_match_details for the projected XI and the model's read of the match.

To unlock the Pro and admin tools, add the keys:

{
  "mcpServers": {
    "futpicks": {
      "command": "npx",
      "args": ["-y", "futpicks-mcp"],
      "env": {
        "FUTPICKS_API_KEY": "flab_live_…"
      }
    }
  }
}

Related MCP server: FotMoCP

Building from source

git clone https://github.com/Khavel/futpicks-mcp.git
cd futpicks-mcp
npm install
npm run build      # compiles src/index.ts → dist/index.js

For local development with hot reload: npm run dev.

Environment variables

Variable

Required for

Description

FUTPICKS_API_URL

No

API base URL (default: https://futpicks.com)

FUTPICKS_API_KEY

Data tools

Data-scope API key (ProTier policy)

FUTPICKS_OPS_TOKEN

Ops tools

Ops-scope API key (Admin policy, admin only)

Public tools work with no token at all.

Where to get the tokens

Mint API keys from the web app: futpicks.com → Account → API Keys (Cuenta → Claves de API).

  • FUTPICKS_API_KEY — create a Data-scope key. It looks like flab_live_… and satisfies the Pro-tier (ProTier) endpoints. Pro and admin users can mint these.

  • FUTPICKS_OPS_TOKEN — create an Ops-scope key. It looks like flab_ops_… and satisfies the admin (Ops) endpoints. Only admins can mint these.

The raw key is shown once at creation, so copy it into your environment immediately. Keys are stored only as SHA-256 hashes, support optional expiry, and can be revoked from the same screen; revoked or expired keys are rejected with 401.

Tools

Public (no auth)

Tool

Endpoint

Key params

flab_picks_today

GET /api/picks/today

date?, rating?, market?

flab_pick_details

GET /api/picks/{id}

id

flab_picks_board

GET /api/picks/board

date?, league?, market?, rating?, odds/edge ranges

flab_matches_today

GET /api/matches/today

—

flab_match_details

GET /api/matches/{id}[/intelligence]

id, includeIntelligence?

flab_matches_upcoming

GET /api/matches/upcoming

days? (1–30)

flab_teams

GET /api/teams

—

flab_track_record

GET /api/track-record/filtered

market?, league?, rating?, outcome?, from?, to?

flab_health

GET /api/health

—

Data tools (require FUTPICKS_API_KEY)

Tool

Endpoint

Key params

flab_picks_history

GET /api/picks/history

from?, to?, league?, market?, rating?, page?, pageSize?

flab_evaluate_matches

GET /api/evaluate/matches

—

flab_evaluate_match

GET /api/evaluate/{matchId}

matchId

flab_backtest_run

POST /api/backtest/run

dateFrom, dateTo, rating?, market?, minEdge?, leagueId?

flab_export_picks

GET /api/picks/export

from?, to?, market?, rating? (returns CSV)

flab_data_catalog

GET /api/v1/data

—

Ops tools (require FUTPICKS_OPS_TOKEN, admin-only)

Tool

Endpoint

Key params

flab_ops_run

POST /api/v1/ops/operations/{kind}

kind, plus date?/lastDays?/windowDays?/matchId?

flab_ops_status

GET /api/v1/ops/operations/{id}[/result]

id, includeResult?

flab_ops_run kinds: ingestion-runs, scoring-runs, settlement-runs, calibration-runs, intelligence-refreshes. The server auto-generates an Idempotency-Key per ops POST.

Claude Desktop configuration

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "footballlab": {
      "command": "node",
      "args": ["C:/Users/ceja_/Desktop/Desarrollos/Furbov2/mcp-server/dist/index.js"],
      "env": {
        "FUTPICKS_API_URL": "https://futpicks.com",
        "FUTPICKS_API_KEY": "your-pro-tier-token",
        "FUTPICKS_OPS_TOKEN": "your-admin-token"
      }
    }
  }
}

Verify locally

npx @modelcontextprotocol/inspector node dist/index.js

Then call flab_health (no token needed) — it should return live system status.

Security

  • No tool reads DB connection strings, appsettings secrets, or shells into the VPS.

  • All inputs are validated with zod; page sizes and ranges are capped server-side.

  • Tokens are read from environment variables only and never logged.

  • Data/ops tools fail with a clear message when their token is missing — they never fall back to an unauthenticated call.

  • Ops mutations send a fresh Idempotency-Key so retries are deduplicated by the API.

Available Tools

17 tools
flab_backtest_runRun a BacktestA

Run a backtest over settled picks for a date range with optional rating/market/edge/league filters. Returns total picks, wins, losses, win rate, ROI, avg edge, and breakdowns. Requires Pro token. Range max 365 days.

Inputs: dateTo (required), dateFrom (required), market, rating, +2 more.

flab_data_catalogGet Data CatalogA
Read-onlyIdempotent

Browse the Data API catalog: available datasets, scopes, and resources for Sharp/Pro consumers. Requires Pro token.

Inputs: no named parameters.

flab_evaluate_matchEvaluate a MatchA
Read-onlyIdempotent

Score a match on demand through the scoring engine and return every market's pick with the full block breakdown. Requires Pro token.

Inputs: matchId (required).

flab_evaluate_matchesList Evaluable MatchesA
Read-onlyIdempotent

List scheduled matches (next ~3 days) available for on-demand evaluation. Use the returned matchId with flab_evaluate_match. Requires Pro token.

Inputs: no named parameters.

flab_export_picksExport Picks (CSV)A
Read-onlyIdempotent

Export settled/published picks as CSV for a date range with optional market/rating filters. Returns raw CSV text. Requires Pro token.

Inputs: to, from, market, rating.

flab_healthGet System HealthA
Read-onlyIdempotent

Check the FutPicks API health and basic system status. Public — no auth.

Inputs: no named parameters.

flab_match_detailsGet Match DetailsA
Read-onlyIdempotent

Get a single match by ID. Set includeIntelligence=true to also fetch the sports-intelligence snapshot (form, H2H, context). Public — no auth.

Inputs: id (required), includeIntelligence.

flab_matches_todayGet Today's MatchesA
Read-onlyIdempotent

Get today's matches with teams, league, kickoff, line snapshots, and any picks. Public — no auth.

Inputs: no named parameters.

flab_matches_upcomingGet Upcoming MatchesA
Read-onlyIdempotent

Get scheduled matches for the next N days (1–30, default 7). Public — no auth.

Inputs: days.

flab_ops_runRun an Ops Operation (admin)A

Submit a pipeline operation. Returns 202 with an operation id to poll via flab_ops_status. Admin-only (FUTPICKS_OPS_TOKEN). Kinds: ingestion-runs (date?), scoring-runs (date?), settlement-runs (lastDays 1–30), calibration-runs (windowDays 7–365), intelligence-refreshes (matchId).

Inputs: kind (required), date, matchId, lastDays, +1 more.

flab_ops_statusGet Ops Operation Status (admin)A
Read-onlyIdempotent

Poll an operation's lifecycle status by id. Set includeResult=true to also fetch its result payload once complete. Admin-only (FUTPICKS_OPS_TOKEN).

Inputs: id (required), includeResult.

flab_pick_detailsGet Pick DetailsA
Read-onlyIdempotent

Get full detail for a single pick by ID: market, line, edge, score, rating, and the scoring-block breakdown. Public — no auth.

Inputs: id (required).

flab_picks_boardGet Picks BoardB
Read-onlyIdempotent

Full picks board for a date with rich filters: edge/odds/data-quality ranges, lineup-confirmed flag, and preview inclusion. Public — no auth.

Inputs: date, league, market, rating, +5 more.

flab_picks_historyGet Picks HistoryA
Read-onlyIdempotent

Paged history of past picks across all markets with filters. Requires Pro token (FUTPICKS_API_KEY).

Inputs: to, from, page, isLive, +4 more.

flab_picks_todayGet Today's PicksA
Read-onlyIdempotent

Get FutPicks' published picks for a date (defaults to today UTC). Public board shows Good-rated picks by default. Markets: H2H, OU2.5, BTTS, AsianHandicap, DoubleChance, etc. Public — no auth.

Inputs: date, market, rating.

flab_teamsGet TeamsA
Read-onlyIdempotent

List teams known to FutPicks. Public — no auth.

Inputs: no named parameters.

flab_track_recordGet Track RecordA
Read-onlyIdempotent

Historical settled-pick performance with AND-combined filters: market, league, rating, outcome (Won/Lost/Push), and date range. Returns hit rate, profit, and ROI. Public — no auth.

Inputs: to, from, isLive, league, +3 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 17 tools

    Disambiguation3/5

    Most tools target distinct resources, but there is real overlap among match listing tools (flab_matches_today, flab_matches_upcoming, flab_evaluate_matches) and pick listing/performance tools (flab_picks_today, flab_picks_board, flab_track_record, flab_backtest_run). The descriptions provide helpful differentiators, yet an agent could easily select the wrong member of these clusters.

    Naming Consistency3/5

    The consistent 'flab_' prefix and snake_case help readability, but naming conventions are mixed: some tools use verb-first (flab_evaluate_matches, flab_export_picks) while others use noun-first or noun-temporal forms (flab_matches_today, flab_picks_board, flab_backtest_run, flab_ops_run). This inconsistency makes the API slightly harder to predict.

    Tool Count4/5

    At 17 tools, the server is on the heavier side, but the count is justified by three distinct access tiers: public data, Pro-only analytics, and admin operations. Each tool appears to serve a real workflow, so the size feels reasonable rather than bloated.

    Completeness5/5

    The tool surface covers the core domain thoroughly: match discovery and details, published picks and pick boards, historical performance, backtesting, CSV export, on-demand evaluation, health checks, and pipeline operations. There are no obvious dead ends or missing critical operations for a read-oriented sports-data API.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      A
      quality
      D
      maintenance
      Provides live football data through MCP tools, enabling users to fetch today's matches and top scorers for competitions like the Premier League or World Cup.
      2
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables MCP clients to access live football data from FotMob, including match stats, team form, injuries, and player workload, without making predictions.
      10
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that turns real NFL & fantasy data into a decisive edge, offering 70+ tools for draft assistance, start/sit recommendations, trade analysis, playoff odds, and more, with live league integration.
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Provides MCP access to PlayerElo's football analytics, including player/coach Elo ratings, match predictions, value bets, and transfer fit scores.
      17
      1
      MIT