SkillTide Submit
Official description7 sourcesMCP servers8d ago
dmang-dev/mcp-mgba

dmang-dev/mcp-mgba

Control the mGBA Game Boy Advance emul
View on GitHub ↗Direct link · no redirect page
Config template (adjust for your client)
claude mcp add mcp-mgba -- npx -y mcp-mgba
A pasteable skeleton generated from the repository name. Check the project README for the exact package and arguments.
Star count
3 ★ · dmang-dev/mcp-mgba · read from the repository page · (checked 2026-10-16 20:00:20)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-10-09 · last seen 2026-10-16 · seen 32× · listed by 7 sources
Score
score 703 · 3 ★ · 7 sources · mcp
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository dmang-dev/mcp-mgba;first catalogued 2026-10-09;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
Third-party quality signals

mcp-mgba

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

An MCP server that exposes the mGBA Game Boy Advance emulator to any MCP-compatible client (Claude Desktop, Claude Code, etc.).
Lets your model **read and write GBA memory, inject button presses, take screenshots, and step the emulator** — all through a clean tool interface.
*Claude driving an in-development homebrew side-scroller through mgba_press_buttons — Start to begin, A to confirm New Game, then Right to walk and A to jump. Each frame is captured via mgba_screenshot.*
How it works
Two pieces:
- **lua/bridge.lua** — runs *inside* mGBA's scripting engine, opens a loopback TCP server on port 8765
- **dist/index.js** — Node.js MCP server, talks to the Lua bridge over TCP, exposes tools over stdio
Requirements
- mGBA **0.10 or newer** (with Lua scripting)
- **Node.js 22+** (for the MCP server)
Install
Option A — install from npm (recommended)
Puts mcp-mgba on your PATH. Verify with mcp-mgba --help (it'll print a startup line and wait for stdio — Ctrl+C to exit).
Option B — npx (no install)
Run on demand. Good for trying it out without committing to a global install.
Option C — clone and develop
Then reference the absolute path to dist/index.js when registering, or npm install -g . to symlink the bin globally.
Set up the mGBA bridge
1. Launch mGBA and load any GBA ROM.
2. Open **Tools > Scripting…**
3. Click **File > Load script** and select lua/bridge.lua from this repo.
You should see in the scripting console:
If you see a bind failed error, the previous instance's socket is still held — quit and relaunch mGBA.
Register with your MCP client
Claude Code (CLI)
(if you used Option B without global install, replace mcp-mgba with node /absolute/path/to/dist/index.js)
Verify:
Claude Desktop
Edit claude_desktop_config.json:
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Add (assuming Option A — globally installed):
Or with explicit Node + path (Option B):
Restart Claude Desktop after editing.
Other MCP clients
The server speaks standard MCP over stdio. Run mcp-mgba (or node dist/index.js) and connect any MCP client to its stdio.
Configuration
| Env var | Default | Purpose |
|-------------|---------------|------------------------|
| MGBA_HOST | 127.0.0.1 | Bridge host to dial |
| MGBA_PORT | 8765 | Bridge port to dial |
Tools
| Tool | Description |
|------|-------------|
| mgba_ping | Verify bridge connectivity (returns pong) |
| mgba_get_info | Game title, code, frame count |
| mgba_read8 / mgba_read16 / mgba_read32 | Read memory at an address |
| mgba_write8 / mgba_write16 / mgba_write32 | Write to RAM |
| mgba_read_range | Read up to 4096 bytes as a byte array |
| mgba_write_range | Write up to 4096 bytes from a byte array |
| mgba_press_buttons | Queue a button press (FIFO; consecutive calls produce distinct events) |
| mgba_advance_frames | Step the emulator N frames |
| mgba_pause / mgba_unpause | Pause / resume emulation |
| mgba_reset | Reset the loaded ROM |
| mgba_screenshot | Save a PNG of the current display |
| mgba_save_state / mgba_load_state | Save/load emulator state to a slot or path |
See docs/RECIPES.md for end-to-end examples (RAM hunting, snapshot-experiment-restore, side-scroller automation, etc.).
Source
awesome · https://github.com/dmang-dev/mcp-mgba
Browse by field
MCP servers
Traction
3 ★
added
yesterday

More in MCP servers

All 5,525 in MCP servers →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index