ya-frida-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| frida_ls_devicesA | List all available Frida devices (local, USB, remote). |
| frida_get_deviceA | Get info for a specific device. Uses default device if ID is omitted. |
| frida_add_remoteB | Connect to a remote Frida server (frida-server over TCP). |
| frida_remove_remoteB | Disconnect from a remote Frida server. |
| frida_query_system_parametersB | Returns a dictionary of information about the host system. Args: device_id: Target device. Uses default if omitted. |
| frida_enable_spawn_gatingA | Enable spawn gating on the device. When enabled, newly spawned processes are suspended until explicitly resumed. Args: device_id: Target device. Uses default if omitted. |
| frida_disable_spawn_gatingA | Disable spawn gating on the device. Args: device_id: Target device. Uses default if omitted. |
| frida_enumerate_pending_spawnB | List pending spawned processes that are waiting to be resumed. Args: device_id: Target device. Uses default if omitted. |
| frida_enumerate_pending_childrenA | List pending child processes that are waiting to be resumed. Args: device_id: Target device. Uses default if omitted. |
| frida_inject_library_fileA | Inject a native library file (.so/.dylib) into a process. Args: pid: Target process PID. path: Absolute path to the library on the device. entrypoint: Name of the entry function in the library. data: String argument passed to the entrypoint. device_id: Target device. Uses default if omitted. |
| frida_inject_library_blobA | Inject a native library from memory (base64-encoded binary) into a process. Args: pid: Target process PID. blob_base64: Base64-encoded library binary. entrypoint: Name of the entry function in the library. data: String argument passed to the entrypoint. device_id: Target device. Uses default if omitted. |
| frida_psA | List running processes on a device (frida-ps equivalent). Returns PID and name for each process. Args: device_id: Target device. Uses default if omitted. scope: Enumeration scope — "minimal", "metadata", or "full". When "full", includes parameters (path, user, ppid, started). pids: Optional list of PIDs to filter by. |
| frida_spawnA | Spawn a new process and optionally attach to it. Args: program: Path or bundle identifier to spawn. device_id: Target device. Uses default if omitted. auto_resume: Whether to resume the process after attaching. argv: Command-line arguments for the spawned process. env: Environment variables as key-value pairs. cwd: Working directory for the spawned process. stdio: Standard I/O mode — "inherit", "pipe", or "redirect". Note:
If spawn times out on Android, call |
| frida_attachA | Attach to a running process by PID or name. Args: pid: Process PID (int). name: Process name (str). identifier: Application bundle identifier (str). frontmost: Attach to the frontmost application. device_id: Target device. Uses default if omitted. realm: Session realm — "native" or "emulated". |
| frida_detachC | Detach from a process session. |
| frida_killC | Kill a process by PID. |
| frida_resumeC | Resume a suspended process. |
| frida_list_sessionsA | List all active session PIDs. |
| frida_ls_appsA | List installed applications on a device (frida-ls equivalent). Returns identifier, name, and PID (if running). Args: device_id: Target device. Uses default if omitted. scope: Enumeration scope — "minimal", "metadata", or "full". When "full", includes parameters (version, build, etc.). identifiers: Optional list of bundle identifiers to filter by. |
| frida_ls_apps_runningA | List only currently running applications. Args: device_id: Target device. Uses default if omitted. scope: Enumeration scope — "minimal", "metadata", or "full". identifiers: Optional list of bundle identifiers to filter by. |
| frida_get_frontmost_applicationA | Get details about the frontmost application. Args: device_id: Target device. Uses default if omitted. scope: Enumeration scope — "minimal", "metadata", or "full". |
| frida_injectA | Inject a JavaScript snippet into a process. The process must already have an active session (use frida_attach first). IMPORTANT: The default runtime is QJS (QuickJS), which is lightweight but does NOT include the Java/ObjC bridges. If your script uses Java.perform(), Java.use(), ObjC.classes, or any Java/Objective-C APIs, you MUST set runtime="v8". Always use runtime="v8" for Android Java hooking. Args: pid: Target process PID. source: JavaScript source code to inject. runtime: Script runtime — "qjs" (default, no Java/ObjC bridge) or "v8" (full runtime with Java/ObjC bridge support). Returns: script_id for subsequent RPC calls or unloading. |
| frida_rpc_callA | Call an RPC export on an injected script. The script must expose methods via Args: script_id: ID returned by frida_inject. method: Export method name (snake_case in Python, camelCase in JS). args: Positional arguments to pass. |
| frida_unload_scriptB | Unload a previously injected script. |
| frida_get_messagesA | Retrieve and drain pending messages from an injected script. Messages are produced by |
| frida_list_scriptsA | List all active script IDs. |
| frida_enumerate_modulesA | Enumerate loaded modules in a process. Injects a helper script to call Process.enumerateModules(). Requires an active session for the given PID. Args: pid: Target process PID (must have active session). name_filter: Optional substring filter on module name (case-insensitive). Use this to avoid returning hundreds of modules at once. |
| frida_enumerate_exportsB | Enumerate exports of a specific module. Args: pid: Target process PID (must have active session). module_name: Name of the module to inspect. |
| frida_list_exportsB | List RPC exports available on an injected script. Args: script_id: ID returned by frida_inject. |
| frida_post_messageA | Post a message to an injected script. Args: script_id: ID returned by frida_inject. message: JSON-serializable message to send. data: Optional base64-encoded binary data. |
| frida_enable_child_gatingA | Enable child gating on a session. When enabled, child processes created by the target are suspended until explicitly resumed. Args: pid: Target process PID (must have active session). |
| frida_disable_child_gatingA | Disable child gating on a session. Args: pid: Target process PID (must have active session). |
| frida_compile_scriptA | Compile a script to bytecode without loading it. Args: pid: Target process PID (must have active session). source: JavaScript source code to compile. runtime: Script runtime — "qjs" (default, no Java/ObjC) or "v8" (full runtime with Java/ObjC bridge). Returns: Base64-encoded bytecode. |
| frida_snapshot_scriptA | Create a snapshot of a script for fast future loading. Args: pid: Target process PID (must have active session). embed_script: JavaScript source to embed in the snapshot. warmup_script: Optional script to run during snapshot creation. runtime: Script runtime — "qjs" (default, no Java/ObjC) or "v8" (full runtime with Java/ObjC bridge). Returns: Base64-encoded snapshot data. |
| frida_eternalize_scriptA | Eternalize a script so it persists after detaching from the session. Args: script_id: ID returned by frida_inject. |
| frida_memory_readA | Read bytes from process memory. Args: pid: Target process PID (must have active session). address: Hex address string (e.g. "0x7fff12340000"). size: Number of bytes to read. |
| frida_memory_writeA | Write bytes to process memory. Args: pid: Target process PID (must have active session). address: Hex address string (e.g. "0x7fff12340000"). hex_data: Hex-encoded bytes to write (e.g. "deadbeef"). |
| frida_memory_scanA | Scan process memory for a byte pattern. Args: pid: Target process PID (must have active session). address: Start address (hex string). size: Number of bytes to scan. pattern: Frida-style pattern (e.g. "48 8b ?? 00"). |
| frida_memory_protectC | Change memory protection flags. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| frida_hook_function | Template for hooking a native function with Interceptor. |
| frida_trace_calls | Template for tracing function calls with Stalker. |
| frida_hook_java | Template for hooking Java methods on Android. |
| frida_hook_objc | Template for hooking Objective-C methods on iOS. |
| frida_android_usb_setup | Workflow: set up frida-server on an Android device connected via USB. |
| frida_enumerate_and_dump | Workflow: enumerate modules then dump exports. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| devices_resource | Live list of all connected Frida devices. |
| sessions_resource | Current active sessions and scripts. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/1shin-7/ya-frida-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server