For your AI

NFL stats MCP server — verified football data inside ChatGPT and Claude

Muffed is the AI that reads all the football data and tells fans what's actually real. The Muffed MCP server puts that engine inside your assistant: add https://muffed.ai/api/mcp to ChatGPT, Claude, Claude Code, Cursor, or any MCP-compatible client, and your AI can call Muffed's verified NFL data directly — how a player or team's season actually went, the current read on what's real across the league, advanced-stat leaders across ten seasons, backfield depth, and what the metrics mean. Every figure comes back sourced, dated, and ranked against its real population, and Muffed will check your assistant's arithmetic if you ask it to. No account, no API key, no cost.

Can I ask about my fantasy team? Connect a Sleeper league

Optional, and secondary to the football data above. If you play on Sleeper, giving your assistant a league id lets it see who is actually on your roster — Sleeper's API returns player ids, not names, so without this an assistant either gives up or guesses. Once it knows your roster, it can pull what Muffed has verified about those specific players. Muffed still doesn't tell you who to start; it tells your assistant what's true.

What it does

Your assistant stops guessing about football and starts asking. Every number it gets back is one Muffed already verified against source data, with the attribution and the as-of date attached. When your AI answers with them, it can cite where they came from — and if it gets a figure wrong, verify_claim catches it and returns the real one.

This is a real-football server first. Team identity, quarterback play under pressure, backfield workload, how a season actually went — those are the questions it's built for. Fantasy is the lens a lot of people look through, and it works well for that, but the data is about football.

What makes it different from asking your AI directly

An AI answering from memory gives you a number from whenever its training stopped, with no source and no date. Muffed's tools return figures recomputed from play-by-play and charting data, dated, attributed, and linked to a page you can check. That's the entire point: verified, dated, and sourced beats confident.

It goes one step further than most data sources are willing to. verify_claim takes a figure your AI has already stated and checks it against the panel — confirming it, or handing back the real number when it disagrees. Muffed is the only NFL data source that will check your AI's work.

Add it to your assistant

Claude — one click. This opens the Add-custom-connector dialog with the name and URL already filled. You still review and confirm; Claude will note that the values came from an external link. If you are signed out it asks you to sign in first.

Add Muffed to Claude

Claude Code — install the plugin instead of the bare connector. The plugin ships the endpoint and a skill that teaches the model the house rules: quote the pre-formed verified sentence rather than recomposing it, carry the attribution line verbatim because the credit is the licence, honour the scoring and charting disclosures, never derive a rank from result ordering, and never turn verified context into a start/sit call. A bare connector gives your model the data; the plugin also gives it the discipline the data was published under.

/plugin marketplace add cfagan17/muffed-mcp
/plugin install muffed@muffed

The skill is readable before you install anything: skills/muffed-figures/SKILL.md

Claude, by hand — Settings → Connectors → Add custom connector → paste the URL. There is no sign-in step, because there is nothing to authorize.

https://muffed.ai/api/mcp

Claude Code, without the plugin

claude mcp add --transport http muffed https://muffed.ai/api/mcp

ChatGPT — Settings → Connectors (or Developer mode) → add an MCP server → paste the same URL, no authentication. There is no one-click equivalent on ChatGPT yet.

https://muffed.ai/api/mcp

Cursor, VS Code, and other MCP clients — add to your MCP config:

{
  "mcpServers": {
    "muffed": {
      "type": "http",
      "url": "https://muffed.ai/api/mcp"
    }
  }
}

Muffed is published to the official MCP Registry as ai.muffed/muffed. Manifest and README: github.com/cfagan17/muffed-mcp

What your AI can ask for

14 tools, all read-only. Optional arguments are marked ?.

ToolArgumentsWhat it answers
get_current_insightslimit?, subject?What Muffed thinks is actually real about the NFL right now — verified, dated, with the evidence
query_stat_leadersmetric, season?, position?, entity_kind?, limit?, order?League leaders on one verified metric, each with the rank its source gave it. `metric` takes a key or a common name ("RYOE", "cpoe")
get_entity_metricsentity, entity_kind?, metric?, season?, scope?Every verified figure Muffed holds for one player or team, headline figures first — scope:"headline" for those alone
compare_entitiesa, b, entity_kind?, metrics?, season?, all?Two players or two teams side by side — the metrics that matter for their position by default, everything both have with all:true
get_metric_definitionmetricMuffed's published definition of a metric, plus which seasons it actually covers
list_metricsentity_kind?, season?, search?, limit?, detail?What can be asked about at all. Metric families by default; individual keys with search or detail:true. Coverage only, never figures
verify_claimclaims[] of { metric, entity, entity_kind?, season?, value }Checks stated figures against the verified panel and returns the real one if it disagrees
get_backfieldteamWho backs up a starting running back — and in-season, who replaces an injured one
run_stat_querypopulation, window, measure, op, scoring?Computes a figure from a structured query rather than looking one up — qualified superlatives, multi-season streaks, team and coach spans, derived rates. Fantasy measures answer in standard, half-PPR or full PPR; half-PPR when you don't say. Computed on request, labelled as computed rather than verified
sleeper_find_leaguesusername, season?Your Sleeper leagues, from your username
sleeper_get_leagueleague_idYour league's setup — teams, scoring format, roster slots, managers
sleeper_matchup_previewleague_id, team, week?Verified context on both sides of a matchup. `team` is a manager or team name in the league
sleeper_roster_storiesleague_id, teamOne team's players and what's verified about each. `team` is a manager or team name in the league
sleeper_standings_storyleague_idWhere your league stands, derived from Sleeper's roster records

