Skip to main content
Glama
SnowLuma
by SnowLuma

frida-mcp

A minimalist Frida MCP server.

Design Philosophy

  • Shortest workflow: Attach → LoadScript → Call/Listen → Unload

  • Frida corpus is widely trained by most models: Ready to use directly

  • Minimal toolset: Only 6 tools exposed; less is more, keeping context concise

Related MCP server: Frida MCP

Tool Overview

Tool

Purpose

attach

Attach Frida to a process (PID or process name). Must be called again after process detach/crash

detach

Manually disconnect from the current process and unload all persistent scripts; suitable for use before switching targets

load_script

Load a persistent Frida JS script. Can define rpc.exports = {...} and use send(data) to output logs

call_rpc

Call an RPC method registered by load_script and return the result synchronously

get_script_output

Fetch and clear the script's send(...) message queue, similar to tailing a log

unload_script

Unload and clean up persistent scripts

Installation

From source:

npm install
npm run build

Or download from Releases: Select the archive corresponding to your platform (win-x64 / linux-x64 / macos-arm64) from GitHub Releases, extract it, and use it directly without npm install:

# 解压后会得到 frida-mcp/ 目录
node frida-mcp/dist/index.js

Usage

Direct Launch (Optional pre-attach PID)

# 不带参数启动,由 LLM 通过 attach 工具连接
node dist/index.js

# 或启动时直接 attach 到 PID
node dist/index.js 12345

MCP Client Configuration

{
  "mcpServers": {
    "frida": {
      "command": "node",
      "args": ["e:/mcp-ida-frida/dist/index.js"]
    }
  }
}

Thanks

  • Claude - AI programming assistant

  • Frida - Dynamic instrumentation framework

  • MCP - Model Context Protocol

Available Tools

6 tools
attachAttach to ProcessA

Attach Frida to a process. AI MUST call this first, and MUST call it again whenever any other tool reports that the process is detached or crashed.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesProcess ID (number) or Process Name (string, e.g. 'notepad.exe').

TDQS

A4.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. While it mentions re-attachment on detach/crash, it does not disclose error handling, prerequisites like permissions, or whether re-attaching after crash works seamlessly. More detail would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences. First sentence states the action, second provides critical usage rule. No unnecessary words, and the critical instruction is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (1 param, no output schema), the description covers essential usage and re-usage conditions. Could mention what happens on success or error, but is largely complete for an attach action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description 'Process ID (number) or Process Name (string, e.g. 'notepad.exe')' adds concrete examples and clarifies the two allowed types, going beyond the schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Attach Frida to a process' with a specific verb and resource. It distinguishes from sibling tools like 'detach' and 'load_script' by focusing on the attachment action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage instructions: 'AI MUST call this first, and MUST call it again whenever any other tool reports that the process is detached or crashed.' This tells the agent when to use and when to re-use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

call_rpcCall RPC MethodA

Call a function exported by a persistent script loaded via load_script. If this fails because the process is detached/crashed, call the attach tool again and then load_script before retrying.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesName of the persistent script
methodYesRPC method name
argsNoJSON arguments to pass

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It mentions failure mode (detached/crashed process) but does not describe success behavior, side effects, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no unnecessary words, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers usage and error handling for a 3-parameter tool without output schema; slightly improved by recovery guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have schema descriptions (100% coverage), so description adds no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calls a function exported by a persistent script, distinguishing it from sibling tools like load_script and attach.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context that the script must be loaded via load_script first, and offers recovery steps if the call fails due to detached/crashed process.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detachDetach from ProcessA

Detach Frida from the current process and unload all persistent scripts. Call this when finished with the target or before attaching to a different process. After detach you MUST call attach again before any other tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description discloses the main behavioral aspects: it detaches Frida and unloads scripts. It also implies a state change by mandating a re-attach. While it does not detail all possible side effects, the information is adequate for a parameterless tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences. Both sentences provide essential information without any filler. The key action and the crucial post-condition are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and no annotations, the description is complete. It explains what the tool does, when to call it, and what must be done after (re-attach). It also implicitly distinguishes from sibling tools by mentioning attach.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema coverage is trivially 100%. The description does not need to add parameter information, earning a baseline score of 4 as per guidelines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'detach' and the resource 'from the current process' and specifies that it unloads all persistent scripts. It distinguishes itself from sibling tools like attach, load_script, and unload_script.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'when finished with the target or before attaching to a different process'. It also provides a critical post-condition: must call attach again before other tools. However, it does not explicitly mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_script_outputGet Script OutputA

