PCSX2 MCP
The PCSX2 MCP server lets you control, debug, and automate the PCSX2 PlayStation 2 emulator through an MCP interface, exposing emulator internals as callable tools.
Connection & Status: Connect/disconnect to EE or IOP GDB servers; check connection status; query VM status, game title, serial, and CRCs.
Emulator Control: Pause, resume, single-step, reset the VM; advance frames; launch, list, and terminate PCSX2 processes.
Memory Operations: Read/write guest memory (hex, base64, ASCII, u32 array); read null-terminated strings; write from local files; dump regions; search byte patterns with wildcards; snapshot and diff memory ranges.
Register Operations: Read/write all guest registers (EE or IOP) by name or index; set the program counter directly.
Debugging: Disassemble guest instructions; evaluate debugger expressions; list BIOS threads, IOP modules, and stack backtraces; set/remove/list execution breakpoints and memory watchpoints (exec, read, write, RW), including conditional and temporary breakpoints.
Savestates & Rewind: Save/load savestate slots or explicit file paths; wait for async compression; start/stop a rewind ring buffer; step back through captures.
Cheats & Patches: Reload patch files from disk; list, enable, or disable individual cheats; toggle the global cheats switch.
Tracing: Take single timestamped register/memory samples or run background periodic traces to JSONL files.
Screenshots & Input: Capture screenshots even when the window is inactive/minimized; send keyboard/XInput/native input without activating the window.
Logs: Resolve the PCSX2 log file path; tail, filter, and retrieve recent error/warning log entries.
Configuration: Auto-configure GDB server settings in PCSX2.ini. Warns about destructive operations; local-only binding recommended.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PCSX2 MCPconnect to EE and get registers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PCSX2 MCP
ENGLISH | KOREAN
PCSX2 MCP is a Windows-focused Model Context Protocol server for controlling and debugging PCSX2 through its EE and IOP GDB Remote Serial Protocol endpoints. It exposes emulator control, memory inspection, debugger operations, tracing, savestates, cheats, screenshots, process management, and log access as MCP tools.
Basic register and memory operations require PCSX2's GDB servers. Extended tools such as emulator commands, debugger expressions, cheat control, screenshots, and savestate automation require a compatible PCSX2 build that implements theqPcsx2 commands used by this server.
Features
Connect to the EE or IOP GDB server and inspect connection status.
Pause, resume, single-step, reset, and advance frames.
Read and write registers, memory, strings, and files.
Dump memory regions, search byte patterns with wildcards, and compare snapshots.
Disassemble code, evaluate debugger expressions, and inspect threads, modules, and backtraces.
Add, remove, list, and clear breakpoints and watchpoints.
Save and load states, capture screenshots, and maintain a rewind ring buffer.
Reload patches and list, enable, or disable cheats at runtime.
Record periodic register and memory traces to JSONL.
Launch, list, and terminate PCSX2 processes.
Locate, tail, and filter PCSX2 logs.
Capture and control PCSX2 while its window remains inactive.
Use native
qPcsx2input, an optional virtual XInput controller, or targeted keyboard messages.
Requirements
Windows
Python 3.10 or newer
PCSX2 with the EE/IOP GDB servers enabled
An MCP client that supports local stdio servers
The default endpoints are:
Target | Host | Port |
EE |
|
|
IOP |
|
|
Installation
Open PowerShell in the repository directory:
python -m pip install -e .Keyboard input has no extra dependency. Optional XInput support uses
vgamepad and an installed ViGEmBus driver:
python -m pip install -e ".[xinput]"Run the server directly:
python -m pcsx2_mcpThe server communicates over stdio, so it normally runs under an MCP client rather than in a standalone interactive terminal.
Codex MCP configuration
To register PCSX2 MCP as a local stdio server in Codex, add the following blocks to %USERPROFILE%\.codex\config.toml. Replace C:\path\to\PCSX2_MCP with the path where you cloned this repository.
[mcp_servers.pcsx2]
command = "python"
args = ["-m", "pcsx2_mcp"]
cwd = 'C:\path\to\PCSX2_MCP'
[mcp_servers.pcsx2.env]
PYTHONPATH = 'C:\path\to\PCSX2_MCP\src'The python command must resolve to the interpreter where the project dependencies were installed. Restart Codex after changing config.toml.
PCSX2 setup
Start the MCP server in your client.
Run the
configure_gdb_settingstool once, or enable the EE and IOP GDB servers manually in the compatible PCSX2 configuration.Restart PCSX2 after changing the GDB settings.
Start a game, then call
connectwithtarget="ee"ortarget="iop".Call
statusorpcsx2_statusbefore using debugging and automation tools.
Background capture and input
take_screenshot uses the custom qPcsx2 screenshot_file command when the
GDB client is connected, so it captures the emulator render buffer without
touching the desktop focus. When disconnected, PNG requests fall back to
capture_pcsx2_window, which uses PrintWindow without restoring or
activating the window.
configure_background_input preserves existing Pad 1 bindings and adds
keyboard plus XInput mappings. Input tools accept backend="auto",
"native", "keyboard", or "xinput". auto uses an already-connected
EE or IOP qPcsx2 client first, then tries optional XInput, and finally falls
back to targeted PostMessageW keyboard events when vgamepad or its driver
is unavailable.
PCSX2's top-level Qt key filter may request activation. The MCP keyboard backend therefore sends only to a verified native render child. If that child cannot be identified, it returns an error instead of sending to the top-level window.
Typical workflow
Use
launch_pcsx2or start PCSX2 yourself.Use
connectfor the required target.Inspect state with
get_registers,read_memory,disassemble, orevaluate.Control execution with
pause,step,resume, breakpoints, or watchpoints.Call
disconnectbefore shutting down PCSX2.
Safety
This server can modify emulated memory, overwrite memory from a file, change registers, load savestates, control cheats, and terminate PCSX2 processes. Keep it bound to local MCP clients and review tool arguments before approving destructive operations.
Generated logs, screenshots, traces, rewind captures, virtual environments, bytecode, and build outputs are excluded from version control.
License
This project is distributed under the terms in LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server for debugging Windows processes using WinDbg and CDB. It enables users to attach to processes, manage breakpoints, inspect memory, and control execution flow through natural language.2
- AlicenseBqualityDmaintenanceAn MCP server providing direct access to gdb-multiarch for debugging Nintendo Switch executables on Yuzu or hardware via a GDB stub. It features specialized tools for offset-based breakpoints, instruction patching, and frame-pointer backtraces relative to the game's base address.333MIT
- AlicenseAqualityCmaintenanceMCP server for PCSX2 and other emulators that speak the PINE protocol. Read and write 8/16/32/64-bit emulator memory and control save states for PlayStation-family emulation.14172MIT
- Alicense-qualityCmaintenanceMCP server for remote debugging with gdbserver, offering full debugging capabilities including breakpoint control, stepping, memory inspection, and process management.MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for understanding Javascript internals from ECMAScript specification.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/snowyegret23/PCSX2_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server