Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PS3 MCP Server

A Model Context Protocol (MCP) server that exposes tools for an AI (Hermes) to remotely control a jailbroken PS3 running webMAN MOD.

The server translates AI tool calls into simple HTTP requests to the PS3's built-in web server, enabling:

  • Game mounting & listing (PS3/PS2/PSP/PS1)
  • Controller button simulation
  • Temperature monitoring
  • On-screen popup notifications
  • System control (shutdown, reboot, fan speed)
  • PS3MAPI deep control (firmware, processes, LED, buzzer, screenshots, memory)

Requirements

  • Python 3.10+
  • Jailbroken PS3 with webMAN MOD (full) installed
  • PS3 and host machine on the same local network
  • PS3 with a static local IP address

Installation

From source

git clone https://github.com/hermes-ai/ps3-mcp-server.git
cd ps3-mcp-server
pip install -e .

Direct install

pip install ps3-mcp-server

Configuration

Set the PS3_IP environment variable to your PS3's local IP address:

export PS3_IP=192.168.1.42  # Linux/macOS
set PS3_IP=192.168.1.42     # Windows CMD
$env:PS3_IP="192.168.1.42"  # Windows PowerShell

Or create a .env file in the project root:

PS3_IP=192.168.1.42

Running the Server

Stdio mode (for MCP clients)

ps3-mcp-server
# or directly
python ps3_server.py

Testing with MCP Inspector

npx @modelcontextprotocol/inspector ps3-mcp-server

Then open the displayed local URL in your browser to interactively test tools.

MCP Client Configuration

Claude Desktop

Add to claude_desktop_config.json (location varies by OS):

macOS:

~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows:

%APPDATA%\Claude\claude_desktop_config.json

Config:

{
  "mcpServers": {
    "ps3": {
      "command": "ps3-mcp-server",
      "env": {
        "PS3_IP": "192.168.1.42"
      }
    }
  }
}

LibreChat / Continue.dev / Other MCP Clients

Point your client to run ps3-mcp-server with the PS3_IP environment variable set.

Available Tools

Tool Description
list_games(system) List games (ps3/ps2/psp/ps1) with name and path
mount_game(game_path) Mount a game by its internal path
press_button(button) Simulate controller button press
get_temperature() Read CPU & RSX temperatures
send_popup(message) Show on-screen notification
shutdown() Power off the PS3
reboot() Reboot the PS3
get_current_game() Get currently mounted game title ID
set_fan_speed(percent) Set fan speed 0-100%

PS3MAPI Tools (Advanced)

The server also exposes 7 PS3MAPI tools for low-level hardware access via webMAN's PS3MAPI HTTP endpoints. These enable AI agents to interact with the PS3 at a deeper level:

Tool Description
ps3mapi_get_firmware() Read firmware version (e.g. "4.90 CEX Cobra 8.4")
ps3mapi_list_processes() List running processes with PIDs
ps3mapi_screenshot() Capture framebuffer dump via /dump.ps3?rsx
ps3mapi_ring_buzzer(mode) Vibrate controller (0=off, 1=light, 2=heavy)
ps3mapi_set_led(color) Set console LED color (#RRGGBB format)
ps3mapi_read_memory(address, length) Read bytes from process memory (max 256)
ps3mapi_write_memory(address, data_hex) Write bytes to process memory ⚠️ Dangerous

Note: PS3MAPI features require webMAN MOD (Full) with syscall 8 enabled. Write operations can crash or brick the PS3 — use with caution.

webMAN API Endpoints Used

Action Endpoint Notes
List games /index.ps3, /index.ps2, /index.psp, /index.psx HTML parsed for links
Mount game /mount.ps3/<path> Path from list_games
Press button /pad.ps3?<button>=1 15 supported buttons
Temperature /cpursx.ps3 Returns plain text
Popup /popup.ps3/<message> URL-encoded message
Eject/Insert /eject.ps3 / /insert.ps3 Disc control
Shutdown /shutdown.ps3 Immediate power off
Reboot /reboot.ps3 System restart
Current game /game.ps3 Returns title ID
Fan speed /sman.ps3?fan=<0-100> webMAN MOD full only

Security Considerations

  • Local network only — All communication is unencrypted HTTP.
  • Isolate your PS3 on a separate VLAN or use firewall rules to limit access.
  • Start with read-only tools (temperature, list_games, get_current_game) before enabling destructive tools (shutdown, mount_game, button presses).
  • Trusted environment — Anyone with network access to the PS3 can control it via the webMAN web interface.

Project Structure

ps3-mcp-server/
├── ps3_server.py      # Main MCP server implementation
├── pyproject.toml     # Package configuration
├── README.md          # This file
└── .env.example       # Environment variable template

Troubleshooting

Connection refused / timeout

  • Verify PS3 IP: ping $PS3_IP
  • Check webMAN web server is enabled in webMAN MOD settings
  • Test in browser: http://<PS3_IP>/ should show webMAN interface

Permission denied

  • Ensure no firewall blocks port 80 between host and PS3
  • Try accessing http://<PS3_IP>/cpursx.ps3 from a browser

MCP client not detecting tools

  • Verify ps3-mcp-server is in your PATH: which ps3-mcp-server
  • Check MCP client logs for stdio connection errors
  • Test with MCP Inspector first

License

MIT License — See LICENSE for details.

About

MCP server for AI control of a jailbroken PS3 via webMAN MOD — 16 tools including PS3MAPI deep hardware access

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages