A Binary Ninja plugin, MCP server, and bridge that seamlessly integrates Binary Ninja with your favorite MCP client.
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.
This repository contains two separate components:
The following table details which integrations with Binary Ninja are currently supported.
Function | Description |
---|---|
get_binary_status | Get the current status of the loaded binary. |
list_classes | List all namespace/class names in the program. |
list_data_items | List defined data labels and their values. |
list_exports | List exported functions/symbols. |
list_imports | List imported symbols in the program. |
list_methods | List all function names in the program. |
list_namespaces | List all non-global namespaces in the program. |
list_segments | List all memory segments in the program. |
rename_data | Rename a data label at the specified address. |
rename_function | Rename a function by its current name to a new user-defined name. |
search_functions_by_name | Search for functions whose name contains the given substring. |
decompile_function | Decompile a specific function by name and return the decompiled C code. |
set_comment | Set a comment at a specific address. |
set_function_comment | Set a comment for a function. |
get_comment | Get the comment at a specific address. |
get_function_comment | Get the comment for a function. |
delete_comment | Delete the comment at a specific address. |
delete_function_comment | Delete the comment for a function. |
get_assembly_function | Get the assembly representation of a function by name or address. |
function_at | Retrive the name of the function the address belongs to. |
code_references | Retrive names and addresses of functions that call the given function. |
get_user_defined_type | Retrive definition of a user defined type (struct, enumeration, typedef, union). |
rename_variable | Rename variable inside a given function. |
retype_variable | Retype variable inside a given function. |
define_types | Add type definitions from a C string type definition. |
edit_function_signature | Edit signature of a given function, given as a type string. |
You may install the plugin through Binary Ninja's Plugin Manager (Plugins > Manage Plugins
).
To manually configure the plugin, this repository can be copied into the Binary Ninja plugins folder.
This is only needed if you want to use Claude Desktop as your MCP client. Make sure that you have your virtual environment configured first:
git clone git@github.com:fosdickio/binary_ninja_mcp.git
cd binary_ninja_mcp
python3 -m venv .venv
source .venv/bin/activate # On macOS/Linux
pip install -r bridge/requirements.txt
On a Mac, you can automate the setup by running:
./scripts/setup_claude_desktop.py
On other operating systems or to manually configure the Claude Desktop integration:
Settings > Developer > Edit Config
{
"mcpServers": {
"binary_ninja_mcp": {
"command": "/ABSOLUTE/PATH/TO/binary_ninja_mcp/.venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/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.
Binary Ninja MCP
pluginPlugins > MCP Server > Start MCP Server
)The integration will be automatically available after you open Claude Desktop.
You may now start prompting Claude about the currently open binary. Example prompts:
The bridge can be used with other MCP clients by implementing the appropriate integration layer.
The project structure is organized as follows:
binary_ninja_mcp/
├── bridge/ # MCP client integration
├── plugin/ # Binary Ninja plugin
├── scripts/
│ └── setup_claude_desktop.py # Setup script for Claude Desktop
Contributions are welcome. Please feel free to submit a pull request.
GitLab API, enabling project management
Create crafted UI components inspired by the best 21st.dev design engineers.
ALAPI MCP Tools,Call hundreds of API interfaces via MCP
APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.
MCP to interface with multiple blockchains, staking, DeFi, swap, bridging, wallet management, DCA, Limit Orders, Coin Lookup, Tracking and more.
Enable AI agents to interact with the Atla API for state-of-the-art LLMJ evaluation.
Get prescriptive CDK advice, explain CDK Nag rules, check suppressions, generate Bedrock Agent schemas, and discover AWS Solutions Constructs patterns.
Query and analyze your Axiom logs, traces, and all other event data in natural language
Bring the full power of BrowserStack’s Test Platform to your AI tools, making testing faster and easier for every developer and tester on your team.
Flag features, manage company data, and control feature access using Bucket