Skip to content

Releases: Darkatek7/ps5-mcp

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 19:53

Payloads built by CI.

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 28 Oct 18:24

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_wake sends 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_status and ps5_selftest name 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

Choose a tag to compare

@github-actions github-actions released this 28 Oct 12:11

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 SharpProspero e78aaa1. 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_selftest checks every part without changing anything.
  • PS5_IP is 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_status tells rest mode from "no answer", and an outdated titlectl is reported as such.
  • The server is split into server/server.py (tools) and server/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

Choose a tag to compare

@Darkatek7 Darkatek7 released this 28 Oct 10:14

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_processes and ps5_kill_payload. Built from payload/RemoteEye as of c55b129 (unchanged since) with SharpProspero e78aaa107cfba578139e9baf6d76a34d2785befc, the commit that lets payloads start on 13.40 and later.
    SHA-256: f0da5cf51580310269b991ee8aa2307ce80ac94d8f29d719ff3159d091cc1a49
  • titlectl.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

Choose a tag to compare

@Darkatek7 Darkatek7 released this 27 Oct 21:40

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_processes and ps5_kill_payload. Built from payload/RemoteEye as of c55b129 (unchanged since) with SharpProspero e78aaa107cfba578139e9baf6d76a34d2785befc, the commit that lets payloads start on 13.40 and later.
    SHA-256: f0da5cf51580310269b991ee8aa2307ce80ac94d8f29d719ff3159d091cc1a49
  • titlectl.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

Choose a tag to compare

@Darkatek7 Darkatek7 released this 13 Oct 08:08

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.