{"name":"io.github.brendanlefebvre/spudcoach","slug":"brendanlefebvre-spudcoach","title":"Brotato Coach","description":"Deterministic Brotato theorycrafter MCP server: facts and math, not guesses.","url":"https://mcp.market/server/brendanlefebvre-spudcoach","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":22,"stars":0,"forks":0,"downloads_week":62,"last_push_at":"2026-08-04T12:23:16.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/brendanlefebvre/spud-coach","website":"https://spudcoach.fyi","version":"0.14.1","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"spudcoach","version":"0.14.1","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Path to a locally built brotato.json dataset (see README for how to build one — the game data itself is never distributed). Equivalent to the --data CLI flag.","name":"SPUDCOACH_DATA"}]}],"tools":[{"name":"check_dataset_version","description":"Report the loaded dataset's provenance: game_version, generated_at, and schema_version. Use to confirm which Brotato version the facts are from.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_merge_paths","description":"Compare two tier-merge paths for the SAME weapon across the ranged-damage range, at an otherwise-fixed stat block.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_weapons","description":"Rank several weapons by realized, stat-aware DPS (guaranteed + expected proc damage — see weapon_dps for what's folded in) at the SAME build stats.","write_action":false,"price_micros":0,"input_schema":null},{"name":"evaluate_item_for_build","description":"Decide whether an item is worth taking for a specific character/build.","write_action":false,"price_micros":0,"input_schema":null},{"name":"evaluate_run","description":"Post-mortem a whole Brotato run from its `run.json` save in one call.","write_action":true,"price_micros":0,"input_schema":null},{"name":"explain_stat","description":"Return verified mechanics for a stat: caps, special behaviors, and whether it's ever dead weight / safe below zero.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_character","description":"Look up a character's kit: wanted_tags, banned_item_groups, flat_bonuses, gain_modifiers (stat-gain multipliers), special_effects, class_bonuses (conditional per-weapon-set stat bonuses, e.g. Crazy's +100 range to Precise weapons), and starting_weapon_pool. Use this to know what a character wants and can't use before evaluating a build.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_enemy","description":"Look up one enemy's record: base stats, per-wave stat slopes, attack profile, and ability tags.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_filter_options","description":"List the valid filter values in the loaded dataset so you filter with exact, case-sensitive values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_item","description":"Look up an item's full record: effects, tags, archetype, and frozen_stat. Use for 'what does this item do'. Returns a not_found error with `did_you_mean` suggestions if the name doesn't match.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_weapon","description":"Look up a weapon's full record: base stats, scaling stats, proc effects, and set membership. For realized DPS at a build's stats, use weapon_dps instead — this record's raw fields aren't a DPS number by themselves.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_weapon_class_set","description":"Look up the set bonuses for a weapon CLASS (e.g. 'Blade', 'Gun', 'Elemental'), keyed by how many weapons of that class are equipped.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_characters","description":"Survey characters by what their kit does — 'which character suits an engineering build' in ONE call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_enemies","description":"List enemy summaries, optionally filtered by `appears_in` (e.g. 'normal'), `ability` (e.g. 'charger', 'spawner'), or `attack_kind` ('melee', 'ranged', 'charging'). Call get_filter_options for valid values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_items","description":"List item summaries (id, name, tier), optionally filtered by `tag`, `scaling_stat`, `archetype`, and/or `tier` (1-4). All filters are case-sensitive exact matches — call get_filter_options first to see the valid tags, archetypes, and scaling stats.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_weapons","description":"List weapon summaries (id, name, tier), optionally filtered by `scaling_stat` (a stat the weapon scales with) and/or `tier` (1-4). Filter values are case-sensitive; call get_filter_options first for the exact valid values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"loadout_set_bonuses","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_me","description":"Return the orientation primer for this server: how Brotato's core loop works, the source-verified stat mechanics, and — critically — what this dataset's precomputed fields mean and which assumptions they bake in.","write_action":false,"price_micros":0,"input_schema":null},{"name":"stat_display_value","description":"Convert a raw stat value into the value the game DISPLAYS for a given character, after that character's stat-gain modifiers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"stat_gradient","description":"Rank stats by how much +`step` of each would raise the loadout's total DPS — 'which stat should I buy next'. `weapons` is [name, tier] pairs for the CURRENT loadout; `stats` the current DISPLAYED stats (pass `character` to convert raw values). Candidates are the loadout's scaling stats plus %damage / attack speed / crit chance. Default step=10 is shop-scale; the game's integer damage arithmetic ma","write_action":false,"price_micros":0,"input_schema":null},{"name":"wave_composition","description":"Base-game composition for a Crash Zone wave (1-20): the enemy groups that spawn, their base counts, first-spawn timing, and repeats.","write_action":false,"price_micros":0,"input_schema":null},{"name":"weapon_dps","description":"","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-24T05:07:28.355Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T05:07:28.295Z","components":{"code":{"score":25,"max":25,"notes":["38 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 51 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"spudcoach","version":"0.14.1","found":true,"weeklyDownloads":62,"license":"MIT","dependencyCount":1,"publishedAt":"2026-08-04T12:23:48.856977Z","repositoryUrl":"https://github.com/brendanlefebvre/spud-coach"}],"repo":{"found":true,"owner":"brendanlefebvre","repo":"spud-coach","archived":false,"pushedAt":"2026-08-04T12:23:16Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/428859?v=4","ownerCreatedAt":"2010-10-05T23:51:56Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/428859?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":62,"license":"MIT","lastPushAt":"2026-08-04T12:23:16.000Z","score":22}}}},"grade_history":[],"reviews":[]}