MCP.Market

Brotato Coach MCP server

by BrendanL79·io.github.BrendanL79/spudcoach·v0.11.0

Deterministic Brotato theorycrafter MCP server: facts and math, not guesses.

A85/100grade A
What users say
No reviews yet
Be the first
Safety scan
A85/100

full report

Adoption
Growing

0 stars58 downloads/wk

Reviews

Write one

Nobody has reviewed Brotato Coach yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Brotato Coach tools (20, 1 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • check_dataset_version

    Report the loaded dataset's provenance: game_version, generated_at, and schema_version. Use to confirm which Brotato version the facts are from.

  • compare_merge_paths

    Compare two tier-merge paths for the SAME weapon across the ranged-damage range.

  • compare_weapons

    Rank several weapons by realized DPS (guaranteed + expected proc damage) at the SAME build stats.

  • evaluate_item_for_build

    Decide whether an item is worth taking for a specific character/build.

  • evaluate_runwrite action

    Post-mortem a whole Brotato run from its `run.json` save in one call.

  • explain_stat

    Return verified mechanics for a stat: caps, special behaviors, and whether it's ever dead weight / safe below zero.

  • get_character

    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.

  • get_enemy

    Look up one enemy's record: base stats, per-wave stat slopes, attack profile, and ability tags.

  • get_filter_options

    List the valid filter values in the loaded dataset so you filter with exact, case-sensitive values.

  • get_item

    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.

  • get_weapon

    Look up one weapon's full record: base stats, scaling stats, and the precomputed DPS line (dps_at_zero_rd, dps_slope_per_rd).

  • get_weapon_class_set

    Look up the set bonuses for a weapon CLASS (e.g. 'Blade', 'Gun', 'Elemental'), keyed by how many weapons of that class are equipped.

  • list_enemies

    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.

  • list_items

    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.

  • list_weapons

    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.

  • loadout_set_bonuses
  • read_me

    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.

  • stat_display_value

    Convert a raw stat value into the value the game DISPLAYS for a given character, after that character's stat-gain modifiers.

  • wave_composition

    Base-game composition for a Crash Zone wave (1-20): the enemy groups that spawn, their base counts, first-spawn timing, and repeats.

  • weapon_dps

    Compute one weapon's realized DPS for a given build, with a breakdown.

Public scan report

scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it

no findings
  • Code scan36 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 53 days ago12/15
  • Maintainer identityregistry namespace matches repository owner6/10
Overall 85/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Brotato Coach compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
85/100
higher than 70% of 48,255 servers
Tools
20
the typical server has 7
Tools that change things
5%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
58
more than 48% of 12,191 servers with a package

What its tools let an agent do: 18 read · 2 run or deploy

Install Brotato Coach in Claude Code, Cursor or VS Code

claude mcp add spudcoach -- uvx spudcoach
Add to Cursor

What the publisher says

From the Brotato Coach repository's README, as published. We do not edit it. Read it on GitHub

Brotato Coach

<!-- mcp-name: io.github.brendanlefebvre/spudcoach -->

A deterministic theorycrafter for Brotato, delivered as an MCP server you can chat with from Claude Code (and other MCP clients).

The design principle: a deterministic core holds the ground truth — weapon/item/character data, DPS formulas, stat mechanics — so the language model looks facts up and computes instead of recalling (and misremembering) them. Every tool returns a finished, verifiable answer or a structured error; there are no baked-in tier lists or opinions, only facts and math.

The dataset (data/brotato.json) is not committed — it is derived from copyrighted game files, so you build it yourself from a local Brotato install (see Building the dataset). A full build from Brotato 1.1.15.4 contains 202 weapons, 197 items, 50 characters, and 15 weapon-class sets.

Requirements

  • Python 3.11+
  • uv for environment/dependency management

Install dependencies:

uv sync

Quick start

Build the dataset (needs a local extraction — see Building the dataset), then start the server:

uv run python build_dataset.py                        # writes data/brotato.json
uv run python -m brotato_coach.server                 # starts the MCP server over stdio

The server refuses to start without data/brotato.json and tells you to build it first.

Run the tests (the dataset-dependent integration test is skipped when no dataset is built):

uv run pytest        # 89 tests (88 passed + 1 skipped without a built dataset)

Run

uvx spudcoach --data /path/to/brotato.json

The dataset is never distributed — build your own from your Brotato install: uv run python builddataset.py (see docs/extraction-setup.md). Game version auto-detects from the decompiled recovered/singletons/progressdata.gd, and generatedat defaults to the current UTC time — pass --game-version/--generated-at explicitly to override either. SPUDCOACHDATA works as an env-var alternative to --data.

Use as a Claude Code plugin

The MCP server is described by plugin/.mcp.json:

{
  "mcpServers": {
    "spudcoach": {
      "command": "uv",
      "args": ["run", "python", "-m", "brotato_coach.server"],
      "cwd": "${CLAUDE_PLUGIN_ROOT}"
    }
  }
}

The server reads the (locally built) data/brotato.json relative to its working directory, so it must run with the repository root as its cwd (the manifest handles this via ${CLAUDEPLUGINROOT} when bundled as a plugin), and you must build the dataset first.

To register it directly in Claude Code without packaging, add the server pointed at your checkout, e.g.:

claude mcp add spudcoach -- uv run --directory /path/to/spud-coach python -m brotato_coach.server

Once connected, just ask in natural language — the model routes your question to the tools below:

  • "Does Handcuffs fit my Ranger run? I'm at 7 ranged damage, 65 HP."
  • "Minigun T4 vs Revolver T4 at 20 ranged damage — which hits harder?"
  • "Is attack speed ever dead weight? Can I let knockback go negative on a gun build?"
  • "What does the Ranger's ranged-damage bonus do to a raw stat of 6?"
  • "Here's my run.json — how's this build doing?" (post-mortem a whole save at once)

Use with Claude Desktop

Claude Desktop can launch the server with uvx in two forms: fetch straight from this repo (auto-updates on restart, but needs git reachable — see the Windows note below), or point at a local checkout (nothing fetched at runtime; the most reliable form on Windows). Either way you supply your own locally built brotato.json — the dataset is never distributed.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Brotato Coach: common questions

Is Brotato Coach MCP server safe?
Yes, by our scan: it is graded A (85/100). Read the Brotato Coach safety report
How do I install Brotato Coach?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Brotato Coach need an API key?
No secret keys are declared. It reads 1 setting from the environment.
Is Brotato Coach maintained?
The last commit was 92 days ago (2026-08-04). The latest release is v0.11.0.
How does Brotato Coach compare with other MCP servers?
safety score 85/100 (higher than 70% of 48,255 servers); tools 20 (the typical server has 7); tools that change things 5% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.