Another™ MCP Server for Binary Ninja
About
Another™ MCP Server for Binary Ninja with superpower 🥵
Details
- License
- Apache-2.0
Explore
- Exposes Binary Ninja analysis as MCP tools and resources
- Provides 15+ analysis tools (e.g., rename, pseudo‑C, disassembly)
- Supports both UI plugin and headless modes
- Connects to MCP clients via stdio or SSE transport
- Automatically exposes all opened binary files as URIs
- Configuration of auto‑start and port via Binary Ninja settings
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Another™ MCP Server for Binary NinjaCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
There are two ways to run the MCP server:
1. Binary Ninja UI Plugin:
- Install the plugin via Binary Ninja's plugin manager
- The MCP server will start automatically when first file is loaded.
- Auto start is configurable via Settings - MCP Server - Auto Start
- Listen port is configurable via
Settings - MCP Server - Server port number
- All opened files are exposed to separate resources, see
Available Resources section below
2. Binary Ninja Headless Mode:
uvx binaryninja-mcp install-api # only run once
uvx binaryninja-mcp server <filename> [filename]...
-
filename could be any binary files or BNDB, like in UI mode, all openedfiles are available to the MCP client.
- Server runs on default port 7000
- Use
--port flag to specify a different port
1. Claude Desktop (stdio relay client): Configure the client to connect via
stdio transport using built-in relay.
{
"mcpServers": {
"binaryninja": {
"command": "uvx",
"args": ["binaryninja-mcp", "client"]
}
}
}
2. Cherry Studio:
- SSE endpoint (recommanded): URL: http://localhost:7000/sse
- stdio client:
- Command: uvx
- Arguments:
binaryninja-mcp
client
Add --port 12345 to both server and client command line if you prefer to run
MCP server on port other than default.
Binary Ninja API must be installed into virtualenv manually.
uv venv
uv sync --dev
binaryninja-mcp install-api
uv run python -c 'import binaryninja as bn; assert bn._init_plugins() is None; assert bn.core_ui_enabled() is not None; print("BN API check PASSED!!")'
For MCP clients with stdio transport like Claude Desktop, change working
directory to development folder.
{
"mcpServers": {
"binaryninja": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/binaryninja-mcp",
"run",
"binaryninja-mcp",
"client"
]
}
}
}
SSE-enabled MCP clients can connect using: http://localhost:7000/sse
rename_symbol
Rename a function or a data variable
pseudo_c
Get pseudo C code of a specified function
pseudo_rust
Get pseudo Rust code of a specified function
high_level_il
Get high level IL of a specified function
medium_level_il
Get medium level IL of a specified function
disassembly
Get disassembly of a function or specified range
update_analysis_and_wait
Update analysis for the binary and wait for
get_triage_summary
Get basic information from BinaryNinja Triage view
get_imports
Get dictionary of imported symbols
get_exports
Get dictionary of exported symbols
get_segments
Get list of memory segments
get_sections
Get list of binary sections
get_strings
Get list of strings found in the binary
get_functions
Get list of functions
get_data_variables
Get list of data variables
The MCP server provides the following tools:
- rename_symbol: Rename a function or a data variable
- pseudo_c: Get pseudo C code of a specified function
- pseudo_rust: Get pseudo Rust code of a specified function
- high_level_il: Get high level IL of a specified function
- medium_level_il: Get medium level IL of a specified function
- disassembly: Get disassembly of a function or specified range
- update_analysis_and_wait: Update analysis for the binary and wait for
completion
- get_triage_summary: Get basic information from BinaryNinja Triage view
- get_imports: Get dictionary of imported symbols
- get_exports: Get dictionary of exported symbols
- get_segments: Get list of memory segments
- get_sections: Get list of binary sections
- get_strings: Get list of strings found in the binary
- get_functions: Get list of functions
- get_data_variables: Get list of data variables
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"another\u2122 mcp server for binary ninja": {
"binaryninja-mcp": {
"command": "uvx",
"args": [
"binaryninja-mcp",
"install-api",
"#",
"only",
"run",
"once"
]
}
}
}
}
McpServers
{
"binaryninja-mcp": {
"command": "uvx",
"args": [
"binaryninja-mcp",
"install-api",
"#",
"only",
"run",
"once"
]
}
}
<div align="center">
<strong>The MCP (Model Context Protocol) Server for Binary Ninja</strong>
[![PyPI][pypi-badge]][pypi-url] [![Apache licensed][license-badge]][license-url]
[![Python Version][python-badge]][python-url]
[![GitHub Discussions][discussions-badge]][discussions-url]
</div>
English | 中文
[pypi-badge]: https://img.shields.io/pypi/v/binaryninja-mcp.svg
[pypi-url]: https://pypi.org/project/binaryninja-mcp/
[license-badge]: https://img.shields.io/pypi/l/binaryninja-mcp.svg
[license-url]: https://github.com/MCPPhalanx/binaryninja-mcp/blob/main/LICENSE
[python-badge]: https://img.shields.io/pypi/pyversions/binaryninja-mcp.svg
[python-url]: https://www.python.org/downloads/
[discussions-badge]:
https://img.shields.io/github/discussions/MCPPhalanx/binaryninja-mcp
[discussions-url]: https://github.com/MCPPhalanx/binaryninja-mcp/discussions
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



