Horizontal

WorksWork and collaborationKnowledge and research

UFCalendar Fight API — MMA MCP server

MMA MCP: UFC, PFL, BKFC, RIZIN, OKTAGON results, stats, rankings, scorecards. Free plan, no card.

Addresshttps://api.ufcalendar.com/mcp
Claude Codeclaude mcp add --transport http fight-api https://api.ufcalendar.com/mcp
For Cursor and other clients
{
  "mcpServers": {
    "fight-api": {
      "type": "http",
      "url": "https://api.ufcalendar.com/mcp"
    }
  }
}

It asks for: Authorization

Watch out

Has tools that change things: 2 of them

The server itself marks these tools as deleting or overwriting data (destructiveHint): have the agent ask you before it calls them.

Test
Works: Handshake succeeded
Tools
52 tools
Handshake
2.3 s
Transport
streamable-http · 2025-06-18
Tested
6 November 2026
Registry name
com.ufcalendar/fight-api v1.7.0
Listed
31 October 2026
Updated
31 October 2026
Website
www.ufcalendar.com/developers/agents
Source
github.com/UFCalendar/fight-api-skill
The last 1 tests
WhenResultTime
2026-11-06 12:20 UTCHandshake succeeded2.3 s

The 52 tools it listed

"Read only" and "Changes data" are the server's own marks. Underlined parameters are required.

  1. compare_fightersRead only

    Compare two fighters

    Head-to-head in one call: both bios and career statistics, strike location and position mix, current win streaks, previous meetings, common opponents with each result, the booked bout between them if one exists, UFCalendar's model win probability for it and the Power Index ratings. The tale-of-the-tape tool.

    a b

  2. create_webhook_endpoint

    Register a webhook endpoint

    Register an https endpoint to receive signed webhooks (event announced, fight result, card changed, event completed, odds moved: the UFCalendar consensus odds line on an upcoming bout moved 5+ points or the favourite flipped; information only, not betting advice). The signing secret is returned ONCE — store it before the reply is discarded. At most 3 active endpoints per account.

    url events

  3. delete_webhook_endpointChanges data

    Delete a webhook endpoint

    Permanently remove one webhook endpoint from the calling account. Deliveries to it stop and its delivery history is dropped.

    endpoint_id

  4. find_fightsRead only

    Find fights

    THE tool for last/first/most-recent questions — search completed bouts across UFCalendar's launch promotions by title fight, finish method (ko, sub, dec, finish), division, fighter, winner, main-event only and date range, newest first by default. One call answers "the last title fight to end by knockout"; never page the schedule for it. At least one narrowing filter is required; 25 rows per page, 10 pages deep.

    org title_only method division fighter winner from to main_events_only order limit cursor

  5. get_articleRead only

    Get an article

    One UFCalendar article by slug: full body in Markdown (client widgets removed), title, summary, author, tags and publication date, in the requested language when a translation exists (English otherwise). Betting editorial is not served.

    slug locale

  6. get_broadcast_rightsRead only

    Get broadcast rights

    Who airs one promotion in each country: provider, kind and link. Pass a country code to narrow it to that market plus the worldwide row.

    org country series

  7. get_calendar_feed_urlRead only

    Get calendar feed URLs

    The three subscribable ICS calendar feed URL templates for one promotion — per event, per card section, or per bout at its estimated start — with a <your-api-key> placeholder where the key goes. Returns URL templates only, never the caller's credential; the human pastes the finished URL into their calendar app.

    org

  8. get_championsRead only

    Get current champions

    Every current champion across the promotions the API covers, with the division and the snapshot date the board was published. Pass org (e.g. "ufc") and/or division (e.g. "lightweight") to narrow it.

    org division

  9. get_coverageRead only

    Get data coverage

    What the database holds for each covered promotion, year by year: events, settled bouts and the share of them with per-fight stats, round-by-round stats, official commission scorecards and a UFCalendar consensus odds line (information only, not betting advice), plus when the latest result landed. Computed from the data, refreshed every 30 minutes.

    org

  10. get_divisionRead only

    Get a division

    One weight class in one promotion: the current rankings board when the promotion publishes one, upcoming bouts booked at that weight, the most recent results and the active roster by recency. The division-page answer in one call.

    org division

  11. get_event_cardRead only

    Get an event and its full card

    Fetch one event by slug or id with its complete bout order, both corners, venue, broadcast listings and results when the card has been fought. Pass include=eta for per-bout estimated start times and include=odds for each bout's current UFCalendar consensus odds line (information only, not betting advice).

    event include

  12. get_event_changesRead only

    Get an event’s change log

    The audit trail for one card: bouts added or cancelled, opponents swapped, start times moved, fighter profiles merged — newest first.

    event

  13. get_event_oddsRead only

    Get consensus odds for a card

    The UFCalendar consensus odds line for every bout on one card, in card order: the current line, the opening line, the closing line once a bout is settled, and how far the market moved since opening, each with how many sportsbooks backed it, plus every bout's prop markets (method of victory, total rounds, goes the distance). Unpriced bouts are listed with nulls. Book identities are never exposed. Information only, not betting advice.

    event

  14. get_event_storylinesRead only

    Get event storylines

    The talking points of one card, computed from the record: title fights and title eliminators, the closest bout by UFCalendar's model, rematches and trilogy deciders, who is on a streak, who is debuting or returning from a long layoff, the ranked fighters and champions on the card, nations represented, the tallest and longest-reach fighters and the fastest career finish on the bill.

    event

  15. get_fightRead only

    Get a bout

    Fetch one bout by id. Pass include=stats for per-fight totals, include=rounds for round-by-round statistics, include=scorecards for the official judges’ cards, include=odds for the current UFCalendar consensus odds line (the closing line once the bout is settled) (information only, not betting advice).

    fight_id include

  16. get_fight_oddsRead only

    Get consensus odds for a bout

    The UFCalendar consensus odds line for one bout: the current line, the opening line, the closing line once the bout is settled, and the movement since opening in implied-probability points, each point with its American and decimal price, implied and margin-removed probability and how many sportsbooks backed it. Also the prop markets: method of victory per corner (KO/TKO, submission, decision), total rounds over/under per line and whether it goes the distance. Book identities are never exposed. Information only, not betting advice.

    fight_id

  17. get_fight_statsRead only

    Get a bout's stats and fantasy points

    Per-fight totals for both corners of one bout (strikes by target and position, takedowns, knockdowns, control and position time), each with UFCalendar fantasy points and their category breakdown, plus data-quality flags in meta.quality (rounds present, position data present, whether the round sums match the totals).

    fight_id

  18. get_fighterRead only

    Get a fighter

    Fetch one fighter by slug or id: bio, record, career statistics and freely licensed portraits. Pass include=history for the full multi-promotion career timeline, include=stats, include=rankings or include=power_index, include=bonuses for the UFC bonus ledger, and include=credentials for grappling and wrestling pedigree, gyms and coaches (sourced, confidence-graded). Always carries next_fight and last_fight.

    fighter include history_limit

  19. get_judgeRead only

    Get a judge

    One official's career aggregates by id: fights and rounds scored, rounds scored 10-8 or wider, three-judge cards that came back split, lone dissents, first and last date scored, and the promotions worked. Same shape as a list_judges row; use get_judge_scorecards for the cards themselves.

    judge_id

  20. get_judge_scorecardsRead only

    Get a judge’s scorecards

    Every official card one judge has turned in, newest first: per-round points, card totals, decision type and point deductions. Each row flags lone dissents and split panels and shows the colleagues' totals. Commission records only.

    judge_id limit cursor

  21. get_leaderboardRead only

    Get a stat leaderboard

    One statistical leaderboard for one promotion from UFCalendar's Record Book rollup — career, single-fight, single-round, division or event boards across 48 metrics (wins, finishes, significant strikes, takedowns, control time, finish rate and more), optionally narrowed to a division, a country or active fighters. Ranked, with the sample size behind each value.

    org metric division country population limit

  22. get_matchmakerRead only

    Get the matchmaker board

    UFCalendar's matchmaker: the fights worth making in one promotion, scored for rank proximity, momentum, competitiveness and story (rematches, eliminators), per division or across the roster. Our own engine over rankings, Power Index and recent form — not a list of booked bouts. Runs without the website's style-clash (Fight DNA) factor, so scores can differ slightly from ufcalendar.com.

    org division limit

  23. get_next_eventRead only

    Get the next event

    The single next upcoming card for one promotion, or across all of them: the soonest event that has not finished. For UFC, developmental sub-series cards (Dana White's Contender Series, Road to UFC) are skipped while a numbered card or Fight Night is booked; pass skip_series=false to include them. Pass include_card=true to get the full bout list in the same metered call.

    org skip_series include_card

  24. get_odds_historyRead only

    Get the odds line movement

    Every UFCalendar consensus odds point recorded for one bout, oldest first: the line-movement series, with how many sportsbooks backed each point. A point is stored only when the line moves. Narrow with from/to dates; cursor paginated. Pro plans and up. Information only, not betting advice.

    fight_id from to limit cursor

  25. get_orgRead only

    Get a promotion

    Fetch one promotion by slug (ufc, pfl, oktagon, bkfc or rizin): name, short name, country, website and its capability flags (stats, rounds, rankings, broadcasts, predictions, scorecards, odds; odds are information only, not betting advice). list_orgs returns the same rows for every promotion without a credential.

    org

  26. get_pickem_splitsRead only

    Get pick'em splits

    How the UFCalendar community is picking each bout on one card: picks for each corner, the total and the percentage, in card order. Crowd sentiment from our own pick'em game, not a market and not a forecast.

    event

  27. get_plansRead only

    Plans and quotas

    List the UFCalendar Fight API plans, their monthly request quotas and per-minute limits, including the free plan (1,000 requests a month, no card). Answers "what does this cost" without a credential.

  28. get_power_indexRead only

    Get the UFCalendar Power Index board

    The UFCalendar Power Index board for one promotion — our own rating engine, refreshed hourly, with peak rating and fights rated. Pass view=movers for the biggest risers over a window, view=peaks for all-time peak ratings, division= to narrow.

    org view division days limit

  29. get_predictions_upcomingRead only

    Get model win probabilities

    UFCalendar model win probabilities for upcoming UFC bouts, published about three weeks out and repriced at least weekly. Corner-stamped, so a probability is never shown against the wrong pair. Pass event= to narrow to one card. Informational model output, not betting advice.

    event

  30. get_rankingsRead only

    Get a rankings board

    The official rankings board for one promotion, point-in-time: pass a date to read the board as it stood that day. Rank 0 is the champion. Pass a division to narrow it. Each entry comes with movement against the previous snapshot (is_new for a debut), and meta names the previous and next snapshot dates.

    org division date board

  31. get_record_bookRead only

    Get the record book

    The Record Book for one promotion in one call: the top rows of every leaderboard, grouped by category — the all-time and single-night records an agent quotes. Narrow by division, country, active fighters or one scope.

    org division country population scope top

  32. get_refereeRead only

    Get a referee

    One referee's career aggregates by slug (e.g. herb-dean): bouts worked per promotion, first and last bout, finish rate, method breakdown and average fight time. Same shape as a list_referees row; use get_referee_fights for the bouts themselves.

    referee

  33. get_referee_fightsRead only

    Get the bouts a referee worked

    Every settled bout one referee worked in the covered promotions, newest first, with both corners, the result and the event. Cursor paginated.

    referee limit cursor

  34. get_usageRead only

    Get your API usage

    How many requests the calling account has used this month, the plan limit, the per-minute limit and when the counter resets — and, on an owner-granted trial, when the trial ends (trial_ends_at).

  35. get_venueRead only

    Get a venue

    Fetch one venue by id: name, city, region, country, capacity, coordinates and IANA time zone.

    venue_id

  36. get_venue_eventsRead only

    List events at a venue

    Every covered event held at one venue, newest first — upcoming cards on top, then the history. Same filters and row shape as list_events (status, from, to, order, cursor).

    venue_id status from to order limit cursor

  37. get_year_statsRead only

    Get a year in review

    One calendar year of a promotion (or all covered promotions) in numbers: events and title fights, finish methods and busiest divisions, the fastest finishes, the biggest upsets and Power Index climbers, the busiest fighters, host countries and the most-used judges.

    year org

  38. how_to_connectRead only

    How to connect

    Explain how to authenticate against the UFCalendar Fight API from this MCP server: an API key bearer token, or signing in with a UFCalendar account. Returns the URLs to do it.

  39. how_to_watchRead only

    How to watch an event

    Who airs one event, country by country: the promotion's rights deals merged with the event's own confirmed broadcast listings, with provider, kind (tv, stream, ppv…), link and a worldwide row. Pass a two-letter country code to get that market plus worldwide. Series-aware, so a Contender Series card shows its own deal, not the numbered-card one.

    event country

  40. list_changesRead only

    List recent card changes

    The cross-event change feed, newest first: bouts added, cancelled or reinstated, opponents swapped, start times or venues moved, fighter profiles merged — across every covered promotion or one of them, since a date (default the last 90 days). The same audit trail webhooks deliver, for agents that poll instead.

    org since kind limit cursor

  41. list_eventsRead only

    List events

    List fight cards by promotion, status and date range. A bare call returns the upcoming schedule, soonest first; pass order=desc for the archive, newest first. Filter to title cards or PPVs with is_title_card / is_ppv, and pass include=headline for each card's main event (and its result once fought) in the same call. Cursor paginated.

    org status from to order is_title_card is_ppv include limit cursor

  42. list_judgesRead only

    List judges

    The judge directory with career aggregates: cards turned in, rounds scored, 10-8s, split cards and lone dissents, plus the league-wide baseline rates in meta.league. Filter by name, promotion or a minimum number of fights.

    q org min_fights limit cursor

  43. list_orgsRead only

    List promotions

    List the promotions the UFCalendar Fight API covers, with per-org capability flags (stats, rounds, rankings, broadcasts, predictions, scorecards, odds). Odds are the UFCalendar consensus line: information only, not betting advice.

  44. list_refereesRead only

    List referees

    The referee directory across the covered promotions, busiest first: bouts worked, promotions, first and last bout, finish rate, how their bouts ended (KO/TKO, submission, decision, other) and average fight time. Filter by name or promotion. The referee id is a slug of the name.

    q org limit cursor

  45. list_split_decisionsRead only

    List split and majority decisions

    Completed bouts decided on split or majority cards, newest first, with every judge's official card and the dissenting judge named — commission records only, across covered promotions or one of them, in a date range. Facts as filed; UFCalendar adds no verdict of its own.

    org from to limit cursor

  46. list_webhook_endpointsRead only

    List webhook endpoints

    List the signed webhook endpoints registered on the calling account, with the event kinds each one subscribes to.

  47. rotate_webhook_secretChanges data

    Rotate a webhook signing secret

    Replace the signing secret of one webhook endpoint. The old secret stops verifying immediately, so update the receiver first. The new secret is returned once.

    endpoint_id

  48. searchRead only

    Search fighters and events

    Typeahead search across fighters and events in one call. Use it to turn a name a user typed into a slug you can pass to the other tools.

    q

  49. search_articlesRead only

    Search UFCalendar articles

    Search UFCalendar's own editorial archive — previews, recaps, investigations, fighter-pay and technique pieces — by keyword or tag, newest first, in any of the 13 site languages. Returns title, summary, tags, date and the canonical URL; pass the slug to get_article for the body. Betting editorial is not served.

    q tag locale limit cursor

  50. search_fightersRead only

    Search the roster

    Search the fighter roster by name, nationality or promotion. Cursor paginated. Returns identity fields; use get_fighter for the full record.

    q country org limit cursor

  51. search_venuesRead only

    Search venues

    Find arenas and venues that have hosted a covered promotion, by name, city or country. Returns id, name, city, region, country, time zone and capacity; pass the id to get_venue_events for what was fought there.

    q country limit cursor

  52. whos_nextRead only

    Who should fight next

    For one fighter: the most sensible next opponents by UFCalendar's matchmaker, with the model win probability for each pairing and the score behind it, plus the bout already booked if there is one. Runs without the website's style-clash (Fight DNA) factor, so scores can differ slightly from ufcalendar.com.

    fighter limit

Is this yours?

Claim it to hear the moment it breaks, correct this page and add your own ways to use it.

A test is the handshake and the tool list: no tool was called. Names and descriptions are as listed by whoever registered the server; we haven't checked them.

Back to Tested MCP Servers