🐍 🏠 🍎 🪟 🐧 - Binary Ninja plugin and bridge for automating binary analysis and reverse engineering
Binary Ninja MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
This repository contains a Binary Ninja plugin, MCP server, and bridge that enables seamless integration of Binary Ninja's capabilities with your favorite LLM client.
Features
- Seamless, real-time integration between Binary Ninja and MCP clients
- Enhanced reverse engineering workflow with AI assistance
- Support for every MCP client (Cline, Claude desktop, Roo Code, etc.)
- Open multiple binaries and switch the active target automatically
Examples
Solving a CTF Challenge
Check out this demo video on YouTube that uses the extension to solve a CTF challenge.
Components
This repository contains two separate components:
1. A Binary Ninja plugin that provides an MCP server that exposes Binary Ninja's capabilities through HTTP endpoints. This can be used with any client that implements the MCP protocol.
2. A separate MCP bridge component that connects your favorite MCP client to the Binary Ninja MCP server.
Prerequisites
- Binary Ninja
- Python 3.12+
- MCP client (those with auto-setup support are listed below)
Installation
MCP Client
Please install the MCP client before you install Binary Ninja MCP so that the MCP clients can be auto-setup. We currently support auto-setup for these MCP clients:
1. Cline (recommended)
2. Roo Code
3. Claude Desktop (recommended)
4. Cursor
5. Windsurf
6. Claude Code
7. LM Studio
Extension Installation
After the MCP client is installed, you can install the MCP server using the Binary Ninja Plugin Manager or manually. Both methods support auto-setup of MCP clients.
If your MCP client is not set, you should install it first then try to reinstall the extension.
Binary Ninja Plugin Manager
You may install the extension through Binary Ninja's Plugin Manager (Plugins > Manage Plugins).
Manual Install
To manually install the extension, this repository can be copied into the Binary Ninja plugins folder.
[Optional] Manual Setup of the MCP Client
*You do NOT need to set this up manually if you use a supported MCP client and follow the installation steps before.*
You can also manage MCP client entries from the command line:
Using npm package (Recommended)
The recommended way to set up the MCP client is using the official npm package:
For MCP clients, use this configuration:
Or if installed globally:
Using Python Bridge (Legacy)
For other MCP clients, use the Python bridge directly:
Note: Replace /ABSOLUTE/PATH/TO with the actual absolute path to your project directory. The virtual environment's Python interpreter must be used to access the installed dependencies.
Usage
1. Open Binary Ninja and load a binary
2. Click the button shown at left bottom corner
3. Start using it through your MCP client
You may now start prompting LLMs about the currently open binary (or binaries). Example prompts:
CTF Challenges
Malware Analysis
Supported Capabilities
The following table lists the available MCP functions for use:
| Function | Description |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| decompile_function | Decompile a specific function by name and return HLIL-like code with addresses. |
| get_il(name_or_address, view, ssa) | Get IL for a function in hlil, mlil, or llil (SSA supported for MLIL/LLIL). |
| define_types | Add type definitions from a C string type definition. |
| delete_comment | Delete the comment at a specific address. |
| delete_function_comment | Delete the comment for a function. |