Binary Ninja
fosdickio/binary_ninja_mcp · 351 stars · Python · GPL-3.0
MCP server A Binary Ninja plugin containing an MCP server that enables seamless integration with your favorite LLM/MCP client.
Install
npx -y binary-ninja-mcpThese repos do not share one command. When an entry shows a command, it was copied as published. Check the repo's README before you run it.
Files
Binary Ninja MCP
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:
- 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.
- 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:
- Cline (recommended)
- Roo Code
- Claude Desktop (recommended)
- Cursor
- Windsurf
- Claude Code
- 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:
python scripts/mcp_client_installer.py --install # auto setup supported MCP clients
python scripts/mcp_client_installer.py --uninstall # remove entries and delete `.mcp_auto_setup_done`
python scripts/mcp_client_installer.py --config # print a generic JSON config snippet
#### Using npm package (Recommended)
The recommended way to set up the MCP client is using the official npm package:
npx -y binary-ninja-mcp
For MCP clients, use this configuration:
{
"mcpServers": {
"binary-ninja-mcp": {
"command": "npx",
"args": ["-y", "binary-ninja-mcp", "--host", "localhost", "--port", "9009"]
}
}
}
Or if installed globally:
{
"mcpServers": {
"binary-ninja-mcp": {
"command": "binary-ninja-mcp",
"args": ["--host", "localhost", "--port", "9009"]
}
}
}
#### Using Python Bridge (Legacy)
For other MCP clients, use the Python bridge directly:
{
"mcpServers": {
"binary_ninja_mcp": {
"command": "/ABSOLUTE/PATH/TO/Binary Ninja/plugins/repositories/community/plugins/fosdickio_binary_ninja_mcp/.venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/Binary Ninja/plugins/repositories/community/plugins/fosdickio_binary_ninja_mcp/bridge/binja_mcp_bridge.py"
]
}
}
}
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
- Open Binary Ninja and load a binary
- Click the button shown at left bottom corner
- Start using it through your MCP client
You may now start prompting LLMs about the currently open binary (or binaries). Example prompts:
CTF Challenges
You're the best CTF player in the world. Please solve this reversing CTF challenge in the <folder_name> folder using Binary Ninja. Rename ALL the function and the variables during your analyzation process (except for main function) so I can better read the code. Write a python solve script if you need. Also, if you need to create struct or anything, please go ahead. Reverse the code like a human reverser so that I can read the decompiled code that analyzed by you.
Malware Analysis
Your task is to analyze an unknown file which is currently open in Binary Ninja. You can use the existing MCP server called "binary_ninja_mcp" to interact with the Binary Ninja instance and retrieve information, using the tools made available by this server. In general use the following strategy:
- Start from the entry point of the code
- If this function call others, make sure to follow through the calls and analyze these functions as well to understand their context
- If more details are necessary, disassemble or decompile the function and add comments with your findings
- Inspect the decompilation and add comments with your findings to important areas of code
- Add a comment to each function with a brief summary of what it does
- Rename variables and function parameters to more sensible names
- Change the variable and argument types if necessary (especially pointer and array types)
- Change function names to be more descriptive, using mcp_ as prefix.
- NEVER convert number bases yourself. Use the convert_number MCP tool if needed!
- When you finish your analysis, report how long the analysis took
- At the end, create a report with your findings.
- Based only on these findings, make an assessment on whether the file is malicious or not.
Supported Capabilities
The following table lists the available MCP functions for use:
Facts
- Kind
- MCP server
- Repo
- fosdickio/binary_ninja_mcp
- Group
- Uncategorized
- Stars
- 351
- License
- GPL-3.0
- Language
- Python
- Last push
- 2026-10-06
- Forks
- 86
- 1Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 2Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k
- 3Gitmodelcontextprotocol/serversA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.85.8k
- 4Memorymodelcontextprotocol/serversA basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.85.8k
- 5Sequential Thinkingmodelcontextprotocol/serversAn MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.85.8k
- 6Timemodelcontextprotocol/serversA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.85.8k