Every tool is read-only: nothing writes, nothing changes, nothing about you is stored. We keep a short technical log of which tools get called — see our privacy policy.

Try asking

  • “What does Muffed say is real about the NFL right now?”
  • “Which team had the best offensive EPA per play last season?”
  • “Who led the league in rushing yards over expectation, and by how much?”
  • “What is RYOE, and who's good at it?”
  • “How did the Broncos' defense actually play in 2025?”
  • “Who backs up Bijan Robinson?”
  • “Compare Achane and Bijan on verified numbers.”
  • (optional) “My Sleeper username is [name] — what's verified about my roster?”

Reviewer walkthrough

For connector-directory reviewers and anyone verifying the server behaves as described. Each prompt exercises a different part of the surface, and each returns a populated response with no setup.

  1. The judgment layer and the citation envelope.
    “What does Muffed say is real about the NFL right now?”
    Calls get_current_insights. Returns dated editorial reads with their supporting figures, a pre-formed verified_sentence to quote, and the attribution line the licence requires.
  2. Metric resolution, coverage honesty, and a real definition.
    “What is RYOE, which seasons does Muffed have it for, and who led in 2025?”
    Calls get_metric_definition then query_stat_leaders. Both accept the plain-English name. The definition comes from the published glossary page; the coverage answer is 2018 onward, not a decade, which is the error this server exists to prevent.
  3. The gate, exposed — and the refusal boundary.
    “Ja'Marr Chase had 1,600 receiving yards in 2025, right? And should I start him over Jefferson?”
    Calls verify_claim, which returns the real figure because the stated one is wrong. The start/sit half is declined and answered with verified context instead: Muffed publishes no projections, start/sit calls, draft grades, picks, or betting lines, by design rather than by omission.

Sleeper tools. A public demo league is available for review — league id 1376003242500046848, a dynasty league Muffed has a team in. Try “In Sleeper league 1376003242500046848, what's verified about MuffedAI's roster?” — the team name matters, because sleeper_roster_stories requires it and answers with the league's team list rather than guessing. The league is scored full PPR, so responses carry league_scoring_not_half_ppr: Muffed publishes in Half-PPR, and the two are never mixed unlabelled.

Questions

Is it free?

Yes, and there is no account and no API key. It is rate-limited per IP so one caller cannot take it down.

Does it work with my ESPN or Yahoo league?

No — Sleeper only. Sleeper publishes a public read API, so loading a league is instant and needs no login. ESPN and Yahoo offer nothing comparable, and the alternative would be screen-scraping or handling your credentials, which we will not do. Nothing personal; there is just no door.

Will it tell me who to start?

No. Muffed does not do start/sit, lineup advice, projections, or draft grades — not here, not anywhere. The tools return what is verified about the players involved and let you decide. That is a permanent position, not a v1 limitation.

Where does the data come from?

Data via nflverse · NFL Next Gen Stats via nflverse · FTN Data via nflverse. League data comes from Sleeper's public API — via Sleeper. Every tool response carries its own attribution and date. Full detail on /methodology.

Why isn't draft-market data (ADP) in here?

Because the sources we use for it are licensed to cite, not to redistribute. We can quote a price on a page with credit, but we will not pipe someone else's data into your AI. Everything the tools serve is data we are licensed to build on.

How current is it?

Every response is stamped with its own as-of date, so you always know what you are looking at. Charting-derived figures cover the 2025 season only and say so. Season coverage varies by metric — rushing yards over expectation, for one, starts in 2018 rather than 2016, and asking outside that range returns the real coverage instead of a substitute.

Do you store my league?

No. A league id you give your assistant answers that request and is cached briefly to be polite to Sleeper's API. It is never written to our database and never linked to you. We keep a salted one-way hash of it for 30 days so we can count roughly how many distinct leagues use the server, and nothing else. Your Sleeper username is not logged at all.

Can I use this in something I'm building?

Individuals, freely. If you are calling it at volume or building it into a product, email hello@muffed.ai first so we can keep it up for everyone. The underlying nflverse data is CC-BY and free — what Muffed adds is verification, structure, freshness, and the story layer.

Support: hello@muffed.ai · Terms · Privacy

Source: Data via nflverse · NFL Next Gen Stats via nflverse · FTN Data via nflverse. Updated July 2026. How we verify our data.

Muffed publishes no projections, start/sit calls, or draft grades — in any tool, in any phrasing.

Ask this data a question

Every figure on this page comes out of Muffed's verified panel — and you can query the whole thing in plain English. No account, no key. Ask the data →