MCP Ppsspp logo

MCP Ppsspp

by dmang-dev

Controls PPSSPP through MCP for PSP memory inspection, input, debugging, screenshots, and emulator state management.

Install MCP Ppsspp

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-ppsspp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ppsspp"
      ],
      "env": {
        "PPSSPP_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.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y mcp-ppsspp

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 1mo ago.

Overview

The dmang-dev/mcp-ppsspp MCP server connects MCP clients to PPSSPP's built-in WebSocket debugger. It exposes tools for reading and writing PSP memory, sending controller input, controlling emulation, capturing screenshots, inspecting Allegrex registers, and managing execution breakpoints. The server runs as a Node.js stdio process and forwards JSON-RPC requests to PPSSPP over its debugger WebSocket. Reach for it when an agent needs to inspect or control a running PSP game without installing an emulator plugin.

Use cases

  • Inspect PSP game memory while debugging runtime state
  • Send controller input to a loaded PPSSPP game
  • Capture screenshots from an emulated PSP title
  • Step through MIPS instructions and inspect registers
  • Set CPU execution breakpoints in PPSSPP

Key features

  • PSP memory reads and writes
  • Button and analog input control
  • Pause, resume, reset, and instruction stepping
  • Inline PNG screenshots
  • MIPS Allegrex register inspection
  • CPU execution breakpoints

Tools16

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

Self-reported~185 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 2d ago

Recent health check succeeded.

19/19 checks healthy over the last 80d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

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

Adoption & maintenance

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

GitHub stars11Stargazers on the source repository.
npm downloads98Package downloads in the last 30 days.
Last commit4d agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed16Callable tools this server registers over MCP.
Directory activity7 viewsConfig copies, upvotes, and views on AllMCPs.

How MCP Ppsspp works

What the dmang-dev/mcp-ppsspp MCP server does

The dmang-dev/mcp-ppsspp MCP server exposes PPSSPP's native debugger through the Model Context Protocol. It is intended for MCP-compatible clients that need to observe or drive a loaded PSP game. The server does not provide a separate emulator or game files; PPSSPP must already be installed and running.

Available operations cover several parts of emulator control:

  • Query PPSSPP connectivity, version, loaded title, disc ID, and run state.
  • Read and write PSP memory as bytes, little-endian 16-bit or 32-bit values, ranges, and null-terminated UTF-8 strings.
  • Send persistent button and analog-stick state, or press a button for a specified number of frames.
  • Pause, resume, reset, or advance execution by one MIPS instruction.
  • Capture the current framebuffer as an inline PNG.
  • Retrieve MIPS Allegrex registers and add, remove, or list CPU execution breakpoints.

How it works

An MCP client starts the server over stdio. The Node.js process then opens a WebSocket connection to PPSSPP's debugger endpoint and communicates using JSON-RPC with the debugger.ppsspp.org subprotocol. PPSSPP's own remote debugger supplies the instrumentation, so no bridge plugin needs to be loaded into the emulator.

PPSSPP must have a game loaded for game-dependent operations such as screenshots and memory inspection. The debugger connection uses the host and port shown by PPSSPP after remote debugging is enabled. The default host is 127.0.0.1; the port has no default and must be supplied.

Setup and configuration

Install the npm package globally or run it through npx:

Terminal
npm install -g mcp-ppsspp
npx -y mcp-ppsspp

The dmang-dev/mcp-ppsspp MCP server requires Node.js 22 or newer and a recent PPSSPP release with the WebSocket debugger, identified in the documentation as version 1.7 or later. In PPSSPP, open Settings, Tools, Developer Tools, enable Allow remote debugger, and note the displayed port. Start the MCP server with that port in PPSSPP_PORT.

PPSSPP_HOST can change the debugger host and defaults to the loopback address. For Claude Desktop, configure mcp-ppsspp as the command and pass PPSSPP_PORT in its environment. Claude Code can register the same command with its MCP configuration.

Tools and capabilities

Memory tools use PSP addresses and support little-endian numeric reads. Range reads are limited to 64 KiB, while range writes accept a byte array. The documented memory map includes scratchpad RAM, VRAM, kernel RAM, user RAM, and hardware-register space. Kernel-mode mirrors can refer to the same physical RAM as their lower-address counterparts.

Input tools recognize PSP controls including the face buttons, directional buttons, start, select, triggers, and home. A timed button press releases automatically, while persistent button and analog state remains active until changed. Analog position is shared state and is not automatically released.

Execution stepping advances one MIPS instruction rather than one video frame. Breakpoints can be used with resume when frame-oriented control is needed. The screenshot tool returns PNG data inline, but requires a loaded game.

Limitations and notes

The dmang-dev/mcp-ppsspp MCP server does not expose native savestate save or load operations. Savestates must be managed through PPSSPP's UI keybinds. Frame advance is instruction-level only. Remote tool calls may hang or time out if PPSSPP's interface is not responding or its main loop is not dispatching WebSocket requests.

A failed connection usually means PPSSPP is stopped, remote debugging is disabled, or the configured port is incorrect. Invalid memory addresses are rejected when they fall outside PPSSPP's mapped regions. Remote button input may need a longer duration for games that poll input rapidly.

The project is released under the MIT license.

Reviews

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

Frequently Asked Questions about MCP Ppsspp

Install it with `npm install -g mcp-ppsspp` or run it with `npx -y mcp-ppsspp`. Node.js 22 or newer is required.

Enable Settings → Tools → Developer Tools → Allow remote debugger in PPSSPP, note its port, and provide that value as `PPSSPP_PORT`.

Yes. Add `mcp-ppsspp` as the MCP server command in `claude_desktop_config.json` and set `PPSSPP_PORT` in its environment.

No. It uses PPSSPP's built-in WebSocket debugger interface and does not require a bridge plugin.

No. The server does not expose native savestate operations; use PPSSPP's UI keybinds instead.

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 Ppsspp AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/dmang-dev-mcp-ppsspp?style=directory)](https://allmcps.com/mcp/dmang-dev-mcp-ppsspp)
HTML Embed
<a href="https://allmcps.com/mcp/dmang-dev-mcp-ppsspp"><img src="https://allmcps.com/api/badge/dmang-dev-mcp-ppsspp?style=directory" alt="MCP Ppsspp on AllMCPs" /></a>