Repository navigation
Releases: Darkatek7/ps5-mcp
Release list
v0.4.0
v0.3.1
Payloads built by CI from this tag; SHA256SUMS lists their hashes. They are the same as in v0.3.0 (RemoteEye build 7; only its 16-byte build id differs, as in every build).
Install without a checkout (needs uv):
uvx --from git+https://github.com/Darkatek7/ps5-mcp ps5-mcp fetch-payloads
claude mcp add ps5 -- uvx --from git+https://github.com/Darkatek7/ps5-mcp ps5-mcp
fetch-payloads puts both ELFs into ~/.ps5-mcp/payloads after checking them against SHA256SUMS; the server looks there too. pip install git+https://github.com/Darkatek7/ps5-mcp gives the same ps5-mcp command, and python server/server.py from a checkout works as before.
New since v0.3.0:
ps5_wakesends the wake message again every 2 s until the console is up (once a single message got lost).- A new controller's "Who's using this controller?" prompt is answered by the server on the first failed screenshot (right, then cross), only for a controller it just added.
ps5_statusandps5_selftestname a RemoteEye older than build 7.- The tools live in
server/ps5mcp/tools.py; CI tests Python 3.10 to 3.13 and the installed package.
Checked on firmware 13.00. Not possible from a payload, for the record: removing screenshots from the gallery (the content-delete service never answers a payload) and live capture through libSceAvcap2 (details in docs/how-it-works.md).
v0.3.0
Payloads built by CI (.github/workflows/payloads.yml) from this tag; SHA256SUMS lists their hashes. Put both ELFs in the repository root; the server sends them to elfldr when needed.
RemoteEye.elf: build 7 (port 3327). Now also answers the title and power calls itself (launch, close, running, browser, rest mode, power off, account id), so these no longer need a payload send or klogsrv. Built with .NET SDK 10.0.203 (runtime pack 10.0.7) and SharpProsperoe78aaa1. Send it once (ps5_send_payload, or restart the console); the server uses the newest RemoteEye it finds.titlectl.elf: unchanged from v0.2.1; used when RemoteEye is older than build 7.
New in the server:
ps5_selftestchecks every part without changing anything.PS5_IPis optional: the server finds the console on the local network.- The kernel-log reader only runs while tools use the log; a busy RemoteEye (another session) is waited for.
ps5_statustells rest mode from "no answer", and an outdated titlectl is reported as such.- The server is split into
server/server.py(tools) andserver/ps5mcp/.
Checked on firmware 13.00 with RemoteEye 7: title calls, ps5_rest then ps5_wake (on again after 11 s), and ps5_power_off (off after 6 s), none of them needing klogsrv. ps5_wake now sends its message again every 2 s (on main after this tag): once a single message got lost.
v0.2.1
Payloads for the current server. Put both ELFs in the repository root; the MCP server sends them to elfldr when needed.
RemoteEye.elf: virtual-controller payload, build 6 (listens on port 3326). Needed for touch input,ps5_processesandps5_kill_payload. Built frompayload/RemoteEyeas of c55b129 (unchanged since) with SharpProsperoe78aaa107cfba578139e9baf6d76a34d2785befc, the commit that lets payloads start on 13.40 and later.
SHA-256:f0da5cf51580310269b991ee8aa2307ce80ac94d8f29d719ff3159d091cc1a49titlectl.elf: starts, closes and reports titles, opens the browser, puts the console in rest mode or turns it off, reads the account id for Remote Play pairing. Built from 302795c with ps5-payload-sdk v0.45.
SHA-256:a5dad06350bb95d55651fe6a6283d7caee575c3db147a577637d2cb629a8dd25
New since v0.2.0: ps5_power_off(confirm) turns the console off (titlectl off). That ends the jailbreak, and ps5_wake cannot turn the console on again, so the tool refuses without confirm=true. Not yet tried on a console. RemoteEye.elf is the same as in v0.2.0.
An older RemoteEye stays loaded until the console restarts; the server uses the newest instance it finds. Tested on firmware 13.00.
v0.2.0
Payloads for the current server. Put both ELFs in the repository root; the MCP server sends them to elfldr when needed.
RemoteEye.elf: virtual-controller payload, build 6 (listens on port 3326). Needed for touch input,ps5_processesandps5_kill_payload. Built frompayload/RemoteEyeas of c55b129 (unchanged since) with SharpProsperoe78aaa107cfba578139e9baf6d76a34d2785befc, the commit that lets payloads start on 13.40 and later.
SHA-256:f0da5cf51580310269b991ee8aa2307ce80ac94d8f29d719ff3159d091cc1a49titlectl.elf(new): starts, closes and reports titles, opens the browser, puts the console in rest mode, reads the account id for Remote Play pairing. Built from f1ddae8 with ps5-payload-sdk v0.45.
SHA-256:8d8c7f825aa9c3d88a39a563f04f3edcabca36968a0ce478d2b411ba60f05e02
New since v0.1.0: screenshots with crop, touch, sequences, file and log tools, title tools (launch, close, running, browser), ShadowMountPlus rescan, process list, and now ps5_rest, ps5_wake and ps5_pair (rest mode and waking over the network; see the README for the two rest-mode settings this needs).
An older RemoteEye stays loaded until the console restarts; the server uses the newest instance it finds. Tested on firmware 13.00.
v0.1.0
First release.
RemoteEye.elf: virtual-controller payload (RemoteEye build 3, listens on port 3323). Put it in the repository root; the MCP server sends it to elfldr on first use.- Built from unmodified SharpProspero
5dfdb4b0b166e83dc9ae275001afb695f12c7174. - SHA-256:
cb24e728a411c7563c0d2b77961e8ab45e12372615dbc82f9eb7d5ff974e0ed8
Tested on firmware 13.00 only. See the README for setup.