pitch.lab

Connector documentation

pitch.lab for ChatGPT and Claude

The pitch.lab Model Context Protocol (MCP) server lets you ask ChatGPT or Claude questions about your Fantasy Premier League team — current squad, transfer suggestions, mini-league rivals, fixture difficulty — and get answers grounded in our live data instead of the model's training-cutoff guesses. World Cup 2026 nation form and player projections are exposed through the same connector.

Overview

What this connector does

pitch.lab is a read-only data and analytics connector. It exposes 22 tools across two areas:

  • FPL (17 tools) — manager histories, transfer suggestions, top-target rankings, the Pitch.lab Difficulty Rating built from rolling team xG/xGA, live transfer trends and captaincy from the FPL API.
  • World Cup 2026 (5 tools) — nation form, match predictions from our Dixon-Coles xG model, squad recommendations and side-by-side nation comparisons.

Nothing in this connector writes to your FPL account, places bets or moves money. It is read-only by design.

Example prompts

What people actually ask

Compare my playstyle with the other managers I follow this season.
Who should I transfer in for the next 5 gameweeks? My budget is £8m and I want to stay below 15% ownership.
What does my current squad look like for GW36 and which two players are at risk of a -4 hit if I move them?
How do England, France and Brazil compare on recent form going into the World Cup?
Show me the easiest fixture runs over the next 6 gameweeks ranked by Pitch.lab Difficulty Rating.

Connection requirements

What you need before connecting

  • A free Fantasy Premier League account (your team is then claimable by FPL entry id).
  • A pitch.lab account — create one at pitch.lab/register. Free, email + password.
  • ChatGPT Plus / Pro or any Claude account (Claude.ai web, Claude Desktop, or Claude on the API).

No payment, no FPL plan tier, no premium subscription required. Geographic availability follows the FPL API itself (worldwide).

Setup

Connecting from Claude.ai

  1. Open Claude.ai → Settings ConnectorsAdd custom connector.
  2. Paste the MCP URL:
    https://fpl-predictor-api-0fe6d85a3788.herokuapp.com/mcp/sse
  3. Click Add. Claude walks the OAuth discovery chain, registers itself dynamically (RFC 7591) and redirects you to a pitch.lab consent screen.
  4. On the consent screen, sign in with your pitch.lab email + password and click Allow.
  5. Open a new chat and ask any of the example prompts above. The tool-call chip with the pitch.lab logo appears when a tool fires.

Connecting from ChatGPT

  1. ChatGPT → SettingsApps Advanced → turn Developer Mode on.
  2. Back on the Apps page, click Create app.
  3. Name it pitch.lab, paste the MCP URL above, leave the auth dropdown on auto-detect (or pick OAuth).
  4. Click Create. ChatGPT redirects you to the same pitch.lab consent screen — sign in, click Allow.
  5. Open any chat, mention the app, and ask. ChatGPT decides when to call a pitch.lab tool based on the prompt.

Connecting from Claude Desktop

Claude Desktop reads MCP servers out of a JSON config file. For this connector, the easiest path is to generate an API key inside pitch.lab (Settings → API keys → New) and paste it as a Bearer header. Add the following to claude_desktop_config.json:

{
  "mcpServers": {
    "pitch.lab": {
      "transport": "sse",
      "url": "https://fpl-predictor-api-0fe6d85a3788.herokuapp.com/mcp/sse",
      "headers": {
        "Authorization": "Bearer pk_live_<paste-your-key-here>"
      }
    }
  }
}

Restart Claude Desktop. The 22 pitch.lab tools appear in the tool picker.

Tool catalogue

What ChatGPT and Claude can call

FPL — your team

  • list_my_managers
  • get_manager_season
  • get_manager_gameweeks
  • get_manager_transfers
  • get_manager_current_squad
  • get_recent_decisions
  • get_followed_managers_summary
  • compare_managers
  • get_mini_league_standings

FPL — players, fixtures, advice

  • find_player
  • get_player_outlook
  • get_top_transfer_targets
  • suggest_transfers
  • get_team_fdr_outlook
  • get_fpl_rules
  • get_live_transfer_trends
  • get_live_top_captained

World Cup 2026

  • get_wc_match_predictions
  • get_wc_player_outlook
  • get_wc_nation_form
  • get_wc_squad_recommendation
  • compare_wc_nations

Every tool is annotated as readOnlyHint: true in the MCP tools/list response — none of them mutate your FPL account or any third-party system.

Security & privacy

How your data is handled

  • Authentication — OAuth 2.1 with dynamic client registration (RFC 7591), PKCE S256, and single-use refresh-token rotation with family revocation (RFC 6819 §5.2.2.3). API keys (an alternative path for Claude Desktop) are stored as SHA-256 hashes; raw values exist only in transit.
  • Transport — TLS from a recognised CA on the MCP origin (Heroku managed certificate).
  • Scope — every tool response is filtered by the caller's user id at the database layer. You see your own claimed managers + public managers (FPL content creators / legendary managers); never another user's private data.
  • No model training — we do not feed your usage of this connector into any model. The LLM you talk to runs in ChatGPT or Claude, governed by their privacy policies, not ours.

Full details: privacy policy · terms of service.

Troubleshooting

Common issues and one-line fixes

"MCP server does not implement OAuth"
You pasted a URL on a different host than the OAuth discovery docs live on. Use the URL above (Heroku origin) directly — not the Vercel proxy URL.
The consent screen says "invalid_client"
Clear the connector and re-add it. Claude/ChatGPT cache a stale client registration; re-adding triggers a fresh dynamic registration.
No tools show up after I authorise
The first tools/list call may take 2–3 seconds on a cold Heroku dyno. Wait a moment and refresh the connector panel. If still empty, sign out and back in — your session may have expired.
"You have no claimed managers yet"
Open pitch.lab/fpl/manager and click Claim your team. Paste your FPL entry id (the number in your FPL team URL) — your history will ingest in the background within ~60s.
compare_managers returns an empty array
The model passed the internal NotableManager id instead of the FPL entry id. Ask the assistant to call list_my_managers first and use the latest_fpl_entry_id field — never the small id field — when comparing.
Transfer suggestions are missing predictions
Predictions for upcoming gameweeks are computed nightly. If you connected right after a fixture-list refresh and the next GW hasn't been scored yet, suggest_transfers returns a predictions_warning with the exact admin endpoint that needs to fire. Email us if the warning persists for more than 12 hours.

Support

Get help or report an issue

Email [email protected]. Replies during UK business hours.

For account-specific issues, include your pitch.lab email and the last GW you used the connector — it lets us trace the exact tool call in our logs.