Another™ MCP Server for Binary Ninja
Another™ MCP Server for Binary Ninja with superpower 🥵
MCPPhalanx
README
Another™ MCP Server for Binary Ninja
<div align="center">
<strong>The MCP (Model Context Protocol) Server for Binary Ninja</strong>
</div>
English | 中文
Demo
The tests/binary/beleaf.elf is taken from CSAW'19: Beleaf - Nightmare. You can also find the complete writeup from the link above!
... but why Another?
See: Key Differences from the Existing Plugin
Installation
Server Setup
There are two ways to run the MCP server:
-
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
- Auto start is configurable via
- All opened files are exposed to separate resources, see Available Resources section below
-
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 opened files are available to the MCP client.- Server runs on default port 7000
- Use
--port
flag to specify a different port
MCP Client Setup
-
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"] } } }
-
Cherry Studio:
- SSE endpoint (recommanded): URL:
http://localhost:7000/sse
- stdio client:
- Command:
uvx
- Arguments:
binaryninja-mcp client
- Command:
- SSE endpoint (recommanded): URL:
Add --port 12345
to both server and client command line if you prefer to run
MCP server on port other than default.
Available Tools for MCP Clients
The MCP server provides the following tools:
rename_symbol
: Rename a function or a data variablepseudo_c
: Get pseudo C code of a specified functionpseudo_rust
: Get pseudo Rust code of a specified functionhigh_level_il
: Get high level IL of a specified functionmedium_level_il
: Get medium level IL of a specified functiondisassembly
: Get disassembly of a function or specified rangeupdate_analysis_and_wait
: Update analysis for the binary and wait for completionget_triage_summary
: Get basic information from BinaryNinja Triage viewget_imports
: Get dictionary of imported symbolsget_exports
: Get dictionary of exported symbolsget_segments
: Get list of memory segmentsget_sections
: Get list of binary sectionsget_strings
: Get list of strings found in the binaryget_functions
: Get list of functionsget_data_variables
: Get list of data variables
Available Resources for MCP Clients
MCP Resources can be accessed via URIs in the format:
binaryninja://{filename}/{resource_type}
The server provides these resource types for each binary:
triage_summary
: Basic information from BinaryNinja Triage viewimports
: Dictionary of imported symbols/functionsexports
: Dictionary of exported symbols/functionssegments
: List of memory segmentssections
: List of binary sectionsstrings
: List of strings found in the binaryfunctions
: List of functionsdata_variables
: List of data variables
Development
uv is the recommanded package management tool for this project.
Clone directory to Binary Ninja Plugin Directory
git clone https://github.com/MCPPhalanx/binaryninja-mcp.git "${env:APPDATA}\Binary Ninja\plugins\MCPPhalanx_binaryninja_mcp"
Setup Python Environment
Binary Ninja API must be installed into virtualenv manually.
uv venv
uv sync --dev
# install binaryninja API
binaryninja-mcp install-api
# check API is correctly installed
uv run python -c 'import binaryninja as bn; print(f"ui_enabled={bn.core_ui_enabled()}")'
Setup MCP Client for Development
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
Build
uv build
Test
pytest
# To update test snapshots:
pytest --snapshot-update
Version Bump
The PyPI package version is automatically derived from Binary Ninja's
plugin.json
(using package.json format), maintaining version consistency
between the BN plugin and PyPI package.
# bump alpha version
uvx hatch version a
# bump release version
uvx hatch version minor,rc
uvx hatch version release
See: Versioning - Hatch
Release
uv publish
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.