Skip to content

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.

Changes · 4

15 tools: 4 change things and 11 only read.

Scanned Oct 21, 2026

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

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "run_stat_query" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "run_stat_query" says "run": a word for a change.

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "run_stat_query" says "run": a word for a change.

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.