Retrieve accumulated messages (send(data)) from a persistently loaded script and clear its message queue. Similar to tailing a log.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the running persistent script

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the tool clears the message queue after retrieval, which is a key behavioral detail. With no annotations, the description provides essential transparency beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with the main action. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the core behavior adequately. Could mention error conditions or idempotency, but not necessary for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'name' with description matching the schema. Since schema coverage is 100%, the description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action: retrieve and clear accumulated messages from a persistently loaded script, with a helpful analogy to tailing a log. Distinguishes from sibling tools like load_script and call_rpc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage context (after sending data via send(data)) but does not explicitly state when to use or not use, nor alternatives. Adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_scriptLoad Persistent ScriptA

Load a persistent background Frida script. Use this to set up hooks that collect data over time or long-running RPC exports. Afterwards, use call_rpc to invoke functions or get_script_output to check logs. If this fails because the process is detached/crashed, call the attach tool again and retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesUnique identifier for this script (e.g. 'my_hooks')
sourceYesFrida JS code. Use `send(data)` to emit logs, or `rpc.exports = { ... }` block for RPC.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses persistence and failure scenario but does not explicitly mention side effects like overwriting existing scripts or lifecycle details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. Front-loaded with purpose, immediately followed by usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage flow, and failure recovery. Does not specify return value or synchronous behavior, but these are not critical for a load operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover both parameters. Description adds value by explaining 'name' as unique identifier and 'source' as Frida JS code with send() and rpc.exports patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'load' and resource 'persistent background Frida script'. Distinguishes from sibling tools by mentioning subsequent use of call_rpc and get_script_output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (set up hooks for data collection or RPC exports) and provides clear guidance on what to do afterwards and upon failure (reattach).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unload_scriptUnload Persistent ScriptC

Securely unload and clean up a persistent script.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the script to unload

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It indicates the operation is destructive ('unload and clean up') but does not explain what 'clean up' entails, whether it is reversible, or what side effects occur. This is insufficient for an agent to understand the behavioral impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently conveys the core action. It is front-loaded with the key verb and resource, and every word serves a purpose. However, it could be slightly expanded for completeness without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description should provide complete behavioral context. It fails to mention what the tool returns, if any, or confirmation of success. For a tool with only one parameter and no output schema, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the single parameter 'name' as 'Name of the script to unload', and the description adds no additional meaning or constraints. With 100% schema coverage, the baseline is 3; the description does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('unload and clean up') and the resource ('persistent script'), making the purpose obvious. However, it does not explicitly differentiate from the sibling tool 'detach', which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'detach' or 'load_script'. It does not mention prerequisites, context, or situations to avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedattach
    • First observedcall_rpc
    • First observeddetach
    • First observedget_script_output
    • First observedload_script
    • First observedunload_script

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: attach/detach for lifecycle, load_script/unload_script for script management, call_rpc for function invocation, and get_script_output for log retrieval. There is no overlap or ambiguity between tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., attach, load_script, call_rpc), making them predictable and easy to understand.

Tool Count5/5

With 6 tools, the set is well-scoped for the purpose of Frida process attachment and persistent script management. Each tool serves a necessary step in the workflow without being excessive or insufficient.

Completeness4/5

The tool set covers the core workflow of attaching, detaching, loading/unloading scripts, calling RPC, and retrieving output. However, it lacks support for ad-hoc scripts or advanced Frida operations, which might be a minor gap for some use cases.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP-compliant server that enables AI systems to interact with mobile and desktop applications through Frida's dynamic instrumentation capabilities, allowing for process management, device control, JavaScript execution, and script injection.
    427
    MIT
  • A
    license
    B
    quality
    Not graded
    maintenance
    Enables AI systems to interact with mobile and desktop applications through Frida's dynamic instrumentation capabilities. Provides process management, device control, JavaScript REPL execution, and script injection for runtime analysis and reverse engineering.
    14
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables dynamic instrumentation of running processes through Frida, allowing users to hook functions, inspect memory, modify process behavior, and execute JavaScript code for debugging and reverse engineering.
    3
    -
  • A
    license
    C
    quality
    C
    maintenance
    A Frida MCP server for authorized dynamic analysis and application security research, exposing device/session management, script injection, process and memory inspection, and platform-specific workflows.
    100
    3
    MIT

Latest Blog Posts

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/SnowLuma/mcp-frida'

If you have feedback or need assistance with the MCP directory API, please join our Discord server