MCP Bizhawk logo

MCP Bizhawk

by dmang-dev

Controls BizHawk through MCP for emulator memory access, input, frame stepping, screenshots, and save states.

Install MCP Bizhawk

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "dmang-dev-mcp-bizhawk": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-bizhawk"
      ],
      "env": {
        "BIZHAWK_HOST": "YOUR_VALUE_HERE",
        "BIZHAWK_PORT": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Automated check passed— started and listed 22 tools correctly (1mo ago).

Overview

The dmang-dev/mcp-bizhawk MCP server connects MCP clients to the BizHawk multi-system emulator through a Node.js stdio process and a Lua bridge. It exposes emulator metadata, memory-domain discovery, byte reads and writes, controller input, frame control, screenshots, and save-state operations. BizHawk connects to the server over a local TCP listener, while the MCP client communicates with the Node.js process over stdio. Reach for it when an agent needs to inspect or manipulate emulator state across supported systems; each call adds about one frame of latency.

Use cases

  • Inspect game memory by named BizHawk domain
  • Drive emulator input frame by frame
  • Experiment with save states and restoration
  • Capture emulator screens for agent analysis

Key features

  • Named-domain memory reads and writes
  • Joypad input for one player
  • Frame advance and pause control
  • PNG screenshot capture
  • Save and load emulator states
  • ROM and emulator metadata inspection

Tools22

What MCP Bizhawk lets your agent do. Expand a tool for its parameters.

Verified live~9.5k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

18/22 checks healthy over the last 78d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · mcp-bizhawk (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars6Stargazers on the source repository.
npm downloads97Package downloads in the last 30 days.
Last commit5d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed22Callable tools this server registers over MCP.
Directory activity11 viewsConfig copies, upvotes, and views on AllMCPs.

How MCP Bizhawk works

What dmang-dev/mcp-bizhawk MCP server does

The dmang-dev/mcp-bizhawk MCP server lets an MCP-compatible client operate a running BizHawk instance. It supports systems handled by BizHawk, including NES, SNES, Game Boy, Game Boy Color, Game Boy Advance, Genesis, Saturn, N64, PlayStation 1, Atari systems, Lynx, ColecoVision, and Intellivision. The exact available memory domains depend on the loaded core and ROM.

An agent can inspect the loaded game and emulator state, discover memory domains, read or modify memory, send joypad input, advance or pause emulation, reset the core, capture the display as a PNG, and save or restore emulator state. Memory operations can target a named domain or use the active current domain. Range operations support up to 4096 bytes.

How it works

The setup has two cooperating components. A Node.js MCP process provides standard MCP over stdio and listens for BizHawk connections on a local TCP port. The lua/bridge.lua script runs inside BizHawk’s Lua Console and polls that listener once per frame, forwarding commands and responses using newline-delimited JSON.

This architecture is useful when the client needs frame-by-frame inspection or controlled experimentation. The connection model adds approximately one frame of delay per request, estimated at about 16 milliseconds at 60 Hz. It is therefore less suitable for scripts that require a high rate of calls.

Setup and configuration

The dmang-dev/mcp-bizhawk MCP server requires BizHawk 2.6.2 or newer and Node.js 22 or newer. Install the package from npm with npm install -g mcp-bizhawk, or run it without a global installation using npx -y mcp-bizhawk.

Start the MCP process, then configure BizHawk to connect to the listener at 127.0.0.1:8766 by using its socket options or the External Tools settings. Open BizHawk’s Lua Console and load lua/bridge.lua from the repository. The MCP client must then be configured to launch the mcp-bizhawk command over stdio. The README gives registration steps for Claude Code and Claude Desktop, and states that other standard MCP clients can use the same stdio transport.

The listener address is configurable with BIZHAWK_HOST, which defaults to 127.0.0.1, and BIZHAWK_PORT, which defaults to 8766.

Tools and capabilities

The dmang-dev/mcp-bizhawk MCP server exposes tools for:

  • Checking connectivity and retrieving ROM name, ROM hash, frame count, domains, and capabilities.
  • Listing memory domains and reading or writing 8-, 16-, and 32-bit values.
  • Reading or writing byte ranges up to 4096 bytes.
  • Setting one player’s button state with core-specific button names.
  • Advancing a chosen number of frames, pausing or resuming, and resetting the loaded core.
  • Saving screenshots to PNG paths.
  • Saving and loading emulator states from file paths.

Limitations and notes

The Lua bridge must be loaded inside BizHawk; installing the npm package alone does not attach it to an emulator. Memory-domain names and controller button names vary by system, so clients should query the loaded core before issuing system-specific operations. BizHawk’s version must meet the stated minimum because earlier releases use a different socket-server wire format.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about MCP Bizhawk

Install it globally with npm using `npm install -g mcp-bizhawk`, or run it directly with `npx -y mcp-bizhawk`.

Yes. The README provides Claude Desktop configuration using the `mcp-bizhawk` command in `claude_desktop_config.json`.

It requires BizHawk 2.6.2 or newer, Node.js 22 or newer, and the repository’s `lua/bridge.lua` loaded in BizHawk.

Set `BIZHAWK_HOST` and `BIZHAWK_PORT`; the defaults are `127.0.0.1` and `8766`.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMCP Bizhawk AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/dmang-dev-mcp-bizhawk?style=directory)](https://allmcps.com/mcp/dmang-dev-mcp-bizhawk)
HTML Embed
<a href="https://allmcps.com/mcp/dmang-dev-mcp-bizhawk"><img src="https://allmcps.com/api/badge/dmang-dev-mcp-bizhawk?style=directory" alt="MCP Bizhawk on AllMCPs" /></a>