1. Conduid
  2. Developer Tools
  3. Binaryninja MCP
MCP server · Developer Tools

Binaryninja MCP

Another™ MCP Server for Binary Ninja with superpower 🥵

Unclaimed Apache-2.0 last commit a year ago devtools
54Fair

Scored 4 days ago · breakdown

About Binaryninja MCP

Binaryninja MCP is an MCP server published by MCPPhalanx in the Developer Tools category: another™ MCP Server for Binary Ninja with superpower 🥵.

The repository has 51 stars and 10 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/MCPPhalanx/binaryninja-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Binaryninja MCP

Powered by Claude · Grounded in docs

I know everything about Binaryninja MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 6 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.3.1v0.3.1 · 11 May 2025What's Changed infra: use requirements.txt for installation. fixes #15 by @cybergrind in https://github.com/MCPPhalanx/binaryninja-mcp/pull/16 New Contributors @cybergrind made their first contribution in…
v0.3.0v0.3.0 · 8 Apr 2025What's Changed Refactor server with FastMCP by @ttimasdf in https://github.com/MCPPhalanx/binaryninja-mcp/pull/4 New Contributors @ttimasdf made their first contribution in https://github.com/MCPPhalanx/binaryninja-mcp/pull/4 Full…
v0.2.2Minor fixes · 6 Apr 2025Full Changelog: https://github.com/MCPPhalanx/binaryninja-mcp/compare/v0.2.1...v0.2.2
v0.2.1Add more tools, fix disassembly tool, various fixes · 6 Apr 2025Full Changelog: https://github.com/MCPPhalanx/binaryninja-mcp/compare/v0.2.0...v0.2.1

README

Another™ MCP Server for Binary Ninja

The MCP (Model Context Protocol) Server for Binary Ninja

PyPI Apache licensed Python Version GitHub Discussions

English | 中文

Demo

The tests/binary/beleaf.elf is taken from CSAW'19: Beleaf - Nightmare. You can also find the complete writeup from the link above!

demo

... but why Another?

See: Key Differences from the Existing Plugin

Installation

Server Setup

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

MCP Client Setup

  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.

Available Tools for MCP Clients

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

Available Resources for MCP Clients

MCP Resources can be accessed via URIs in the format: binaryninja://{filename}/{resource_type}

The server provides these resource types for each binary:

  • triage_summary: Basic information from BinaryNinja Triage view
  • imports: Dictionary of imported symbols/functions
  • exports: Dictionary of exported symbols/functions
  • segments: List of memory segments
  • sections: List of binary sections
  • strings: List of strings found in the binary
  • functions: List of functions
  • data_variables: List of data variables

Development

uv is the recommanded package management tool for this project.

Clone directory to Binary Ninja Plugin Directory

git clone https://github.com/MCPPhalanx/binaryninja-mcp.git "${env:APPDATA}\Binary Ninja\plugins\MCPPhalanx_binaryninja_mcp"

Setup Python Environment

Binary Ninja API must be installed into virtualenv manually.

uv venv
uv sync --dev
# install binaryninja API
binaryninja-mcp install-api
# check API is correctly installed
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!!")'

Setup MCP Client for Development

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

Build

uv build

Test

pytest
# To update test snapshots:
pytest --snapshot-update

Version Bump

The PyPI package version is automatically derived from Binary Ninja's plugin.json (using package.json format), maintaining version consistency between the BN plugin and PyPI package.

# bump alpha version
uvx hatch version a

# bump release version
uvx hatch version minor,rc
uvx hatch version release

See: Versioning - Hatch

Release

uv publish

License

Apache 2.0

README fetched from the repository 6 days ago. The original is authoritative.

Questions

About Binaryninja MCP

How do I install Binaryninja MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Binaryninja MCP safe to use with an AI agent?

Its trust score is 54 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Binaryninja MCP still maintained?

The last commit was a year ago and 10 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.