Skip to main content
Glama

πŸ› οΈ frida-mcp - Android Analysis Made Simple

Download


πŸ“‹ What is frida-mcp?

frida-mcp helps you analyze Android apps by automating Frida using AI commands. It connects your Android phone to your computer, runs analysis scripts automatically, and gives you results without needing to run commands yourself.

This tool works with rooted Android phones running Magisk and the zygisk-gadget module. It uses a server called MCP (Model Context Protocol) that talks to Frida and controls it to inspect apps dynamically.


Related MCP server: Frida Agent MCP

πŸ–₯️ System Requirements

Before starting, check the following:

  • Windows 10 or later.

  • Python 3.10 or higher installed on your PC.

  • An Android phone with root access.

  • Magisk installed on your Android phone.

  • The zygisk-gadget Magisk module installed and set to use port 14725.

  • ADB (Android Debug Bridge) installed and able to connect your phone to your PC.

If you don’t have Python or ADB installed, you will need to install them first. Both are free and easy to get.


πŸš€ How to Download frida-mcp

Click the large button below to visit the GitHub page where you can download frida-mcp and find setup files.

Download frida-mcp

On the GitHub page:

  1. Look for the β€œReleases” section to find the latest version.

  2. Download the package or installer suitable for Windows.

  3. Follow instructions there to install the software.


βš™οΈ Installation and Setup on Windows

After downloading, follow these steps to install and configure frida-mcp on your PC:

  1. Install Python packages

    Open your Command Prompt (search for "cmd" in Windows Start menu).

    Navigate to the folder where you downloaded frida-mcp, or if you have the source code, open Command Prompt there.

    Run this command to install frida-mcp and its dependencies:

    pip install .

    This installs the main program and tools you will need.

  2. Run Setup

    After installation completes, run this command to perform automatic setup:

    frida-mcp-setup

    This command will register frida-mcp with MCP and install necessary β€œSkills” for it to work smoothly.

  3. Manual Configuration (optional)

    If automatic setup fails, you can edit the file ~/.claude.json manually:

    {
      "mcpServers": {
        "frida-agent": {
          "command": "frida-mcp"
        }
      }
    }

    Save the file and retry running frida-mcp.

  4. Connect your phone

    Make sure your Android phone is connected via USB with USB debugging enabled.

    Confirm that adb can detect your device by running:

    adb devices

    Your device should show up on the list.


πŸ”Œ Connecting frida-mcp to your Android Phone

frida-mcp uses ADB to talk to the zygisk-gadget module on your phone.

To establish this connection:

  • Run the command:

    frida-mcp connect
  • This will forward ports and allow communication between your PC and phone.

  • Check the connection by listing third-party apps on your device:

    frida-mcp list_apps
  • If your apps show up, the connection works.


πŸ“‚ Main frida-mcp Commands

Here are the main commands you will use when running frida-mcp:

Command

What it Does

connect

Opens ADB port forwarding to connect to zygisk-gadget.

list_apps

Shows third-party apps installed on your device.

execute

Injects a Frida script into the running app. You can write the script directly or provide a file path.

spawn_and_inject

Stops an app, restarts it, and injects a script in one step. Useful when hooking app startup.

get_messages

Shows output from the injected scripts. Supports paging and file backup.

logcat

Displays Android system logs to help find errors or crashes.

launch_app

Starts an app you specify.

kill_app

Forces an app to stop.

reconnect

Restarts the connection if frida-mcp crashes.

detach

Disconnects the current script injection session.


πŸ“₯ Download frida-mcp Again or Update

If you need to download frida-mcp again or get the latest version:

Then repeat the installation commands as above to update your setup.


πŸ”§ Additional Tips

  • Your phone must remain connected and unlocked during use.

  • If you encounter errors with connection, rerun frida-mcp reconnect or check ADB connection.

  • Use frida-mcp logcat to monitor crashes or issues in real time.

  • If an app does not respond as expected, try spawn_and_inject to restart and inject fresh.

  • Keep Python and ADB updated for best compatibility.


πŸ“– Resources


πŸ“‚ How frida-mcp Works

The flow looks like this:

AI (Claude) β†’ MCP Server β†’ Frida CLI β†’ zygisk-gadget (phone) β†’ Results returned

