Muffed MCP
An MCP server providing verified NFL stats, fantasy context, and play-by-play data. It offers tools to query advanced metrics, check claims against verified sources, and access player and team insights without requiring authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://muffed.ai/api/mcpWhat its tools do
15 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to muffed.ai ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Verify NFL statistics against verified sources
- Query advanced metrics like EPA and target share
- Access player and team fantasy insights
- Check specific claims against the data panel
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- muffed 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 15 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
15 advertised
get_current_insights — Muffed's current reads
Muffed's published editorial reads on what is real in the NFL right now — each one a dated, sourced claim with its supporting figures, from the /trends board.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"subject": {
"type": "string"
}
}
}{
"title": "Muffed's current reads",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}query_stat_leaders — Verified stat leaders
Top entities on one verified metric for one season, pre-sorted, each with the source's own rank and the population it was ranked against. Takes a verified panel metric key.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"metric"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"order": {
"enum": [
"desc",
"asc"
],
"type": "string"
},
"metric": {
"type": "string"
},
"season": {
"type": "integer",
"maximum": 2026,
"minimum": 2016
},
"position": {
"type": "string"
},
"entity_kind": {
"enum": [
"player",
"team",
"route",
"personnel_group",
"box_count",
"rusher_count",
"coverage_type",
"regression_rule",
"metric",
"league"
],
"type": "string"
}
}
}{
"title": "Verified stat leaders",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_entity_metrics — A player's or team's verified figures
The verified figures Muffed holds for one NFL player or one NFL team (by name or abbreviation, e.g. "Bijan Robinson" or "DEN"), with the source's rank where one exists. By default the headline figures for that player or team; scope "all" returns every figure held, and a named metric returns all of that metric's rows. Names are resolved against the players and teams Muffed holds; an unrecognised name returns the closest matches rather than a guess.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"entity"
],
"properties": {
"scope": {
"enum": [
"headline",
"all"
],
"type": "string"
},
"entity": {
"type": "string"
},
"metric": {
"type": "string"
},
"season": {
"type": "integer",
"maximum": 2026,
"minimum": 2016
},
"entity_kind": {
"enum": [
"player",
"team"
],
"type": "string"
}
}
}{
"title": "A player's or team's verified figures",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_entities — Compare two players or teams
Two players or two teams shown side by side — by default on the metrics that matter for their position, on named metrics when `metrics` is set, and on the full set with all:true. Each side carries its source rank. States both figures and stops: it names no winner, no margin and no recommendation. `metrics` takes verified panel metric keys ("qb_anya.any_a") or their plain-English names. A measure outside the verified panel, such as yards per attempt, is refused with the nearest panel metrics.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"a",
"b"
],
"properties": {
"a": {
"type": "string"
},
"b": {
"type": "string"
},
"all": {
"type": "boolean"
},
"season": {
"type": "integer",
"maximum": 2026,
"minimum": 2016
},
"metrics": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 25
},
"entity_kind": {
"enum": [
"player",
"team"
],
"type": "string"
}
}
}{
"title": "Compare two players or teams",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_metric_definition — What a metric means
Muffed's published definition of a verified metric — what it measures, in plain language, from the glossary page for that term — plus which seasons it actually covers, how it is ranked, its licence and its attribution. Accepts a metric key or a common name ("cpoe", "rushing yards over expected"). Season coverage is often narrower than a decade — rushing yards over expectation exists from 2018 onward.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"metric"
],
"properties": {
"metric": {
"type": "string"
}
}
}{
"title": "What a metric means",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_metrics — List verified metrics
What Muffed can answer on. By default a summary of metric families with their counts and season coverage; with search or detail:true, individual metric keys. Returns keys and coverage only, never figures.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"detail": {
"type": "boolean"
},
"search": {
"type": "string",
"maxLength": 64
},
"season": {
"type": "integer",
"maximum": 2026,
"minimum": 2016
},
"entity_kind": {
"enum": [
"player",
"team",
"route",
"personnel_group",
"box_count",
"rusher_count",
"coverage_type",
"regression_rule",
"metric",
"league"
],
"type": "string"
}
}
}{
"title": "List verified metrics",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_metrics — Search verified metrics by topic
The verified metrics that match a topic — e.g. 'screens', 'blitz', 'time to throw' — ranked by a text match over each metric's key, label, common names and board description. Up to 20 entries, each with its key, subject, season coverage and the board it belongs to. Keys and coverage only, never figures.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"season": {
"type": "integer",
"maximum": 2026,
"minimum": 2016
},
"subject": {
"enum": [
"team",
"player"
],
"type": "string"
}
}
}{
"title": "Search verified metrics by topic",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_claim — Check a stated figure against Muffed
Checks structured claims against Muffed's verified panel. Each claim comes back confirmed, wrong (with the actual value), or unverifiable (with the metric's real season coverage). Takes structured fields only, not sentences.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"claims"
],
"properties": {
"claims": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric",
"entity",
"value"
],
"properties": {
"value": {
"type": "number"
},
"entity": {
"type": "string"
},
"metric": {
"type": "string"
},
"season": {
"type": "integer",
"maximum": 2026,
"minimum": 2016
},
"entity_kind": {
"enum": [
"player",
"team",
"route",
"personnel_group",
"box_count",
"rusher_count",
"coverage_type",
"regression_rule",
"metric",
"league"
],
"type": "string"
}
}
},
"maxItems": 25,
"minItems": 1
}
}
}{
"title": "Check a stated figure against Muffed",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_backfield — A team's backfield
Muffed's published handcuff page for one team's backfield, plus the current depth chart and injury status from Sleeper. Answers who backs up a starter, and who replaces one who is out.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"team"
],
"properties": {
"team": {
"enum": [
"ARI",
"ATL",
"BAL",
"BUF",
"CAR",
"CHI",
"CIN",
"CLE",
"DAL",
"DEN",
"DET",
"GB",
"HOU",
"IND",
"JAX",
"KC",
"LAC",
"LAR",
"LV",
"MIA",
"MIN",
"NE",
"NO",
"NYG",
"NYJ",
"PHI",
"PIT",
"SEA",
"SF",
"TB",
"TEN",
"WAS"
],
"type": "string"
}
}
}{
"title": "A team's backfield",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}run_stat_query — Compute an NFL statistic on request
Computes an NFL figure from a structured query rather than looking one up: a population (position, qualifying threshold), a window (seasons, weeks, a team span, a coach's tenure), one named measure, and one operation (leaders, rank, count, only-who, a per-season streak, or a share of a total). Answers questions the verified panel has no pre-computed row for — qualified superlatives, multi-season streaks, derived rates. Every response carries the executed method, the population size, the measure's definition and the data version it ran against. Figures are computed on request from nflverse data and are labelled as computed, not verified. A figure that cannot be served comes back with the reason and the nearest thing covered. Fantasy measures answer in the convention `scoring` names — "standard", "half_ppr" or "ppr" — and default to half-PPR when none is named; the response says which it used. A bare "PPR" means full PPR. measure.key takes a measure name ("rushing_yards", "half_ppr_points") or a verified panel metric key ("key_player_stats.rushing.yards", "fantasy_scoring.half_ppr_points"). A panel metric key this tool does not compute is refused with the reason.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"population",
"window",
"measure",
"op"
],
"properties": {
"op": {
"anyOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"k": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"kind": {
"type": "string",
"const": "leaders"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"direction"
],
"properties": {
"k": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"kind": {
"type": "string",
"const": "rank"
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"op",
"value"
],
"properties": {
"op": {
"enum": [
">=",
">",
"<=",
"<",
"="
],
"type": "string"
},
"kind": {
"type": "string",
"const": "count_where"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"op",
"value"
],
"properties": {
"op": {
"enum": [
">=",
">",
"<=",
"<",
"="
],
"type": "string"
},
"kind": {
"type": "string",
"const": "only_who"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"op",
"value",
"n_seasons"
],
"properties": {
"op": {
"enum": [
">=",
">",
"<=",
"<",
"="
],
"type": "string"
},
"kind": {
"type": "string",
"const": "streak_each"
},
"value": {
"type": "number"
},
"n_seasons": {
"type": "integer",
"maximum": 10,
"minimum": 2
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"part"
],
"properties": {
"kind": {
"type": "string",
"const": "share_of"
},
"part": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"seasons"
],
"properties": {
"kind": {
"type": "string",
"const": "seasons"
},
"seasons": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"maxItems": 20,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"n"
],
"properties": {
"n": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"kind": {
"type": "string",
"const": "last_n_seasons"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"season",
"weeks"
],
"properties": {
"kind": {
"type": "string",
"const": "weeks"
},
"weeks": {
"type": "array",
"items": {
"type": "integer",
"maximum": 23,
"minimum": 1
},
"maxItems": 23,
"minItems": 1
},
"season": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"const": "since_debut"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"team"
],
"properties": {
"kind": {
"type": "string",
"const": "with_team"
},
"team": {
"type": "string",
"maxLength": 4,
"minLength": 2
},
"seasons": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"maxItems": 20,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"coach"
],
"properties": {
"kind": {
"type": "string",
"const": "coach_tenure"
},
"team": {
"type": "string",
"maxLength": 4,
"minLength": 2
},
"coach": {
"type": "string",
"maxLength": 60,
"minLength": 2
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"op",
"value"
],
"properties": {
"k": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"op": {
"enum": [
">=",
">",
"<=",
"<",
"="
],
"type": "string"
},
"kind": {
"type": "string",
"const": "count_weeks_where"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"unit",
"op",
"value"
],
"properties": {
"op": {
"enum": [
">=",
">",
"<=",
"<",
"="
],
"type": "string"
},
"kind": {
"type": "string",
"const": "longest_streak"
},
"unit": {
"type": "string",
"const": "weeks"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"from",
"to"
],
"properties": {
"k": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"to": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"from": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"kind": {
"type": "string",
"const": "delta_between_seasons"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"from",
"to"
],
"properties": {
"k": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"to": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"from": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"kind": {
"type": "string",
"const": "rank_change"
}
},
"additionalProperties": false
}
]
},
"window": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"seasons"
],
"properties": {
"kind": {
"type": "string",
"const": "seasons"
},
"seasons": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"maxItems": 20,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"n"
],
"properties": {
"n": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"kind": {
"type": "string",
"const": "last_n_seasons"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"season",
"weeks"
],
"properties": {
"kind": {
"type": "string",
"const": "weeks"
},
"weeks": {
"type": "array",
"items": {
"type": "integer",
"maximum": 23,
"minimum": 1
},
"maxItems": 23,
"minItems": 1
},
"season": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"const": "since_debut"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"team"
],
"properties": {
"kind": {
"type": "string",
"const": "with_team"
},
"team": {
"type": "string",
"maxLength": 4,
"minLength": 2
},
"seasons": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2100,
"minimum": 1999
},
"maxItems": 20,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"coach"
],
"properties": {
"kind": {
"type": "string",
"const": "coach_tenure"
},
"team": {
"type": "string",
"maxLength": 4,
"minLength": 2
},
"coach": {
"type": "string",
"maxLength": 60,
"minLength": 2
}
},
"additionalProperties": false
}
]
},
"measure": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 64,
"minLength": 1
}
},
"additionalProperties": false
},
"scoring": {
"enum": [
"standard",
"half_ppr",
"ppr"
],
"type": "string"
},
"population": {
"type": "object",
"required": [
"entity"
],
"properties": {
"entity": {
"enum": [
"player",
"team"
],
"type": "string"
},
"qualify": {
"type": "object",
"required": [
"measure",
"op",
"value"
],
"properties": {
"op": {
"enum": [
">=",
">",
"<=",
"<",
"="
],
"type": "string"
},
"value": {
"type": "number"
},
"measure": {
"type": "string",
"maxLength": 64,
"minLength": 1
}
},
"additionalProperties": false
},
"position": {
"type": "array",
"items": {
"type": "string",
"maxLength": 4,
"minLength": 1
},
"maxItems": 6
},
"entity_name": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"exclude_position": {
"type": "array",
"items": {
"type": "string",
"maxLength": 4,
"minLength": 1
},
"maxItems": 6
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"title": "Compute an NFL statistic on request",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}sleeper_find_leagues — Find a Sleeper user's leagues
Lists the NFL leagues a Sleeper username belongs to, with each league's id. Muffed stores nothing about the requester.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"username"
],
"properties": {
"season": {
"type": "string",
"pattern": "^\\d{4}$"
},
"username": {
"type": "string",
"maxLength": 64,
"minLength": 1
}
}
}{
"title": "Find a Sleeper user's leagues",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}sleeper_get_league — A Sleeper league's setup
One league's name, season, size, current week, detected scoring format, and the manager-to-roster map.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"league_id"
],
"properties": {
"league_id": {
"type": "string",
"pattern": "^\\d{6,24}$"
}
}
}{
"title": "A Sleeper league's setup",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}sleeper_matchup_preview — Verified context for a matchup
Both sides of a league matchup, with the verified figures Muffed holds for the players involved and each team's record. Muffed does not project outcomes, name a winner, or recommend a lineup.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"league_id",
"team"
],
"properties": {
"team": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"week": {
"type": "integer",
"maximum": 18,
"minimum": 1
},
"league_id": {
"type": "string",
"pattern": "^\\d{6,24}$"
}
}
}{
"title": "Verified context for a matchup",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}sleeper_roster_stories — A roster's verified stories
One team's roster mapped to the verified figures and published Muffed surfaces for each player. Players Muffed does not cover are listed as uncovered rather than omitted.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"league_id",
"team"
],
"properties": {
"team": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"league_id": {
"type": "string",
"pattern": "^\\d{6,24}$"
}
}
}{
"title": "A roster's verified stories",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}sleeper_standings_story — A league's standings
League standings derived from Sleeper's roster settings — records, points for, and points against where available. Sleeper publishes no standings endpoint, so these are computed from the roster rows.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"league_id"
],
"properties": {
"league_id": {
"type": "string",
"pattern": "^\\d{6,24}$"
}
}
}{
"title": "A league's standings",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1834 ms
- 95th percentile latency
- 1834 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1834 ms · metadata changed · 15 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http muffed-mcp https://muffed.ai/api/mcpCodex
codex mcp add muffed-mcp --url https://muffed.ai/api/mcpCursor
{
"mcpServers": {
"muffed-mcp": {
"url": "https://muffed.ai/api/mcp"
}
}
}Cline
{
"mcpServers": {
"muffed-mcp": {
"type": "streamableHttp",
"url": "https://muffed.ai/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"muffed-mcp": {
"type": "http",
"url": "https://muffed.ai/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http muffed-mcp https://muffed.ai/api/mcpClaude Desktop
https://muffed.ai/api/mcpWindsurf
{
"mcpServers": {
"muffed-mcp": {
"serverUrl": "https://muffed.ai/api/mcp"
}
}
}Let your agent find its tools
Find servers like Muffed MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run Muffed MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.