debuff
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
Connector by debuff.jpOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/debuff-jp-debuff
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, debugging
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 9 read · 14 write · 0 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 23
Read from the source code; the running server may list different tools.
Read 9 · Look things up without changing anything.
game_errorsgame_framesgame_notesgame_paramsgame_profilegame_stateinspect_projectlist_assetstypecheck
Write 14 · Create, change, send or run things.
buildfuzzgame_capturegame_commandgame_inputgame_pausegame_replaygame_rewindgame_set_paramgame_startgame_stepgame_stop
Show 2 more tools
run_scenariosrun_tests
Files it touches
- Any path the agent passes to its tools
Tools (23)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
buildProduction buildBuild for production and return the size report (raw, gzip, brotli per file). `leaks` lists dev-only code found in the output; it must be empty. `saves` compares the game's saves with saves.json: an error means players would lose saved progress. Don't accept save changes yourself; tell the human (they run `debuff build --accept-saves`).
fuzzFuzz playtestPlay the game headlessly with random but plausible input (movement keys held, action keys tapped) to find runtime errors, stuck states and back-and-forth loops. Each finding includes the explained error (kind, source-mapped file:line, hint) and `repro`: a scenario file that replays it exactly. Pass that file to run_scenarios to reproduce, then again after fixing to verify. The same seed gives the same inputs.
game_captureCapture frameScreenshot of the current frame as a PNG image. With `path`, also saves it to that file in the project.
game_commandRun a game commandRun a command the game registered with devTools({ commands }) (warp to a level, grant an item, select a cell), like a scenario's { command, args } step; recorded in replays. Prefer it over computing screen coordinates for game_input. An unknown name lists the registered ones. Returns the command's result and the new state.
game_errorsRuntime errorsread-onlyRuntime errors since the game started, explained: kind (your-code, debuff-usage, debuff-bug, outside), where (source file:line, source-mapped), a hint, the loop phase and tick, and a repeat count. A loop error stops the game; fix it, then game_pause false to resume. For debuff-bug, tell the human and share reportUrl rather than working around it. Type errors aren't runtime errors: use typecheck.
game_framesFrame breakdownread-onlyRecent frames, oldest first: intervalMs (what the player feels), updateMs, renderMs, steps (>1 means catching up), quads, drawCalls and longTaskMs (browser-reported main-thread stalls). Use it to explain stutter; in headless mode times reflect stepping, not real play. summary: true returns percentiles and the 3 slowest frames instead of every frame.
game_inputSend inputKeyboard or pointer input. press/release take a KeyboardEvent.code (e.g. Space, ArrowLeft, KeyZ). tap/pointer_down/pointer_move take logical x, y. Input takes effect on the next game_step.
game_notesHuman notesread-onlyMoments the human flagged in the overlay (live mode): their words, the tick, the scene's inspect() state then, and the frames leading up to it.
game_paramsList paramsread-onlyEvery tunable param group: schema (type, default, min, max, units, description) and current values.
game_pausePause or resumePause or resume a live game (headless games are always paused). game_step also pauses first.
game_profileFrame profileread-onlyWhy the game stutters, from myaku: frame-time percentiles (p50/p95/p99), hitches per minute, and the worst hitches explained. Each has a cause (script, gc, upload, compile, layout, throttled, hidden, unknown), a confidence, the script and function to look at when known, and a hint. Spans show time in debuff's update and render. Prefer this over game_frames to explain stutter; measure in live mode, since headless stepping doesn't reflect real play.
game_replaySave a replayEverything played since the game loaded (keys, pointer, param changes) up to `toTick` (default: now), saved as a scenario in .debuff/replays/ that replays it exactly. Use a note's `tick` to reproduce what the human saw when they flagged it, then run_scenarios with the returned file. `warnings` lists anything a replay can't reproduce (for example slow motion).
game_rewindRewind the live gameLive mode only. Take the human's game back (or forward, within the known session) to `tick`: the page reloads, replays the session's inputs to that tick and stays paused, so the state is exactly what it was then. Use a note's `tick` to look at the moment the human flagged. The page needs a second to reload; then use game_state or game_capture.
game_set_paramSet paramSet a tunable param live. Values are validated against the param's type and range. Changes last until game_start or a reload.
game_startStart gameConnect to the game. auto (default): attach to the human's live game if `debuff dev` has it open in a browser, else start a private headless copy, paused. Returns the mode, state and how many notes the human has flagged. Replaces any running session.
Show 8 more tools
game_stateGame stateread-onlyCurrent scene, tick, time, logical width and height, renderer, frame stats, the scene's inspect() data and plugin inspect data. reducedMotion true means the game may freeze or tone down its animations (reducedMotionForced: game_start forced it).
game_stepAdvance timeAdvance the simulation by fixed steps (60 per second by default) and return the new state.
game_stopStop gameHeadless: close the browser and dev server. Live: resume the human's game and disconnect.
inspect_projectInspect projectread-onlySummary of the project: dependencies, plugins and their contributions, assets, last build size.
list_assetsList assetsread-onlyRun the asset pipeline: every asset id, type, size and importer, plus generated files, warnings and possibly unused ids.
run_scenariosRun scenariosRun scenarios/*.json (or the given files) in a headless browser. Returns per-step results, runtime errors, captures and final state.
run_testsRun logic testsRun the logic tests in tests/**/*.test.ts (keiko): the real game in Node, no browser, in milliseconds. Each failure has its message, the source line, and the game's tick, scene and state when it failed. Use after every change; write a test for each mechanic you add.
typecheckType-checkread-onlyType-check the project with its own tsc (no emit, no browser needed). Returns diagnostics: file (relative to the root), line, column, TypeScript code and message. Run it after editing code; vite doesn't type-check, so the game can run with type errors.
Compare and alternatives
Featured in
Signals
- Stars
- 3
- Forks
- 1
- Open issues
- 0
- Weekly downloads
- 2,558
- Last commit (this folder)
- Oct 23, 2026 (5 days ago)
- Last release
- Oct 23, 2026 (5 days ago)
- Last package publish
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
jp.debuff/debuff- Version
- 0.15.0
- Auth
- No auth
- Packages
- npm @debuffjp/mcp
- License
- MIT
- Repository
- github.com/debuffjp/debuff
- Website
- debuff.jp/docs/agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
debuff MCP server. Agent Mart. https://agentmart.dev/connectors/debuff-jp-debuff (last updated 2026-10-25)