{"name":"io.github.BrendanL79/spudcoach","slug":"brendanl79-spudcoach","title":"Brotato Coach","description":"Deterministic Brotato theorycrafter MCP server: facts and math, not guesses.","url":"https://mcp.market/server/brendanl79-spudcoach","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":22,"stars":0,"forks":0,"downloads_week":58,"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/BrendanL79/spud-coach","website":"https://spudcoach.fyi","version":"0.11.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"spudcoach","version":"0.11.0","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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_weapons","description":"Rank several weapons by realized DPS (guaranteed + expected proc damage) 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 one character's kit: wanted_tags, banned_item_groups, flat_bonuses, gain_modifiers (stat-gain multipliers), and special_effects. 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 one 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 one weapon's full record: base stats, scaling stats, and the precomputed DPS line (dps_at_zero_rd, dps_slope_per_rd).","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_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":"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":"Compute one weapon's realized DPS for a given build, with a breakdown.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-26T11:34:53.060Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:34:53.126Z","components":{"code":{"score":25,"max":25,"notes":["36 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 53 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"spudcoach","version":"0.11.0","found":true,"weeklyDownloads":58,"license":"MIT","dependencyCount":1,"publishedAt":"2026-07-07T12:06:38.625247Z","repositoryUrl":"https://github.com/brendanlefebvre/spud-coach"}],"repo":{"found":true,"owner":"BrendanL79","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","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/428859?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":58,"license":"MIT","lastPushAt":"2026-08-04T12:23:16.000Z","score":22}}}},"grade_history":[],"reviews":[]}