Back to Browse

Futpicks MCP Server

by Khavel
Developer ToolsModerate5.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

Probable football lineups with start probability and expected fantasy points, graded in public.

About

Probable football lineups with start probability and expected fantasy points, graded in public.

Security Report

5.2
Moderate5.2Moderate Risk

This is a well-architected MCP server for sports data access with proper authentication tiers, input validation via zod, and appropriate error handling. Tokens are correctly sourced from environment variables and never logged. The codebase demonstrates solid security practices: public tools require no auth, sensitive operations properly enforce required credentials, and all network calls use HTTPS to a legitimate API. Minor code quality observations exist but do not present security concerns. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.

3 files analyzed · 8 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

API base URL. Defaults to https://futpicks.com.Optional

Environment variable: FUTPICKS_API_URL

Data-scope API key (flab_live_...). Optional: the public tools — probable lineups, matches, picks, track record — work without it.Required

Environment variable: FUTPICKS_API_KEY

Ops-scope API key (flab_ops_...), admin only. Optional.Required

Environment variable: FUTPICKS_OPS_TOKEN

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-khavel-futpicks": {
      "env": {
        "FUTPICKS_API_KEY": "your-futpicks-api-key-here",
        "FUTPICKS_API_URL": "your-futpicks-api-url-here",
        "FUTPICKS_OPS_TOKEN": "your-futpicks-ops-token-here"
      },
      "args": [
        "-y",
        "futpicks-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

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_…"
      }
    }
  }
}

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

VariableRequired forDescription
FUTPICKS_API_URLNoAPI base URL (default: https://futpicks.com)
FUTPICKS_API_KEYData toolsData-scope API key (ProTier policy)
FUTPICKS_OPS_TOKENOps toolsOps-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)

ToolEndpointKey params
flab_picks_todayGET /api/picks/todaydate?, rating?, market?
flab_pick_detailsGET /api/picks/{id}id
flab_picks_boardGET /api/picks/boarddate?, league?, market?, rating?, odds/edge ranges
flab_matches_todayGET /api/matches/today
flab_match_detailsGET /api/matches/{id}[/intelligence]id, includeIntelligence?
flab_matches_upcomingGET /api/matches/upcomingdays? (1–30)
flab_teamsGET /api/teams
flab_track_recordGET /api/track-record/filteredmarket?, league?, rating?, outcome?, from?, to?
flab_healthGET /api/health

Data tools (require FUTPICKS_API_KEY)

ToolEndpointKey params
flab_picks_historyGET /api/picks/historyfrom?, to?, league?, market?, rating?, page?, pageSize?
flab_evaluate_matchesGET /api/evaluate/matches
flab_evaluate_matchGET /api/evaluate/{matchId}matchId
flab_backtest_runPOST /api/backtest/rundateFrom, dateTo, rating?, market?, minEdge?, leagueId?
flab_export_picksGET /api/picks/exportfrom?, to?, market?, rating? (returns CSV)
flab_data_catalogGET /api/v1/data

Ops tools (require FUTPICKS_OPS_TOKEN, admin-only)

ToolEndpointKey params
flab_ops_runPOST /api/v1/ops/operations/{kind}kind, plus date?/lastDays?/windowDays?/matchId?
flab_ops_statusGET /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.

Reviews

No reviews yet

Be the first to review this server!