This means AI sends commands to MCP, which controls Frida. Frida works with the gadget installed on the phone to analyze apps and send data back to you.


Download

Available Tools

10 tools
connectA

Connect to the Frida gadget on the device. Performs adb port forwarding (tcp:14725) and connects to the zygisk-gadget. Call this before any other operation.

Inputs: no named parameters. Returns: result

detachA

Detach from the current session and unload any injected scripts.

Inputs: no named parameters. Returns: result

executeA

Inject a Frida JavaScript script into the frontmost application. The script is automatically wrapped with try-catch for safety. Returns immediately after injection - use get_messages() to retrieve results after the user has triggered the target functionality.

Args: script: Frida JavaScript code to inject. Use send() to return data. script_file: Path to a .js file to inject. Use this for large scripts instead of script parameter.

Inputs: script, script_file. Returns: result

get_messagesB

Get messages collected from the injected script's send() calls. Call this after the user has triggered the target functionality.

Args: limit: Maximum number of messages to return (default 50). offset: Skip first N messages for pagination. save_to_file: If True, save all messages to a JSON file and return the path.

Inputs: limit, offset, save_to_file.

kill_appB

Force stop an Android app by package name.

Args: package: The app package name (e.g. com.example.app).

Inputs: package (required). Returns: result

launch_appB

Launch an Android app by package name.

Args: package: The app package name (e.g. com.example.app).

Inputs: package (required). Returns: result

list_appsA

List running applications on the connected device. Returns application identifier, name, and PID.

Inputs: no named parameters. Returns: result

logcatA

Get Android logcat output. Useful for debugging crashes after script injection.

Args: filter: Optional filter string (case-insensitive match on each line). lines: Number of recent lines to fetch (default 100). clear: If True, clear logcat buffer before fetching.

Inputs: filter, lines, clear. Returns: result

reconnectA

Reconnect to the gadget after an app crash. Detaches current session, re-establishes adb forwarding, and reconnects. After reconnect, restart the target app and call execute() again.

Inputs: no named parameters. Returns: result

spawn_and_injectA

Kill app, relaunch, connect, and inject script in one step. Use this when you need to hook early initialization (e.g. onCreate, static initializers). Equivalent to: kill_app -> launch_app -> connect -> execute.

Args: package: The app package name (e.g. com.taobao.taobao). script: Frida JavaScript code to inject at startup. Use send() to return data. script_file: Path to a .js file to inject. Use this for large scripts.

Inputs: package (required), script, script_file. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a distinct purpose: lifecycle management (connect, detach, reconnect), script injection and retrieval (execute, get_messages), app control (kill_app, launch_app, list_apps), logging (logcat), and a composite workflow (spawn_and_inject). No overlapping functionality.

    Naming Consistency5/5

    All tool names use lowercase snake_case with a verb_noun pattern (e.g., kill_app, launch_app, get_messages). The composite tool spawn_and_inject deviates slightly but remains intuitive and consistent with the overall style.

    Tool Count5/5

    10 tools is well-scoped for a Frida interaction server. It covers connection management, app lifecycle, script injection, message retrieval, and debugging without unnecessary clutter.

    Completeness4/5

    Core workflows are covered: connect/disconnect, app start/stop/list, script injection with message retrieval, and logcat. Missing advanced features like listing active hooks or managing multiple scripts, but the set is complete for typical Frida use cases.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      An MCP server that enables AI-assisted mobile security testing by exposing Frida functionality for Android application research. It provides tools for hooking Java methods, manipulating memory, managing device processes, and executing custom Frida scripts.
      37
      15
      MIT
    • F
      license
      A
      quality
      F
      maintenance
      An AI-driven Android dynamic analysis tool that enables AI models to perform automated reverse engineering by controlling Frida. It provides capabilities to inject scripts, manage application processes, and analyze real-time execution data through the Model Context Protocol.
      10
      70
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI models to perform Android dynamic analysis using Frida, including spawning and attaching to applications, listing apps, and injecting scripts.
      123
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Frida MCP server enables AI models to perform dynamic analysis on mobile and desktop platforms via standardized interfaces, with cross-platform device management, script injection, and built-in hook scripts.
      18
      -