What it is
Is this weapon actually better at your stats? Is your build strong, or did you just get lucky? Spud Coach answers with real numbers pulled straight from the game's data — every weapon, item, and stat interaction computed exactly, not remembered off a tier list.
Install
uvx spudcoach
Requires Python 3.11+ and uv — uvx comes bundled with it.
Build your dataset
The game's data files are copyrighted, so nothing pre-built ships with Spud Coach — you generate data/brotato.json yourself, once, from your own Brotato install.
uv run python build_dataset.py
Needs a local extraction first — see extraction-setup.md. Game version and build timestamp are auto-detected; re-run after each game patch to refresh your local copy.
Connect it to Claude
Claude Code
claude mcp add spudcoach -- uv run --directory /path/to/spud-coach python -m brotato_coach.server
Claude Desktop
{
"mcpServers": {
"spud-coach": {
"command": "uvx",
"args": ["spudcoach", "--data", "/path/to/brotato.json"]
}
}
}
Add this to claude_desktop_config.json, then fully restart Claude Desktop. Hitting a "Git executable not found" error on Windows? See the README.
What you get
Start here
read_me— session-start primer: game basics, verified mechanics, and what the precomputed fields mean
Data lookups
get_weapon/get_item/get_character— full records: stats, effects, kit. Each accepts a list of names to batch lookups into one callget_weapon_class_set— set bonuses for a weapon classlist_weapons/list_items— filtered summarieslist_characters— find characters by scaling stat, wanted tag, banned items, special effect, class bonus or starting weapon; returns full recordsget_filter_options— valid filter values (tags, archetypes, tiers, classes, character vocabularies)
DPS & comparison
weapon_dps— one weapon's realized DPS at your statscompare_weapons— rank several weapons by DPScompare_merge_paths— which tier-merge order wins, and where it flipsstat_gradient— which stat to buy next, ranked by the DPS it would add
Bestiary
get_enemy— an enemy's stats, attack profile and abilities, resolved at a given wavelist_enemies— filter by zone, ability or attack kindwave_composition— what actually spawns in a wave, and when
Build evaluation
evaluate_item_for_build— live / wasted / harmful verdict for an itemloadout_set_bonuses— set-bonus progress across a whole loadoutexplain_stat— a stat's real mechanics (caps, dead-weight ranges)stat_display_value— raw stat → what the game displays
Run analysis
evaluate_run— post-mortem a whole run.json in one callcheck_dataset_version— which game version the facts are from