Another™ MCP Server for Binary Ninja

by MCPPhalanx

44 217 downloads Not rated yet Apache-2.0
GitHub

About

Another™ MCP Server for Binary Ninja with superpower 🥵

Details

License
Apache-2.0

Explore

- Exposes Binary Ninja analysis as MCP tools and resources
- Provides 15+ analysis tools (e.g., rename, pseudo‑C, disassembly)
- Supports both UI plugin and headless modes
- Connects to MCP clients via stdio or SSE transport
- Automatically exposes all opened binary files as URIs
- Configuration of auto‑start and port via Binary Ninja settings

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Another™ MCP Server for Binary Ninja
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

There are two ways to run the MCP server:

1. Binary Ninja UI Plugin:

- Install the plugin via Binary Ninja's plugin manager
- The MCP server will start automatically when first file is loaded.
- Auto start is configurable via Settings - MCP Server - Auto Start
- Listen port is configurable via
Settings - MCP Server - Server port number
- All opened files are exposed to separate resources, see
Available Resources section below

2. Binary Ninja Headless Mode:

   uvx binaryninja-mcp install-api  # only run once
uvx binaryninja-mcp server <filename> [filename]...

- filename could be any binary files or BNDB, like in UI mode, all opened
files are available to the MCP client.
- Server runs on default port 7000
- Use --port flag to specify a different port

1. Claude Desktop (stdio relay client): Configure the client to connect via
stdio transport using built-in relay.

   {
     "mcpServers": {
       "binaryninja": {
         "command": "uvx",
         "args": ["binaryninja-mcp", "client"]
       }
     }
   }
   

2. Cherry Studio:
- SSE endpoint (recommanded): URL: http://localhost:7000/sse
- stdio client:
- Command: uvx
- Arguments:

       binaryninja-mcp
client

Add --port 12345 to both server and client command line if you prefer to run
MCP server on port other than default.

Binary Ninja API must be installed into virtualenv manually.

uv venv
uv sync --dev

binaryninja-mcp install-api

uv run python -c 'import binaryninja as bn; assert bn._init_plugins() is None; assert bn.core_ui_enabled() is not None; print("BN API check PASSED!!")'

For MCP clients with stdio transport like Claude Desktop, change working
directory to development folder.

{
  "mcpServers": {
    "binaryninja": {
      "command": "uv",
      "args": [
        "--directory",
        "C:/path/to/binaryninja-mcp",
        "run",
        "binaryninja-mcp",
        "client"
      ]
    }
  }
}

SSE-enabled MCP clients can connect using: http://localhost:7000/sse

rename_symbol

Rename a function or a data variable

pseudo_c

Get pseudo C code of a specified function

pseudo_rust

Get pseudo Rust code of a specified function

high_level_il

Get high level IL of a specified function

medium_level_il

Get medium level IL of a specified function

disassembly

Get disassembly of a function or specified range

update_analysis_and_wait

Update analysis for the binary and wait for

get_triage_summary

Get basic information from BinaryNinja Triage view

get_imports

Get dictionary of imported symbols

get_exports

Get dictionary of exported symbols

get_segments

Get list of memory segments

get_sections

Get list of binary sections

get_strings

Get list of strings found in the binary

get_functions

Get list of functions

get_data_variables

Get list of data variables

The MCP server provides the following tools:

- rename_symbol: Rename a function or a data variable
- pseudo_c: Get pseudo C code of a specified function
- pseudo_rust: Get pseudo Rust code of a specified function
- high_level_il: Get high level IL of a specified function
- medium_level_il: Get medium level IL of a specified function
- disassembly: Get disassembly of a function or specified range
- update_analysis_and_wait: Update analysis for the binary and wait for
completion
- get_triage_summary: Get basic information from BinaryNinja Triage view
- get_imports: Get dictionary of imported symbols
- get_exports: Get dictionary of exported symbols
- get_segments: Get list of memory segments
- get_sections: Get list of binary sections
- get_strings: Get list of strings found in the binary
- get_functions: Get list of functions
- get_data_variables: Get list of data variables

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "another\u2122 mcp server for binary ninja": {
            "binaryninja-mcp": {
                "command": "uvx",
                "args": [
                    "binaryninja-mcp",
                    "install-api",
                    "#",
                    "only",
                    "run",
                    "once"
                ]
            }
        }
    }
}

McpServers

{
    "binaryninja-mcp": {
        "command": "uvx",
        "args": [
            "binaryninja-mcp",
            "install-api",
            "#",
            "only",
            "run",
            "once"
        ]
    }
}

<div align="center">

<strong>The MCP (Model Context Protocol) Server for Binary Ninja</strong>

[![PyPI][pypi-badge]][pypi-url] [![Apache licensed][license-badge]][license-url]
[![Python Version][python-badge]][python-url]
[![GitHub Discussions][discussions-badge]][discussions-url]

</div>

English | 中文

[pypi-badge]: https://img.shields.io/pypi/v/binaryninja-mcp.svg
[pypi-url]: https://pypi.org/project/binaryninja-mcp/
[license-badge]: https://img.shields.io/pypi/l/binaryninja-mcp.svg
[license-url]: https://github.com/MCPPhalanx/binaryninja-mcp/blob/main/LICENSE
[python-badge]: https://img.shields.io/pypi/pyversions/binaryninja-mcp.svg
[python-url]: https://www.python.org/downloads/
[discussions-badge]:
https://img.shields.io/github/discussions/MCPPhalanx/binaryninja-mcp
[discussions-url]: https://github.com/MCPPhalanx/binaryninja-mcp/discussions

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about Another™ MCP Server for Binary Ninja

Relevant YouTube tutorials, setups, and demos