StrikerAPI

io.github.noahowshPublished by GitHub account noahowshv1.1.6Updated Oct 25, 2026

Premier League, MLS and European football: lineups, shot maps, xG, tables and odds. REST and MCP.

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Hosted soccer data MCP server giving an assistant fixtures, lineups, shot maps, xG, tables, Elo ratings and sportsbook odds across 17 competitions.

What you can do
Look up clubs, players, fixtures and results by season, date, stage or club, and get league tables, Elo ratings and head-to-head records for 17 competitions, including the Premier League, MLS, La Liga, Serie A, Bundesliga, Ligue 1 and the Champions League. Retrieve one match in full: score, box scores, lineups and formations, substitutions, and ordered events such as goals, cards, shots with location and xG, fouls, corners and VAR decisions. Analyse players and teams: profiles, per-season totals and per-90 rates, match logs, season leaders, per-match team averages and shot maps by club, player or defence. Compare betting lines: median and per-sportsbook three-way moneylines, handicaps andtot
When to use it
Useful when you want an assistant to answer soccer questions with real data — match previews and recaps, team and player form, xG and shot analysis, league tables, or comparing sportsbook lines and anytime goalscorer prices. It suits analysts and fans working across the covered leagues rather than a single competition.
Requirements
A remote Streamable HTTP endpoint; nothing to install. A StrikerAPI API key is required to call tools (listing tools works without one), sent as the x-api-key header, a bearer token, or a key query parameter. A free tier of 500 credits per month is offered; paid plans and top-ups exist.
Before you install
Every tool call spends credits from your account, so heavy use can exhaust the free allowance or incur paid plans and top-ups. The API key is a billable credential; keep it out of shared configs and logs. Odds and goalscorer prices are market information only, and the provider states it is not affiliated with any league, club or federation.

Installation

