Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Fantasy Football Manager

PYPI · FANTASY-FOOTBALL-MANAGER · SCANNED SEP 21

ESPN draft and lineup analysis for Codex and MCP clients. Live actions use the ESPN companion.

+19 this week 77 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 30 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
Schema Quality & AI Usability86
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2367 tokens (~124/item across 19 items; 17 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management43
  • Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the Fantasy Football Manager MCP server?

Fantasy Football Manager runs locally as a PyPI package, launched with uvx fantasy-football-manager. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · fantasy-football-manager

# add to Claude Code
claude mcp add krmisystems-fantasy-football-manager -- uvx fantasy-football-manager
// .cursor/mcp.json
{
  "mcpServers": {
    "krmisystems-fantasy-football-manager": {
      "command": "uvx",
      "args": [
        "fantasy-football-manager"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "krmisystems-fantasy-football-manager": {
      "command": "uvx",
      "args": [
        "fantasy-football-manager"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add krmisystems-fantasy-football-manager -- uvx fantasy-football-manager
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "krmisystems-fantasy-football-manager": {
      "type": "local",
      "command": [
        "uvx",
        "fantasy-football-manager"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add krmisystems-fantasy-football-manager --command uvx --arg fantasy-football-manager
# ~/.hermes/config.yaml
mcp_servers:
  krmisystems-fantasy-football-manager:
    command: "uvx"
    args: ["fantasy-football-manager"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "krmisystems-fantasy-football-manager": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "fantasy-football-manager"
      ]
    }
  }
}
# add to Vellum
assistant mcp add krmisystems-fantasy-football-manager -t stdio -c uvx -a fantasy-football-manager
// mcp.json
{
  "mcpServers": {
    "krmisystems-fantasy-football-manager": {
      "command": "uvx",
      "args": [
        "fantasy-football-manager"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +16
    • Malware scan: unverified → pass security
  • 14 Sept 26 −15
    • Malware scan: pass → unverified security
  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +16
    • Malware scan: unverified → pass security
    • Security disclosure: fail → pass functional
  • 11 Sept 26 −15
    • Malware scan: pass → unverified security
    • Package version: 0.3.3 → 0.4.0 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/fantasy-football-manager@0.4.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 30 packages
Packages resolved 30
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 17 exposed · ~2,285 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
execute_demo_action ~177

Execute an existing proposal against synthetic demo state only. First call prepare_action, then obtain approval for that exact proposal when requires_confirmation is true. Execution rechecks snapshot and configuration revisions, freshness, automation modes, and action limits before changing state. Returns status='executed', scope, action, proposal_id, and the new revision, and records one audit event. Retrying a completed proposal returns its original result with idempotent_replay=true, without another state change or approval check. Unknown or changed proposals fail. Use the ESPN companion for live submissions.

NameTypeReqDescription
confirmationbooleanSet true only after the user approves this exact proposal in review mode. Automatic mode does not require confirmation.
proposal_idstringyesExact proposal_id returned by prepare_action in this data directory. Reuse the same ID to retry an uncertain response.

Structured output declared, but exposes no named fields.

No examples provided.

get_action_history ~110

Read recent audit records from this data directory without changing state. Returns history entries with id, at, event, and detail, ordered from newest to oldest. Records include snapshot imports, configuration changes, prepared proposals, and completed demo actions. An action_prepared event records preparation, not execution. Calculation evidence is separate from this audit history. Works before a snapshot is loaded.

NameTypeReqDescription
limitintegerMaximum audit records to return, from 1 through 500. Results are ordered from newest to oldest.

Structured output declared, but exposes no named fields.

No examples provided.

get_capabilities ~92

Read this server's capabilities before selecting analysis or execution tools. Returns supported actions, effective automation modes, pause state, snapshot presence, and state and configuration revisions. This server analyzes imported data and executes synthetic demo actions only. The response separately describes browser drafts and HTTP season actions through the ESPN companion. Its acceptance report distinguishes implemented actions from verified live execution. Works before a snapshot is loaded and does not change saved state.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_draft_recommendations ~119

Read cached results and status from the local draft monitor without running a simulation. Returns running, status, error, current, trial counters, and latest when the cached inputs remain usable. latest is null when revisions change, the snapshot becomes stale or incomplete, automation pauses, or no result exists. Completed trials include work across the monitor session, while current_state_trials counts only the current inputs. Use start_draft_monitor to produce these results or recommend_draft for an independent single batch. This tool does not fetch observations or append calculation evidence.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_manager_config ~65

Read the full current configuration and its config_revision. Returns strategies, automation presets and per-action modes, pause state, and user limits. Works before a snapshot is loaded and does not change saved state. Use this response as the starting configuration for update_manager_config to preserve existing settings.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_power_rankings ~111

Compare every team's best legal weekly lineup by projected points. Requires current season data, weekly inputs for every team, and verified locks with league scope. Returns rankings, source details, warnings, and input revisions with status='ok' or status='incomplete'. Incomplete team lineups produce null ranks, while missing league lock coverage produces an empty rankings list. These estimates describe one week and are not championship probabilities. Appends calculation evidence without changing rosters. Use recommend_lineup to analyze only the selected team.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_source_status ~92

Check the freshness and completeness of the saved observation. Requires an imported snapshot or loaded demo. Returns source fields, age_seconds, the phase-specific maximum_age_seconds, stale, and local draft monitor status. This tool reads saved data and does not refresh the source or run a simulation. Use the ESPN companion for fresh HTTP season observations or browser draft observations. Use import_league_snapshot for replacement data supplied by the caller.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_team ~78

Read the selected team's roster from the saved snapshot. Requires an imported snapshot or loaded demo. Returns the snapshot revision, league context, roster and reserve players, lineup, league rules, and budget when supplied. Use recommend_lineup to calculate a lineup or get_source_status to check observation freshness. This tool does not fetch new data or change saved state.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

import_league_snapshot ~190

Validate and save a complete league snapshot supplied by the caller. Use the ESPN companion to fetch live observations or load_demo for fictional data. Replacement requires the current snapshot revision and preserves observation order and confirmed draft history. Pending browser submissions, HTTP submissions, and queued waivers retain their original context and rules until reconciliation resolves them. Changing the league, selected team, or season resets configuration to defaults. Records the import, increments the snapshot revision, and invalidates unexecuted proposals and monitor results. Returns status='imported', revision, config_revision, and config_reset, or an error without replacing state.

NameTypeReqDescription
expected_revisionCurrent snapshot revision from get_team or get_capabilities. Omit only for the first import into empty state.
snapshotobjectyesComplete league observation. Use fantasy://schema/snapshot for fields, defaults, and rules. This is replacement data, not a patch.

Structured output declared, but exposes no named fields.

No examples provided.

load_demo ~115

Load a fictional scenario for local testing or demonstrations. Use import_league_snapshot for your own data. Requires an empty data directory or existing synthetic state and preserves confirmed draft history checks. Stops the local draft monitor, replaces the snapshot, and resets configuration when the league changes. Records the import and returns status='imported', revision, config_revision, and config_reset. This tool does not connect to ESPN.

NameTypeReqDescription
modestringFictional scenario to load: 'season' for weekly tools or 'draft' for draft simulations.

Structured output declared, but exposes no named fields.

No examples provided.

prepare_action ~199

Validate a synthetic action and save a proposal without executing it. Requires fresh, complete synthetic data, unpaused automation, and review or automatic mode for every action component. Checks action-specific player eligibility, locks, projections, roster rules, and user limits before saving the proposal. Returns proposal_id, normalized payload, mode, requires_confirmation, scope, and the bound snapshot and configuration revisions. Each call creates a new proposal and audit record. Use execute_demo_action with that exact proposal_id for execution. Use the ESPN companion for browser draft proposals or HTTP lineup, acquisition, drop, and IR proposals.

NameTypeReqDescription
actionstringyesSynthetic action: draft_pick, set_lineup, waiver_claim, free_agent_add, or drop_player. Trades are unsupported.
payloadyesExact action data. Picks and drops use player_id. Lineups use a complete lineup slot-to-player map. Adds use player_id, optional drop_id, and bid (default 0).

Structured output declared, but exposes no named fields.

No examples provided.

rank_waiver_candidates ~174

Rank alternative single-player acquisitions using the saved weekly snapshot and user limits. Requires current season data, verified locks, weekly projections, and known budget and pending commitments. Returns recommendations with add and optional drop IDs, lineup improvement, and maximum FAAB bids, plus revisions and input warnings. Status is ok, incomplete for missing inputs, or blocked when the weekly move limit is reached. Unrostered players are not verified free agents, and this tool does not estimate winning bids or submit claims. Appends calculation evidence. Use prepare_action only for synthetic acquisitions that pass action checks. Use the ESPN companion's espn_prepare_season_action for a live HTTP acquisition proposal.

NameTypeReqDescription
limitintegerMaximum number of alternative single-player acquisitions to return, from 1 through 100. Candidates are not a combined claim plan.

Structured output declared, but exposes no named fields.

No examples provided.

recommend_draft ~192

Run one bounded draft simulation against the current imported draft snapshot. Use start_draft_monitor for repeated batches or get_draft_recommendations to read that monitor's cached results. Requires draft data with consistent pick history and full-season projections for available and selected-team players. Returns estimated recommendations, trial counts, warnings, revisions, and status such as ready, stale_snapshot, incomplete_snapshot, or roster_complete. current checks revision and snapshot freshness after calculation, but does not grant action permission. Appends a calculation evidence record, including discarded work, without changing rosters or submitting picks.

NameTypeReqDescription
seedintegerRandom seed for this batch. Reuse an integer with identical inputs to reproduce the simulation. This does not remove forecast uncertainty.
trialsintegerSimulation trials in this single batch. Use 1 through the configured limits.batch_trials, at most 500. More trials increase work and reduce sampling noise.

Structured output declared, but exposes no named fields.

No examples provided.

recommend_lineup ~146

Optimize the selected team's known weekly projections while preserving locked slots. Uses the saved season snapshot, weekly projections, verified player locks, and configured source age limits. Returns status='ok' with a lineup and comparison details, or status='incomplete' with errors and missing-input details. Unknown unchanged scores can cancel from improvement while total projected points remain null. Comparison scope and coverage gaps describe those limits. Coverage suggestions do not authorize a repair. Locked players remain in their current slots, including unavailable players whose games have locked. Appends calculation evidence without changing the lineup, and includes the input snapshot and configuration revisions. Use prepare_action for a synthetic proposal or the ESPN companion for live lineup changes.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

start_draft_monitor ~177

Start background draft simulations and return the initial monitor status. Requires a loaded draft snapshot and no active local draft monitor. Each batch uses the latest imported snapshot and appends calculation evidence, including discarded batches. The monitor waits while paused or while the snapshot is stale or incomplete, and clears obsolete cached results. Import new observations to maintain freshness. This tool neither reads a browser nor submits picks. Use get_draft_recommendations for results, stop_draft_monitor to stop, or recommend_draft for one synchronous calculation.

NameTypeReqDescription
interval_secondsnumberPause in seconds after each batch or waiting check, from 1 through 60. Batch duration adds to the interval.
trialsintegerTrials per simulation batch, from 1 through 500 and no greater than limits.batch_trials. This is not a total trial budget.

Structured output declared, but exposes no named fields.

No examples provided.

stop_draft_monitor ~89

Request shutdown of the local draft monitor and wait up to five seconds. Returns monitor status and counters, with running=true and status='stopping' if the active batch still needs to finish. Use get_draft_recommendations to confirm running=false before starting another monitor. Repeated calls are safe when the monitor is already stopped. This tool does not stop the ESPN companion or change saved automation configuration.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

update_manager_config ~159

Replace the saved configuration using its current configuration revision. Read get_manager_config first to preserve settings that you do not intend to change. Omitted fields use model defaults rather than existing values, including when config is an empty object. Validates strategies and limits, records the change, and invalidates unexecuted proposals and monitor results. Returns status='updated' and the new config_revision, or a revision conflict without changing configuration. This tool does not execute actions or start a monitor.

NameTypeReqDescription
configobjectyesReplacement configuration using fantasy://schema/config. Omitted fields reset to model defaults. Existing values are not merged.
expected_revisionintegeryesCurrent config_revision from get_manager_config. This is the configuration revision, not the snapshot revision.

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the Fantasy Football Manager MCP server?

Fantasy Football Manager is an MCP server listed in the public MCP registry as io.github.krmisystems/fantasy-football-manager. ESPN draft and lineup analysis for Codex and MCP clients. Live actions use the ESPN companion. This page covers its PyPI package (fantasy-football-manager).

Is the Fantasy Football Manager MCP server safe to use?

Fantasy Football Manager scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Fantasy Football Manager MCP server expose?

Fantasy Football Manager exposes 17 tools: get_capabilities, load_demo, import_league_snapshot, get_team, get_source_status, and 12 more. Their descriptions and schemas cost roughly 2,285 tokens of context every time the server is loaded.

Is the Fantasy Football Manager MCP server still maintained?

Fantasy Football Manager is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.