Muffed — verified NFL stats and fantasy context
by muffed.ai · remote · no sign-in to list tools · v1.0.3 · published by ai.muffed
Verified NFL stats and Sleeper league context. Every figure carries its own source rank.
15 tools: 4 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http muffed https://muffed.ai/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnrun_stat_query
The server marks "run_stat_query" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "run_stat_query" says "run": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
15 tools
Changes things 4Claude Code: ask
run_stat_queryComputes 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), …1 finding
Why it is in this group
- The name "run_stat_query" says "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "run_stat_query" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "run_stat_query" says "run": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Compute an NFL statistic on request
sleeper_roster_storiesOne team's roster mapped to the verified figures and published Muffed surfaces for each player.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: A roster's verified stories
sleeper_standings_storyLeague standings derived from Sleeper's roster settings — records, points for, and points against where available.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: A league's standings
verify_claimChecks structured claims against Muffed's verified panel.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Check a stated figure against Muffed
Only reads 11Claude Code: allow
compare_entitiesTwo 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.No findings
Why it is in this group
- The name "compare_entities" says "compare": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Compare two players or teams
get_backfieldMuffed's published handcuff page for one team's backfield, plus the current depth chart and injury status from Sleeper.No findings
Why it is in this group
- The name "get_backfield" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: A team's backfield
get_current_insightsMuffed'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.No findings
Why it is in this group
- The name "get_current_insights" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Muffed's current reads
get_entity_metricsThe verified figures Muffed holds for one NFL player or one NFL team (by name or abbreviation, e.g.No findings
Why it is in this group
- The name "get_entity_metrics" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: A player's or team's verified figures
get_metric_definitionMuffed'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 ra…No findings
Why it is in this group
- The name "get_metric_definition" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: What a metric means
list_metricsWhat Muffed can answer on.No findings
Why it is in this group
- The name "list_metrics" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: List verified metrics
query_stat_leadersTop entities on one verified metric for one season, pre-sorted, each with the source's own rank and the population it was ranked against.No findings
Why it is in this group
- The name "query_stat_leaders" says "query": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Verified stat leaders
search_metricsThe verified metrics that match a topic — e.g.No findings
Why it is in this group
- The name "search_metrics" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Search verified metrics by topic
sleeper_find_leaguesLists the NFL leagues a Sleeper username belongs to, with each league's id.No findings
Why it is in this group
- The name "sleeper_find_leagues" says "find": a word for reading.
Description, as the server wrote it Lists the NFL leagues a Sleeper username belongs to, with each league's id. Muffed stores nothing about the requester.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: Find a Sleeper user's leagues
sleeper_get_leagueOne league's name, season, size, current week, detected scoring format, and the manager-to-roster map.No findings
Why it is in this group
- The name "sleeper_get_league" says "get": a word for reading.
Description, as the server wrote it One league's name, season, size, current week, detected scoring format, and the manager-to-roster map.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: A Sleeper league's setup
sleeper_matchup_previewBoth sides of a league matchup, with the verified figures Muffed holds for the players involved and each team's record.No findings
Why it is in this group
- The name "sleeper_matchup_preview" says "preview": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: Verified context for a matchup
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http muffed https://muffed.ai/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__muffed__get_current_insights",
"mcp__muffed__query_stat_leaders",
"mcp__muffed__get_entity_metrics",
"mcp__muffed__compare_entities",
"mcp__muffed__get_metric_definition",
"mcp__muffed__list_metrics",
"mcp__muffed__search_metrics",
"mcp__muffed__get_backfield",
"mcp__muffed__sleeper_find_leagues",
"mcp__muffed__sleeper_get_league",
"mcp__muffed__sleeper_matchup_preview"
],
"ask": [
"mcp__muffed__verify_claim",
"mcp__muffed__run_stat_query",
"mcp__muffed__sleeper_roster_stories",
"mcp__muffed__sleeper_standings_story"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as muffed. Review it before you use it.