In SourceWeft

  1. Open StrikerAPI in the dashboard and add it to a workspace.
  2. Connect x-api-key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.noahowsh%2Fstrikerapi/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "strikerapi": {
      "type": "http",
      "url": "https://mcp.strikerapi.com/mcp",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

StrikerAPI MCP server

[Smithery] [MCP Registry]

The soccer data API. Results, lineups, box scores and match events for 17 competitions, from the Premier League, MLS, La Liga, Serie A, the Bundesliga, Ligue 1 and the Champions League to the EFL Championship, the NWSL, Liga MX, the Europa League, the Conference League, the Eredivisie, the Primeira Liga, the Scottish Premiership, Brazil's Serie A and Argentina's Liga Profesional, with the location of every charted shot, our own expected goals and Elo ratings, sportsbook lines and anytime goalscorer prices. REST API and MCP server. 500 free credits every month, no card.

Website: https://strikerapi.com · Docs: https://strikerapi.com/docs · Get a key: https://strikerapi.com/signup

You:    "Which Premier League teams allowed the most xG from set pieces last season?"Claude: [calls get_team_stats]
You:    "Show Arsenal's shot map against Chelsea in their last meeting."Claude: [calls get_shot_map]
You:    "What was Erling Haaland's anytime goalscorer price at each sportsbook before his last match?"Claude: [calls get_player_props]

Run it locally (stdio)

Most clients connect to https://mcp.strikerapi.com/mcp directly. For a client that launches a local process instead:

bash
git clone https://github.com/noahowsh/strikerapi-mcp.git && cd strikerapi-mcp && npm installSTRIKERAPI_API_KEY=your_key node index.js
json
{ "mcpServers": { "strikerapi": { "command": "node", "args": ["/path/to/strikerapi-mcp/index.js"], "env": { "STRIKERAPI_API_KEY": "your_key" } } } }

It forwards to the hosted server with your key, so every tool and credit cost is the same.

Skills

The skills/ folder holds 16 Claude skills that turn Claude into a soccer analyst on top of these tools: match lookup, team and player analysis, odds comparison, xG and shot maps, Elo, Poisson and Dixon-Coles score models, three-way devigging, calibration, edge detection, backtesting and anytime goalscorer modeling. Each skill names the exact tools it calls and what they cost.

bash
git clone https://github.com/noahowsh/strikerapi-mcp.git

Or install them as a Claude Code plugin:

/plugin marketplace add noahowsh/strikerapi-mcp/plugin install strikerapi-skills@strikerapi

Or with the skills CLI: npx skills add noahowsh/strikerapi-mcp.

Then point Claude at the skills/ folder (for Claude Code, copy or symlink the folders into ~/.claude/skills/) and connect the server below. Start with dispatch if you are unsure which skill to use. Full catalog: skills/README.md.

Python

The official Python client is on PyPI: strikerapi.

bash
pip install strikerapiexport STRIKERAPI_API_KEY=sk_live_...
python
from strikerapi import Client, to_dataframe
client = Client()
table = client.get_standings(league="mls")df = to_dataframe(table, key="standings")print(df[["group_name", "rank", "display_name", "played", "points"]].head(10))

Typed errors for a bad key, no credits left, not found and rate limits, automatic retries, and to_dataframe for pandas.

Quick start

This is a hosted (remote) MCP server over Streamable HTTP. There is nothing to install.

Claude Code

bash
claude mcp add --transport http strikerapi "https://mcp.strikerapi.com/mcp?key=YOUR_API_KEY"

Claude Desktop, Cursor and other clients

json
{  "mcpServers": {    "strikerapi": {      "url": "https://mcp.strikerapi.com/mcp?key=YOUR_API_KEY"    }  }}

The key can also be sent as an x-api-key header or Authorization: Bearer. Connecting and listing tools works without a key; calling a tool needs one.

REST

bash
curl -X POST https://mcp.strikerapi.com/v1/list_teams -H "x-api-key: YOUR_API_KEY"

Every tool is POST /v1/{tool} with a JSON body.

Examples

Runnable Python (standard library only) and Node 18+ (no dependencies) examples live in examples/:

bash
export STRIKERAPI_API_KEY=your_keypython3 examples/python/quickstart.pynode examples/node/quickstart.mjs

See examples/README.md for details. Get a free key (500 credits a month, no card) at https://strikerapi.com/signup.

Tools (19)

ToolWhat it returns
list_teamsClub ids, abbreviations and colours for a season
search_playersFind players by name
list_gamesFixtures and results by season, stage, date, range or club
get_scheduleUpcoming fixtures with the median three-way line across sportsbooks
get_standingsThe league table: points, deductions, goal difference, home and away, form
get_ratingsOur club Elo ratings, ranked
get_head_to_headTwo clubs' meetings: record, goals and every result
get_gameOne match: score, both box scores, every player's line, key events, each book's line
get_lineupsFormations, starting XIs, benches and substitutions with minutes
get_playerProfile, per-season totals and per-90 rates, last 10 matches
get_player_gamesA player's full match log
get_leadersSeason leaders: goals, assists, shots, xG, cards, saves
get_team_statsPer-match averages: goals, xG, shots, possession, passing, discipline, for and against
get_oddsEvery sportsbook's three-way moneyline, goal handicap and total for a match (5) or a day (10), with results
get_eventsMatch events: goals, cards, substitutions, shots with location and xG, fouls, corners
get_shot_mapShot map for a club, player or defence: every located shot with outcome and xG, plus zone totals
get_line_movementSnapshots of each sportsbook's line before kick-off
get_player_propsAnytime goalscorer prices by sportsbook, opening and closing
get_prop_historyA player's anytime goalscorer price against whether he scored, match by match

Leagues: soccer (default, Premier League), mls, laliga, seriea, bundesliga, ligue1, ucl, championship, nwsl, ligamx, uel, uecl, eredivisie, primeira, scotland, brazil, argentina (pass league to any tool).

Data

  • Seventeen competitions through the same 19 tools: Premier League, MLS, La Liga, Serie A, Bundesliga, Ligue 1, Champions League, EFL Championship, NWSL, Liga MX, Europa League, Conference League, Eredivisie, Primeira Liga, Scottish Premiership, Brazil's Serie A and Argentina's Liga Profesional
  • Results, lineups and goals from 2001-02 and shot locations from 2012-13 for the longest-covered leagues (start years differ by competition; coverage by season is on the docs page)
  • League tables with deductions, goal difference, home and away and form; club Elo ratings; head to head
  • Per-sportsbook three-way moneylines, goal handicaps and totals from 2017-18, densest (about ten books a match) from 2021-22 to 2023-24, one or two books since, plus opening and closing lines since June 2020 for 16 competitions; pre-match line snapshots from launch: once a day, and every hour for matches in the next two days
  • Anytime goalscorer prices by sportsbook (the Yes price, and No where a book posts it; no other player market) for seven competitions: the Premier League and MLS from April 2024, Ligue 1 from May 2024, La Liga, Serie A and the Bundesliga from August 2024 and the Champions League from March 2025, from DraftKings and FanDuel with Pinnacle and William Hill on some matches in 2026; none for the other ten competitions

Coverage by season, read live from the database: https://strikerapi.com/docs

Useful pages

Pricing

500 free credits every month, no card. Plans: Starter $19/mo (10,000 credits), Pro $49/mo (30,000), Scale $149/mo (125,000). Wallet top-ups from $5, never expire. https://strikerapi.com/pricing

Attribution

Expected goals and ratings are ours. Not affiliated with any league, club or federation.

License

MIT for the contents of this repository. Data terms as above.

Use with Codex

Add this repo as a Codex plugin marketplace, then install the plugin:

bash
codex plugin marketplace add noahowsh/strikerapi-mcp

Then open the plugin directory in Codex and install strikerapi-skills from the strikerapi marketplace. The plugin bundles the skills in skills/ and the StrikerAPI MCP server (https://mcp.strikerapi.com/mcp). Set your key first (free at https://strikerapi.com/signup):

bash
export STRIKERAPI_API_KEY=your_key

Codex sends it as a bearer token.

Use with Gemini CLI

bash
export STRIKERAPI_API_KEY=your_keygemini extensions install https://github.com/noahowsh/strikerapi-mcp

The extension adds the StrikerAPI MCP server (https://mcp.strikerapi.com/mcp) and sends the key in the x-api-key header. Get a free key (500 credits a month) at https://strikerapi.com/signup.

Source: README.md at commit 5ed52d7

Tools

19

list_teams

List teams

Use to find club ids and abbreviations for a season (default: the latest). Every other tool takes a club as an id, abbreviation or name. Pass league for MLS (mls), La Liga (laliga), Serie A (seriea), the Bundesliga (bundesliga), Ligue 1 (ligue1), the Champions League (ucl), the EFL Championship (championship), the NWSL (nwsl), Liga MX (ligamx), the Europa League (uel), the Conference League (uecl), the Eredivisie (eredivisie), the Primeira Liga (primeira), the Scottish Premiership (scotland), Brazil's Serie A (brazil) or Argentina's Liga Profesional (argentina); default: the Premier League. Costs 1 credit.

Parametersleagueseason

list_games

List games

Use to list fixtures and results by season, stage, date, date range or club, newest first. For upcoming fixtures with lines use get_schedule; for one match in full use get_game. Costs 2 credits.

Parameterstodatefromteamlimitstageleagueoffsetseasonstatus

get_schedule

Schedule

Use for upcoming fixtures (next 1-30 days, default 7) with the median three-way line across posted sportsbooks (home, draw, away moneylines, goal total, handicap) and its implied probabilities. For every book's line use get_odds. Costs 2 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersdaysteamleague

get_game

Game

Use for one match in full: score (with shootout), both clubs' box scores (possession, shots, xG, passing, discipline), every player's line, the key events (goals, cards, substitutions, penalties, VAR) and each sportsbook's opening and closing line. For every event use get_events; for formations use get_lineups. Costs 5 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersleaguegame_idrequired

get_lineups

Lineups

Use for a match's lineups: each club's formation, starting XI with positions and formation slots, the substitutes used with the minute they came on (and who went off when), and the unused bench. Before kick-off it returns the club-confirmed team sheet (source live) from about an hour before the match; until clubs publish, lineups is empty with a note and nothing is charged. Costs 5 credits.

Parametersleaguegame_idrequired

get_standings

Standings

Use for a season's league table: rank, played, won, drawn, lost, goals for and against, goal difference, points (official, with any deduction), qualification or relegation note, plus home and away records and recent form. Champions League: one table per group or the league phase. Costs 2 credits.

Parametersleagueseason

get_ratings

Ratings

Use for our club Elo ratings, strongest first, as of the latest match (or as of date). A 100-point gap is about a 64% expected score for the stronger side at a neutral venue. Costs 2 credits.

Parametersdatelimitleague

get_head_to_head

Head to head

Use for two clubs' meetings in this competition: wins, draws and goals each, the first meeting, and the results newest first. Costs 2 credits.

Parametersteamrequiredlimitleagueopponentrequired

search_players

Search players

Use to find a player's id by name (accents optional), optionally within a club. Returns position, current club, last season and appearances. Costs 1 credit.

Parametersnamerequiredteamlimitleague

get_player

Player

Use for one player: profile, per-season appearances, starts, minutes, goals, assists, shots, our xG, cards and goalkeeping (saves, clean sheets) with per-90 rates, and the last 10 matches. Costs 5 credits.

Parametersleagueplayer_idrequired

get_player_games

Player games

Use for a player's match log, newest first: opponent, score, minutes on and off, goals, assists, shots, xG, fouls, cards and goalkeeping. Costs 5 credits.

Parameterslimitleagueoffsetseasonplayer_idrequired

get_leaders

Leaders

Use for a season's leaders in goals, assists, goal contributions, shots, shots on target, our xG, cards, saves or clean sheets, as totals or per 90 minutes (per90, with a minimum of 10 matches by default). Costs 5 credits.

Parametersstatlimitper90leagueseasonmin_games

get_team_stats

Team stats

Use for clubs' per-match averages over a season, for and against: goals, our xG, shots, shots on target, possession, pass accuracy, corners, fouls, cards, tackles, clean sheets. Possession is missing for some leagues and seasons (for example the Eredivisie before 2020, the Scottish Premiership 2015 to 2023, the NWSL before 2025) and its average covers only matches that have it. Costs 5 credits.

Parametersteamleagueseason

get_events

Events

Use for a match's events in order: goals (with assister, own goals, penalties), shots with location, outcome, body part and our xG, cards, substitutions, fouls, corners, offsides and VAR decisions. Filter with kind. Older matches carry goals, cards and substitutions only. Costs 10 credits.

Parameterskindlimitleagueoffsetgame_idrequired

get_shot_map

Shot map

Use for a shot map: a club's shots (or, with against, the shots it conceded), a player's, or one match's, for a season (default: the latest). Returns totals and zones (six-yard box, penalty area, outside the box, penalties) with goals, shots on target, xG and conversion, and every located shot with its x/y, end point, outcome and xG. Costs 10 credits.

Parametersteamleagueplayerseasonagainstgame_idinclude_shots

get_odds

Odds

Use for betting lines: each sportsbook's three-way moneyline (home, draw, away), goal handicap and total (opening and closing from June 2020 for 16 competitions and from 2024 for the rest; before that most books carry one final pre-match line), the no-margin probabilities each book's prices imply, and for finished matches the result and whether the total went over against the median close. Pass game_id for one match (5 credits), date for a day's matches (10 credits), or season (optionally a team) for a season of priced matches, 2 credits per match returned, up to 100 a page. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersdateteamlimitleagueoffsetseasongame_id

get_line_movement

Line movement

Use to see how a match's line moved before kick-off: our pre-game snapshots of each sportsbook's three-way moneyline, handicap and total (captured once a day, and every hour for matches in the next four days). Costs 10 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersleaguegame_idrequiredproviderall_snapshots

get_player_props

Player props

Use for player prop lines by sportsbook: the anytime goalscorer price, Yes in over_odds (and No in under_odds where a book posts it), with no line, from DraftKings, FanDuel, William Hill and Pinnacle as the archive holds them. Pass game_id for every player's props in one game (10 credits), or player_id with from_date (and to_date) for one player across games (10 credits per game returned, up to 100). Returns the closing line by default (the last before the game starts) or the opening line, with each book's over and under prices. Outside football the archive mostly holds one pre-game capture per line, so the opening and closing lines are usually the same; the opening line differs only where a second capture was taken (live capture from October 2026, and wherever else it is held). Set estimate_only to get the price without being charged. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersleaguemarketgame_idto_datebookmakerfrom_dateplayer_idestimate_onlysnapshot_type

get_prop_history

Prop history

Use to see how a player did against his prop line over time: for one market (anytime goalscorer: one row per match with the closing price and whether he scored), one row per game with the closing line (the median across books, or one book's), the opening line (the same as the close wherever only one capture was taken), the prices, what the player actually recorded from our box scores and the result against the line, plus the over rate. Costs 10 credits for up to 200 games. over_odds is the Yes price; result is over when he scored, under when he played and did not, and null when he was not in the squad or on the pitch (a void). Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parameterslimitleaguemarketrequiredto_datebookmakerfrom_dateplayer_idrequired

Version history

2
  1. v1.1.6LatestOct 16, 2026
  2. v1.1.4Oct 11, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts