BinAssist-MCP
@jtang613
Binary Ninja plugin to provide MCP functionality.
Overview
What is BinAssist-MCP?
BinAssist-MCP is a comprehensive Model Context Protocol (MCP) server that exposes Binary Ninja’s reverse engineering capabilities to LLM clients like Claude Desktop. It provides dual transport support (SSE and STDIO), 35+ binary analysis tools, and multi-binary session management.
How to use BinAssist-MCP?
Install via Binary Ninja’s plugin manager or manually. As a plugin, open a binary in Binary Ninja, go to BinAssist-MCP > Start Server. As a standalone server, run binassist-mcp serve /path/to/binary.exe or binassist-mcp stdio for STDIO transport. Configuration is available through Binary Ninja settings, environment variables, or a JSON file.
Key features of BinAssist-MCP
- Dual transport (SSE and STDIO) for flexible integration
- 35+ reverse engineering tools across multiple categories
- Multi-binary support with automatic lifecycle management
- Native Binary Ninja plugin with menu integration and auto-startup
- Full CLI interface for standalone operation
- Pydantic-based configuration with Binary Ninja settings
Use cases of BinAssist-MCP
- Reverse engineer binaries with natural language queries via an LLM client
- Perform decompilation, disassembly, and type analysis interactively
- Manage and analyze multiple binary sessions simultaneously
- Automate reverse engineering tasks using CLI commands and scripts
FAQ from BinAssist-MCP
What transport protocols does BinAssist-MCP support?
BinAssist-MCP supports both SSE (Server-Sent Events) and STDIO transports, configurable via the binassist.server.transport setting.
Does BinAssist-MCP require Binary Ninja to run?
Yes, BinAssist-MCP is a server that integrates with Binary Ninja’s reverse engineering platform; the standalone server and plugin both depend on Binary Ninja being installed.
How many concurrent binaries can BinAssist-MCP handle?
It supports up to 50 concurrent binaries (configurable) with automatic cleanup and eviction policies for memory management.
What configuration methods are available?
Configuration can be set through Binary Ninja’s settings system (e.g., binassist.server.host), environment variables (e.g., BINASSIST_SERVER__PORT), or a JSON configuration file.
How do I integrate BinAssist-MCP with Claude Desktop?
Add a server entry to claude_desktop_config.json with "command": "binassist-mcp" and "args": ["stdio"] to enable STDIO transport.