FighterAPI

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

UFC fights since 2000, plus PFL and Bellator: results, round stats, fighters and odds. REST and MCP.

VerifiedStreamable HTTPWeb executableLocation & LifestyleFinance

Overview

AI-generated overview

FighterAPI gives an assistant UFC, PFL and Bellator fight data: results, stat sheets, fighter profiles, Elo ratings and sportsbook moneylines.

What you can do
  • List and read cards: events by season and status, plus every fight on a card with results, method, round, time and judges' scores
  • Look up fighters: search by name or nickname, then pull profiles, career rates, records by method and full fight histories
  • Inspect single fights: stat sheets, round-by-round lines, ratings and odds
  • Query ratings and leaderboards: Elo by weight class and career strike and grappling leaderboards
  • Read market data: upcoming schedule with current moneylines, opening and closing lines by sportsbook, and line movement snapshots
When to use it
Useful when you want an assistant to answer MMA questions with structured data — fight results and scorecards, fighter scouting and career rates, Elo comparisons, or odds and line movement for UFC, PFL and Bellator cards.
Requirements
A remote Streamable HTTP endpoint; nothing to install. An API key is required to call tools, sent as an x-api-key header, a bearer token or a key query parameter. A free key gives 500 credits a month; each tool call costs 1 to 10 credits. A local stdio option exists via a cloned Node.js repo with FIGHTERAPI_API_KEY.
Before you install
Calls consume paid credits, and plans or wallet top-ups cost money beyond the free monthly allowance. The API key is a secret and appears in the connection URL in some setup examples, so keep it out of shared configs. Odds are market information only; the server's own tool descriptions say not to compute stakes or recommend bets. Ratings are the provider's own and it is not affiliated with any promotion.

Installation

