Binary Ninja MCP server

Integrates with Binary Ninja reverse engineering platform to enable binary analysis tasks like function listing, code decompilation, symbol renaming, and structure analysis through a HTTP server bridge.
Back to servers
Provider
fosdick.io
Release date
Mar 29, 2025
Language
Python
Stats
66 stars

The Binary Ninja MCP plugin enables seamless integration between Binary Ninja and LLM clients through the Model Context Protocol (MCP), allowing you to enhance your reverse engineering workflow with AI assistance. It works particularly well with Claude Desktop but can be extended to other MCP-compatible clients.

Prerequisites

Installation

Installing the Binary Ninja Plugin

The simplest way to install the plugin is through Binary Ninja's Plugin Manager:

  1. Open Binary Ninja
  2. Navigate to Plugins > Manage Plugins
  3. Find and install the "Binary Ninja MCP" plugin

For manual installation, copy the repository into your Binary Ninja plugins folder.

Setting Up the Claude Desktop Bridge (Optional)

If you want to use Claude Desktop as your MCP client:

git clone [email protected]:fosdickio/binary_ninja_mcp.git
cd binary_ninja_mcp

python3 -m venv .venv
source .venv/bin/activate   # On macOS/Linux

pip install -r bridge/requirements.txt

Automated Configuration (Mac)

On macOS, run the provided setup script:

./scripts/setup_claude_desktop.py

Manual Configuration

For other operating systems or manual setup:

  1. Open Claude Desktop
  2. Navigate to Settings > Developer > Edit Config
  3. Add the following configuration (replacing the paths with your actual absolute paths):
{
  "mcpServers": {
    "binary_ninja_mcp": {
      "command": "/ABSOLUTE/PATH/TO/binary_ninja_mcp/.venv/bin/python",
      "args": [
        "/ABSOLUTE/PATH/TO/binary_ninja_mcp/bridge/binja_mcp_bridge.py"
      ]
    }
  }
}

Using Binary Ninja MCP

With Claude Desktop

  1. Open Binary Ninja and load a binary file
  2. Start the MCP server by going to Plugins > MCP Server > Start MCP Server
  3. Launch Claude Desktop

The integration will automatically be available in Claude Desktop. You can now prompt Claude about the currently open binary.

Example Prompts

  • "Generate a binary analysis report for the current binary."
  • "Rename function X to Y in the current binary."
  • "List all functions in the current binary."
  • "What is the status of the loaded binary?"

Supported Functions

The MCP server provides these capabilities to your LLM client:

General Information

  • Get binary status
  • List classes, namespaces, segments
  • List data items, imports, exports
  • List all function methods

Code Analysis

  • Search functions by name
  • Get assembly representation of functions
  • Decompile specific functions
  • Retrieve code references (callers)

Modification

  • Rename functions and data labels
  • Set and manage comments (add, get, delete)
  • Rename and retype variables
  • Define new types
  • Edit function signatures

Type Management

  • Get user-defined types
  • Define types from C strings

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later