mcp-pine
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PINE_HOST | No | Override the host (TCP only) | 127.0.0.1 |
| PINE_SLOT | No | PINE slot — also the TCP port on Windows | 28011 |
| PINE_TARGET | No | Emulator name — used as the prefix in the Unix socket file path on Linux/macOS (<target>.sock.<slot>). Ignored on Windows (TCP only). | pcsx2 |
| PINE_SOCKET_PATH | No | Override the full Unix socket path on Linux/macOS, bypassing automatic resolution | (auto) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pine_pingA | Verify the PINE connection by querying the emulator version. Returns the version string if reachable. |
| pine_get_infoA | Get the loaded game's title, serial (e.g. SLUS-21274), disc CRC, game version, and emulator status. |
| pine_get_statusA | Get the current emulator state: 'running', 'paused', 'shutdown', or 'unknown'. |
| pine_read8A | Read a single unsigned byte (u8) from emulated memory. PlayStation 2 main address space landmarks: 0x00000000 EE main RAM (32 MiB) — game code & data 0x10000000 Hardware registers (DMA, GIF, VIF, etc.) 0x11000000 VU0 / VU1 memory 0x12000000 GS privileged registers 0x1C000000 IOP RAM (2 MiB) 0x1F800000 IOP scratchpad 0x70000000 EE scratchpad (16 KiB) PINE memory operations target the EE address space. |
| pine_read16A | Read an unsigned 16-bit little-endian value from emulated memory. Address should be 2-byte aligned. |
| pine_read32A | Read an unsigned 32-bit little-endian value from emulated memory. Address should be 4-byte aligned. |
| pine_read64A | Read an unsigned 64-bit little-endian value from emulated memory. Address should be 8-byte aligned. Returned as a string to preserve precision past 2^53. |
| pine_write8A | Write a byte (u8) to emulated RAM. Writes to ROM/read-only regions are silently ignored by the emulator. |
| pine_write16A | Write a 16-bit value (LE) to emulated RAM. Address must be 2-byte aligned. |
| pine_write32B | Write a 32-bit value (LE) to emulated RAM. Address must be 4-byte aligned. |
| pine_write64A | Write a 64-bit value (LE) to emulated RAM. Address must be 8-byte aligned. Pass the value as a decimal string to preserve precision past 2^53. |
| pine_read_rangeA | Read a contiguous range of bytes from emulated memory and return them as an array of integers. Implemented client-side as a pipelined sequence of PINE read64/32/16/8 calls (PINE has no native bulk-read), choosing the largest aligned load at each step. Maximum 4096 bytes per call. Slower than mGBA's native readRange but fast enough for cheat-table refresh and small struct dumps over loopback. |
| pine_save_stateA | Trigger the emulator to save its current state to a numbered slot. |
| pine_load_stateA | Trigger the emulator to load a previously-saved state from a numbered slot. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/dmang-dev/mcp-pine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server