In SourceWeft

  1. Open FighterAPI 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%2Ffighterapi/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": {
    "fighterapi": {
      "type": "http",
      "url": "https://mcp.fighterapi.com/mcp",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

FighterAPI MCP server

[Smithery] [MCP Registry]

The fight data API. Results, judges' scorecards and the full stat sheet for nearly every UFC fight since 2000, round by round, plus PFL (2012 on) and Bellator (2009 to 2024) results, fighters and ratings with the same key. Fighter profiles, career rates, our own ratings and sportsbook moneylines (UFC from June 2020, PFL from April 2023, Bellator from January 2022 to 2024). REST API and MCP server. 500 free credits every month, no card.

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

You:    "What is Islam Makhachev's significant strike accuracy by round across his UFC fights?"Claude: [calls get_fighter_fights]
You:    "Show the opening and closing moneyline for every main event this year."Claude: [calls get_odds]

Run it locally (stdio)

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

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

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

Skills

Sixteen Claude skills that turn Claude into an MMA analyst wired to these tools: fight and card lookup, fighter scouting, per-round striking and grappling rates, Elo by weight class, odds comparison and devigging, favourite calibration, edge detection and backtesting. They are plain SKILL.md files in skills/.

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

Or install them as a Claude Code plugin:

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

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

Point Claude at the skills/ folder (for Claude Code, copy or symlink the skill folders into ~/.claude/skills/ or a project's .claude/skills/), connect the MCP server below, and ask. Start with skills/dispatch if you are unsure which skill fits. Full catalog: skills/README.md.

Useful pages

Python

The official Python client is on PyPI: fighterapi.

bash
pip install fighterapiexport FIGHTERAPI_API_KEY=sk_live_...
python
from fighterapi import Client
client = Client()
events = client.list_events(status="final", limit=3)["events"]for e in events:    print(e["event_id"], e["event_date"], e["name"])

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 fighterapi "https://mcp.fighterapi.com/mcp?key=YOUR_API_KEY"

Claude Desktop, Cursor and other clients

json
{  "mcpServers": {    "fighterapi": {      "url": "https://mcp.fighterapi.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.fighterapi.com/v1/list_events -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 FIGHTERAPI_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://fighterapi.com/signup.

Tools (11)

ToolWhat it returns
list_eventsCards by year and status, with the main event
search_fightersFind fighters by name or nickname
get_eventA card's fights with results, method, round, time and judges' scores
get_scheduleUpcoming fights with current moneylines where a book has posted one
get_ratingsOur fighter ratings (Elo from every UFC result since 2000)
get_fightOne fight: result, full stat sheets, round-by-round lines, ratings and odds
get_fighterProfile, UFC record by method, career rates, rating and recent fights
get_fighter_fightsA fighter's full UFC history with stats, ratings and closing lines
get_leadersCareer leaderboards from every fight's stat sheet
get_oddsOpening, closing and current moneylines by sportsbook for a fight (5) or a card (10)
get_line_movementSnapshots of each posted line before a fight

Leagues: mma (default, UFC), pfl, bellator (pass league to any tool).

Data

  • Every UFC card since 2000 with results, method, round, time and judges' scorecards; the full stat sheet, round by round, for nearly every card
  • PFL (2012 on) and Bellator (2009 to 2024) results, fighters and ratings; no stat sheets exist for those promotions in recent years
  • Fighter profiles with reach, stance and gym, career rates by method, and our Elo ratings from every UFC result since 2000
  • Moneylines and total rounds, no props: UFC opening and closing lines from June 2020 (a median of 5 to 7 books per fight; usually one book since mid-2024), PFL from April 2023 and Bellator from January 2022 to 2024 with fewer books; pre-fight snapshots: once a day from October 2026, and every hour in the two days before a fight

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

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://fighterapi.com/pricing

Attribution

Ratings are ours. Not affiliated with the UFC, PFL, Bellator or any promotion.

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/fighterapi-mcp

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

bash
export FIGHTERAPI_API_KEY=your_key

Codex sends it as a bearer token.

Use with Gemini CLI

bash
export FIGHTERAPI_API_KEY=your_keygemini extensions install https://github.com/noahowsh/fighterapi-mcp

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

Source: README.md at commit 0d8fd0d

Tools

11

list_events

List events

Use to find cards. Lists events newest first with the venue, status, number of fights and main event. Filter by season (year) and status (scheduled or final). Costs 1 credit.

Parameterslimitleagueoffsetseasonstatus

get_event

Event

Use for one card: every fight in order with the result, method, round and time, judges' scores and referee. Costs 2 credits.

Parametersleagueevent_idrequired

get_schedule

Schedule

Use for upcoming fights: every scheduled bout in the next N days (default 30) with the current moneyline from any book that has posted one. 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.

Parametersdaysleague

get_fight

Fight

Use for everything about one fight: the result, both fighters' full stat sheets (strikes by target and position, takedowns, control time, guard passes, reversals, submission attempts; UFC only, null elsewhere and where the source has no sheet), round-by-round lines (UFC only), each fighter's rating before and after, and the opening and closing moneyline from each book that posted one (2024 on). 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.

Parametersleaguebout_idrequired

search_fighters

Search fighters

Use to find a fighter's id by name or nickname (accents optional). Returns weight class, country, pro record, number of fights in the promotion (bouts; ufc_bouts for the UFC only) and last fight date. Costs 1 credit.

Parameterslimitqueryrequiredleagueweight_class

get_fighter

Fighter

Use for one fighter's profile: date of birth, height, reach, stance, gym, record in the promotion by method (record; ufc_record is the same for the UFC and null for other promotions), career rates per 15 minutes from the stat sheets (significant strikes landed and absorbed, accuracy, defense, takedowns, submission attempts, control share; UFC only), current and peak rating, and the last five fights. Costs 5 credits.

Parametersleaguefighter_idrequired

get_fighter_fights

Fighter fights

Use for a fighter's full history in the promotion: every fight with the opponent, result, method, round, time, strikes landed and absorbed and takedowns (UFC only), rating before and after, and the median closing moneyline across sportsbooks. 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.

Parameterslimitleagueoffsetfighter_idrequired

get_leaders

Leaders

Use for career leaderboards computed from every fight's stat sheet: sig_landed_per_15 (significant strikes landed per 15 min), sig_absorbed_per_15 (significant strikes absorbed per 15 min), sig_accuracy (significant strike accuracy), sig_defense (significant strike defense), td_per_15 (takedowns landed per 15 min), td_accuracy (takedown accuracy), td_defense (takedown defense), knockdowns (knockdowns), sub_attempts_per_15 (submission attempts per 15 min), control_share (share of fight time in control), finish_rate (wins by KO/TKO or submission, as a share of wins). Filter by weight class, a starting year, and a minimum number of fights (default 5). Costs 5 credits.

Parametersstatrequiredlimitsincemin_fightsweight_class

get_ratings

Ratings

Use for our fighter ratings: an Elo built from the promotion's own results (the UFC since 2000), highest first, for fighters active since a given year (default last year). Filter by weight class. Costs 2 credits.

Parameterslimitleagueactive_sinceweight_class

get_odds

Odds

Use for betting lines: each posted sportsbook's opening, closing and current moneyline for both fighters, with implied probabilities and the total-rounds line. Opening and closing lines start with the UFC cards of June 2020; a median of 5 to 7 books per fight (some fights since mid-2024 have only one book). Pass bout_id for one fight (5 credits) or event_id for a whole card (10 credits). Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersleaguebout_idevent_id

get_line_movement

Line movement

Use to see how a fight's line moved before the bell: our snapshots of each posted moneyline, from first capture to fight day (once a day from October 2026, and every hour in the four days before). 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.

Parametersleaguebout_idrequiredproviderall_snapshots

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