The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Super Trouper listing page.
An MCP server for the Frida reverse engineering toolkit.
Super Trouper runs an MCP server over STDIO that exposes Frida capabilities as tools for coding agents. It
can connect to local, USB, and remote devices; inspect applications and processes; manage process sessions; and
load, evaluate, and exchange messages with JavaScript instrumentation scripts. It can also search Frida
CodeShare to discover community scripts and fetch them for use with the scripting
tools. Device connections, sessions, and scripts are managed through the tools themselves and referenced by
opaque handles.
Install the macOS release through the project’s Homebrew tap:
Install the launcher package through npm. It pulls in the platform-specific binary via optional dependencies:
Download a binary for your platform from the Releases page.
Install a Frida Core DevKit matching your build host first. Then build and install Super Trouper with the following commands:
Use the MCP server in your coding agent. Claude Code is the example below, but configuration is similar in Codex, OpenCode, Pi, Crush, and others.
If the Super Trouper binary is not in your PATH, specify the full path in your MCP server configuration.
npm users can run Super Trouper directly through npx without a global installation:
Docker is a convenient way to run Super Trouper without installing it on your host.
Super Trouper exposes the following MCP tools:
| Tool | Description |
|---|---|
app_list | Lists the applications installed on a Frida device. |
app_find | Finds an application on a Frida device by identifier or name. |
app_frontmost | Returns the frontmost application on a Frida device. |
codeshare_search | Searches Frida CodeShare for projects matching the given query. |
codeshare_popular | Lists the most popular projects on Frida CodeShare. |
codeshare_project | Returns a project from Frida CodeShare, including its JavaScript source, which can be run with the other scripting tools. |
device_list | Lists the Frida devices detected by the host. |
device_connect | Connects to a Frida device by ID reported by device_list, by a remote Frida server address, or by type. Returns a device handle used by the other device tools; reconnecting to the same device returns the existing handle. |
device_disconnect | Disconnects from a Frida device. Fails while the device still has attached sessions. |
device_params | Returns the parameters of a Frida device. |
device_spawn | Spawns a process on a Frida device in a suspended state. Use device_resume to start it. |
device_resume | Resumes a suspended process on a Frida device. |
device_kill | Kills a process on a Frida device. |
memory_read | Reads up to 4096 bytes of memory in an attached process and returns it as hex, base64, UTF-8, or a NUL-terminated C string. Fails if any byte of the range cannot be read. |
memory_write | Writes up to 4096 bytes of memory in an attached process as hex (default) or base64, selected with the encoding parameter. Fails if memory cannot be written; patching code is out of scope. |
module_list | Lists the modules loaded in an attached process. Results can be matched by name or path and paginated. |
process_list | Lists the processes running on a Frida device. |
script_create | Creates a Frida script with TypeScript source in an attached session. The script is created unloaded; use script_load to load it. |
script_load | Loads a Frida script into its target process. |
script_unload | Unloads a Frida script from its target process. |
script_close | Unloads a Frida script if loaded and releases its resources. |
script_post | Posts a JSON message to a Frida script. |
script_messages | Returns messages sent by a Frida script. Messages are buffered (up to 256) and should be drained regularly. |
script_bridge_list | Returns the language bridges that can be exposed as globals in scripts created with script_create. |
session_attach | Attaches to a process on a Frida device by PID or name. Returns a session handle used by the session tools. |
session_detach | Detaches from a process, closing all of its scripts and its session. |
session_eval | Evaluates a JavaScript statement in an attached process and returns its JSON result. The first call sets up a persistent evaluator in the session. |
frida_version | Returns the version of the linked Frida Core library. |
frida_documentation | Returns documentation links for the Frida JavaScript API. |
thread_list | Lists the threads running in an attached process with their ID, state, and program counter. |