Binary Ninja MCP
Binary Ninja MCP exposes Binary Ninja's decompiler, disassembler and function renaming to an agent through an MCP server and HTTP bridge
- 457 ★ on the repository
- Last commit
- GPL-3.0
Broad access
Why this level
- Opens a local HTTP port that can read and change the analysis database of the open binary
- Renaming functions and editing comments or types writes straight into Binary Ninja's data with no separate confirmation
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/binary-ninja-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Opens a local HTTP port that can read and change the analysis database of the open binary
- Renaming functions and editing comments or types writes straight into Binary Ninja's data with no separate confirmation
This is third-party code. Review the repository files before installing.
What it does
Binary Ninja MCP is a Binary Ninja plugin that starts an HTTP MCP server inside a running disassembler instance. The plugin installs through the Plugin Manager or manually into Binary Ninja's plugins folder, a button in the bottom-left corner turns the server on, and scripts/mcp_client_installer.py auto-writes configuration for Cline, Roo Code, Claude Desktop, Cursor, Windsurf, Claude Code and LM Studio. The agent gets dozens of MCP functions: decompile_function and get_il return a function's HLIL, MLIL or LLIL code by name or address, list_methods, list_imports, list_exports and list_strings enumerate the binary's contents, get_xrefs_to_struct and similar functions find cross references to structs, fields and enums, rename_function and format_value change names and comments directly in the Binary Ninja database. Several binaries can be open at once, switched between with list_binaries and select_binary. The recommended client setup is the binary-ninja-mcp npm package, run as npx -y binary-ninja-mcp --host localhost --port 9009, which talks HTTP to the plugin. The older route, the Python bridge at bridge/binja_mcp_bridge.py, is called legacy in the README and kept for clients that cannot use the new package.
Who it is for. For reverse engineers and binary analysts who work in Binary Ninja and want an agent to handle function renaming, cross-reference lookups and a first pass at a CTF challenge or code sample.
Good fit when
- Working through a reverse-engineering CTF challenge and delegating function and variable renaming to the agent as the analysis goes
- An unknown file is open and needs a first assessment of whether it is malicious, by tracing the call chain from the entry point
- You need every cross reference to a struct or field across the whole binary instead of a manual search through the type tree
- Several binaries are open at once and the agent needs to switch between them with select_binary
- You need a hexdump of a specific address or named data without switching windows inside Binary Ninja itself
Not a fit when
- Binary Ninja is not installed: the plugin only runs inside it and needs Python 3.12 or newer
- You need the official Rust tooling on top of IDA Pro: that is a separate product from another vendor for a different disassembler
- The task has nothing to do with binary analysis: the MCP functions are specific to decompiling, disassembling and working with types
- You need no open HTTP port on the machine: the plugin starts a local HTTP endpoint that listens on a configured port
Example request
Open this binary in Binary Ninja, decompile the main function, rename the variables sensibly and show every cross reference to the struct you findMCP
- Transport
- http
- Authentication
- not required
Limitations
Needs Binary Ninja itself and Python 3.12 or newer. Auto client setup is supported only for the listed clients; others need a manual MCP config edit with the absolute path to the Python interpreter inside the plugin's virtual environment. The older Python bridge is called legacy in the README and kept only for compatibility. Renaming functions and editing comments writes straight into the open analysis database, and changes can be lost on closing Binary Ninja without a separate project save.
How to disable. Click the server button in Binary Ninja's bottom-left corner again to stop it, or remove the plugin through the Plugin Manager. Client entries come off with python scripts/mcp_client_installer.py --uninstall, which removes them and the .mcp_auto_setup_done marker file.
FAQ
How do I install Binary Ninja MCP for Claude Code?
Install the plugin through the Plugin Manager inside Binary Ninja, turn the server on with the bottom-left button, then run npx -y binary-ninja-mcp --host localhost --port 9009 and add the same command to Claude Code's MCP config.
How is Binary Ninja MCP different from ida-mcp-rs?
This server runs inside Binary Ninja through its own plugin and HTTP bridge, while ida-mcp-rs is a headless Rust MCP server for a different disassembler, IDA Pro.
Does Binary Ninja need to stay open while the agent works?
Yes, the server runs inside a running Binary Ninja instance with the binary open; without that, the MCP functions have no analyzed file to see.
Can it analyze several files at once?
Yes, list_binaries shows every open binary with its id, and select_binary switches the active one for the next calls.
Which client connection method is recommended now?
The binary-ninja-mcp npm package, run through npx -y binary-ninja-mcp. The README calls the bridge/binja_mcp_bridge.py Python bridge a legacy option for clients without support for the new package.
Discussion
No questions or reviews yet.
Related
MCP serversMCP server and Ghidra plugin that lets an agent decompile binaries, follow cross-references and rename functions in an open project
A native MCP plugin for the x64dbg debugger: the agent drives debugging over HTTP, sets breakpoints, steps through code, reads and patches memory
An MCP server for IDA Pro with one endpoint for several open databases: decompilation, cross-references and similar-function search across binaries
The official Hex-Rays MCP server: an agent opens IDA databases, runs Python inside them and reverses binaries, with plugins for Claude Code and Codex
An MCP server for the Ghidra disassembler: hundreds of tools for reverse engineering, decompilation, renaming, structures, emulation and debugging
A Ghidra extension with an MCP server: an agent reads pseudocode and disassembly, builds call graphs and edits names, types and structures via 100 tools
README in short
The README describes two pieces, the Binary Ninja plugin with its HTTP MCP server and a separate bridge for other clients, lists the clients with auto-setup support, and gives example prompts for CTF challenges and malware analysis using an mcp_ prefix for renamed functions. It continues with a large table of MCP functions grouped by category: decompilation, types, cross references, hexdumps, lists of binary objects.