Skip to content

v0.1.0 — initial public release

Choose a tag to compare

@dmang-dev dmang-dev released this 16 May 07:44
· 69 commits to main since this release

First public release. MCP server bridging PPSSPP — the PlayStation Portable emulator — to any MCP-compatible client via PPSSPP's built-in WebSocket debugger interface.

No Lua plugin needed. Unlike the mcp-bizhawk / mcp-mgba bridges, PPSSPP exposes a native WebSocket debugger that this server just speaks to directly. The simplest of the family to install and use.

What's in 0.1.0

  • 20 MCP tools covering memory r/w (u8/u16/u32/range/string), input (buttons + analog), emulator control (pause/resume/step/reset/screenshot), CPU debugger (get_registers), CPU execution breakpoints (add/remove/list).
  • Inline PNG screenshots — ppsspp_screenshot returns the framebuffer base64-encoded as an MCP image content block, viewable directly in the client.
  • TDQS-templated tool descriptions — every tool documents purpose, when-to-use vs siblings, side effects + errors, exact return shape, with PSP-specific context (memory map, MIPS-LE, button names) inline.
  • Cross-platform install paths — npm install -g mcp-ppsspp, npx -y mcp-ppsspp, or clone-and-build.
  • GitHub Actions CI on Node 18/20/22 across Linux/macOS/Windows.
  • Dockerfile + glama.json for Glama MCP registry.

Setup

  1. Install PPSSPP (1.7+) from ppsspp.org/download
  2. Launch PPSSPP, load any PSP ISO/EBOOT
  3. Settings → Tools → Developer Tools → Allow remote debugger
  4. PPSSPP will show the active host:port — note the port number
  5. npm install -g mcp-ppsspp
  6. Register with your MCP client, setting PPSSPP_PORT env var to the port from step 4

See README.md for full setup, full tool reference, PSP memory map, and troubleshooting.

Why this matters

PSP was the major retro platform NONE of the existing dmang-dev mcp-* servers covered. With this release, the family covers:

Platform(s) Server
GBA mcp-mgba
PCSX2 / PINE protocol emulators mcp-pine
Any libretro core via RetroArch mcp-retroarch
NES/SNES/GB/GBC/GBA/Genesis/N64/PSX/Saturn/Atari/... mcp-bizhawk
PSP mcp-ppsspp

Known limitations

  • No savestate API exposed by PPSSPP's WebSocket — savestate save/load isn't in the debugger interface. Use PPSSPP's keybinds (F1-F8 for slots) via the UI for now.
  • Frame-advance is instruction-level only (cpu.stepInto steps one MIPS instruction, not one rendered frame). For frame stepping, set a breakpoint at the vblank handler and resume.