Binary Ninja MCP logo

Binary Ninja MCP

by fosdickio

Connects Binary Ninja to MCP clients for querying, decompiling, annotating, renaming, and retyping loaded binaries.

Install Binary Ninja MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "fosdickio-binary-ninja-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 54 tools correctly (26d ago).

Overview

fosdickio/binary_ninja_mcp MCP server connects Binary Ninja with MCP-compatible clients through a Binary Ninja plugin and an MCP bridge. It exposes tools for inspecting functions, IL, disassembly, data, types, comments, and cross-references, as well as changing names, types, comments, and declarations. Use it when an agent needs to assist with reverse engineering, malware analysis, or CTF work on a binary loaded in Binary Ninja. Multiple binaries can be opened, with the active target selected automatically.

Use cases

  • Decompile functions during reverse engineering
  • Inspect cross-references and intermediate language
  • Annotate binaries with comments and descriptive names
  • Analyze CTF or malware samples loaded in Binary Ninja

Key features

  • Function discovery, decompilation, IL, and disassembly
  • Function, variable, and data-label renaming
  • Address and function comment management
  • C type definition and variable retyping
  • Data hexdumps and cross-reference lookup
  • Binary Ninja plugin with MCP bridge support

Tools54

What Binary Ninja MCP lets your agent do. Expand a tool for its parameters.

Verified live~4.5k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

20/20 checks healthy over the last 77d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 10d ago via OSV.dev · binary-ninja-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars457Stargazers on the source repository.
npm downloads658Package downloads in the last 30 days.
Last commit6d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed54Callable tools this server registers over MCP.
Directory activity1 installsConfig copies, upvotes, and views on AllMCPs.

How Binary Ninja MCP works

What fosdickio/binary_ninja_mcp MCP server does

fosdickio/binary_ninja_mcp MCP server makes a loaded Binary Ninja database available to an MCP client. It supports both read operations and analysis annotations, so an agent can inspect a program and record findings in the same workspace. The repository provides a Binary Ninja plugin, an MCP-facing server, and a bridge for connecting client processes to the server.

The available operations cover common reverse-engineering tasks. An agent can enumerate functions and entry points, search names, decompile functions, retrieve HLIL, MLIL, or LLIL, and read function disassembly. It can also inspect data labels, produce hexdumps, resolve cross-references, and query local type definitions.

Write operations include renaming functions, variables, and data labels; adding or removing comments; defining or declaring C types; and changing variable types. These operations let an agent preserve intermediate analysis results in the Binary Ninja database rather than returning observations only in chat.

How it works

The plugin runs inside Binary Ninja and exposes Binary Ninja capabilities through HTTP endpoints. A separate bridge can connect an MCP client to that server. The client sends tool calls through MCP, while the plugin performs the requested analysis against the currently loaded binary.

The normal workflow is to open a binary in Binary Ninja, activate the plugin interface, and then use the configured MCP client. The project also supports opening multiple binaries and switching the active target automatically. Function and data operations generally accept names, addresses, or both where the corresponding capability requires them; pagination is available for function, type, and data listings.

The tools distinguish among several intermediate-language views. Decompilation returns C-like output, while disassembly returns assembly mnemonic instructions.

Setup and configuration

Running fosdickio/binary_ninja_mcp MCP server requires Binary Ninja, Python 3.12 or newer, and an MCP client. Install the extension through Binary Ninja's Plugin Manager or copy the repository into the Binary Ninja plugins directory.

The recommended client setup uses the binary-ninja-mcp npm package with npx. A typical MCP entry starts npx -y binary-ninja-mcp and passes --host localhost --port 9009. The repository also documents a globally installed command using the same host and port arguments.

For clients that need the legacy route, configure the Python bridge directly and use the virtual environment's Python interpreter. Its configuration must point to the bridge script with an absolute path. The project includes a command-line installer that can install or remove entries for supported clients and print a generic JSON configuration snippet.

Supported automatic setup targets named by the project are Cline, Roo Code, Claude Desktop, Cursor, Windsurf, Claude Code, and LM Studio. Install the client before the Binary Ninja extension if automatic setup is required.

Tools and capabilities

The listed MCP operations provide these groups of functionality:

  • Discover functions with paginated listings, entry-point queries, and substring searches.
  • Read decompiled code, IL, and assembly for named functions.
  • Rename functions, local variables, and data labels.
  • Add, retrieve, and delete address comments and function comments.
  • Create, update, search, and inspect local C types and user-defined types.
  • Retype variables and set local variable types.
  • List data items, inspect symbols, and generate hexdumps or declaration-like data output.
  • Find code and data references to an address or references to a named structure field.

Limitations and notes

The material describes interaction with binaries loaded in Binary Ninja; it does not describe standalone analysis without Binary Ninja. The server's usefulness therefore depends on a running Binary Ninja installation and an accessible active target.

The repository documents both an HTTP plugin server and a bridge-based client configuration. Clients that are not covered by automatic setup may require manual MCP configuration. The legacy bridge must use the virtual environment interpreter so its dependencies are available.

The tool list supplied for this listing does not document authentication, remote deployment, supported binary formats, or persistence behavior beyond changes made through Binary Ninja. Those details should not be assumed when evaluating the server for a production workflow.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Binary Ninja MCP

fosdickio/binary_ninja_mcp is an MCP server that connects MCP clients to Binary Ninja through a plugin and bridge. Its main tools list functions and entry points, decompile and disassemble code, retrieve IL, inspect types and data, find cross-references, and modify names, comments, declarations, and variable types.

Install Binary Ninja and an MCP client, then install the extension through Binary Ninja's Plugin Manager or copy it into the plugins directory. For client configuration, the documented recommended option runs the npm package with npx and passes localhost port 9009.

Yes, Cursor is listed among the clients supported for automatic setup. Install Cursor before the Binary Ninja extension, then use the extension's setup flow or configure the documented MCP command manually.

Yes, it can rename functions, single or multiple local variables, and data labels, and it can set, retrieve, or delete comments at addresses and on functions. It also supports changing local variable types and defining C types.

It requires Binary Ninja, Python 3.12 or newer, and an MCP client. The plugin runs in Binary Ninja, while clients can connect through the documented npm command or the Python bridge.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewBinary Ninja MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/fosdickio-binary-ninja-mcp?style=directory)](https://allmcps.com/mcp/fosdickio-binary-ninja-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/fosdickio-binary-ninja-mcp"><img src="https://allmcps.com/api/badge/fosdickio-binary-ninja-mcp?style=directory" alt="Binary Ninja MCP on AllMCPs" /></a>