MCP server for the Frida reverse engineering toolkit.
Server has 18 well-named tools with consistent verb_noun patterns (device_connect, app_list, process_find, session_attach, script_create, codeshare_search). All tools have descriptions (10-50 chars, mostly concise). Input schemas are present with typed parameters and descriptions. However, descriptions are uniformly terse (avg ~25 chars vs. production baseline 194 chars), lacking context on WHEN to use each tool, prerequisites, or dependencies. No output schemas documented. Error handling is absent from tool definitions. Parameters lack enums where appropriate (e.g., device_type accepts 'local|remote|usb' as free-form string). No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classification. Composition is sound, tools chain logically (device_connect → app_list → session_attach → script_create), but responses lack documented fields needed for chaining.
Finds an application on a Frida device by identifier or name.
Returns the frontmost application on a Frida device.
Lists the applications installed on a Frida device.
Returns the most popular projects on Frida CodeShare.
Fetches a project from Frida CodeShare by owner and slug.
Searches Frida CodeShare for projects matching a query.
Connects to a Frida device.
Lists all available Frida devices.
Descriptions are uniformly terse (avg 25 chars vs. production baseline 194 chars). Missing context on WHEN to use each tool, prerequisites, and dependencies. E.g., 'Connects to a Frida device' does not explain device_type options, idempotency semantics, or when to reuse vs. create new connections.
No output schemas documented. LLMs cannot infer what fields device_connect returns (e.g., does it return a device handle, device name, device properties?). Breaks tool chaining, agent cannot know what IDs to pass to downstream tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Returns the system parameters reported by a Frida device.
Finds a process on a Frida device by PID or name.
Lists the processes running on a Frida device.
Closes a Frida script.
Creates a new Frida script in a session.
Loads a Frida script in a session.
Posts a message to a Frida script.
Unloads a Frida script from a session.
Attaches to a process on a Frida device and returns a session handle.
Detaches from a process session on a Frida device.
device_type parameter accepts free-form string ('local', 'remote', 'usb') but lacks enum constraint. LLMs may hallucinate invalid values like 'localhost' or 'network'. No format validation guidance in description.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classification in metadata. session_attach, script_create, script_load, session_detach, script_unload, script_close are WRITE operations but lack destructiveHint. Agents cannot reason about side effects.
No error handling guidance in tool definitions. If device_connect fails (device not found, connection timeout, invalid device_type), LLM has no recovery path. No recovery_guide pattern implemented.