Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BinDiff MCP Toolcompare original.bin and patched.bin to see which functions changed"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BinDiff MCP Tool
A Model Context Protocol (MCP) server that provides binary comparison capabilities using IDA Pro and BinDiff.
Features
Compare Binaries: Compare two binary files (e.g., original vs. patched).
Function Analysis: Get a summary of similarity and a list of changed functions.
Headless Operation: Uses IDA Pro in headless mode and IDAPython for automation.
Installation
Prerequisites
Python 3.10+
IDA Pro (9.0+ recommended)
BinDiff (installed and capable of running from command line).
uv (recommended for package management).
Installing BinDiff on Linux (Ubuntu/Debian)
Download the latest
.debpackage (e.g.,bindiff_8_amd64.deb) from the official releases.Install using dpkg:
sudo dpkg -i bindiff_8_amd64.debVerify installation:
which bindiff
Platform-Specific Configuration
The tool attempts to auto-detect IDA and BinDiff. You can override these by setting environment variables or editing src/config.py.
macOS
IDA Pro: 9.1 (recommended) or 9.0+.
BinDiff: Installed via installer.
Environment:
IDADIR: Path to IDA installation (e.g.,/Applications/IDA91/IDA Professional 9.1.app/Contents/MacOS).BINDIFF_PATH: Path tobindiffbinary (e.g.,/usr/local/bin/bindiff).
Linux (Ubuntu etc.)
IDA Pro: 9.0+ installed (e.g., in
/opt/idapro-9.1).BinDiff: Installed and accessible.
Environment:
IDADIR: Required. Set to your IDA installation base directory containinglibidalib.so(e.g.,/opt/idapro-9.1).BINDIFF_PATH: Path tobindiffexecutable (default checks$PATH).Ensure
idalibis present in$IDADIR/idalib.
Configuration
Environment Variables
IDADIR: Path to the IDA Pro installation directory (containingidatandidalib).BINDIFF_PATH: Path to thebindiffexecutable.MCP_TIMEOUT: Timeout for analysis steps in seconds (default: 3600).
Installation
Clone this repository.
Install dependencies using
uv:uv sync
Usage
Running Remotely (SSE) - Recommended
Start the server in SSE mode so it can be accessed by remote or local clients via HTTP:
Linux (Docker/Server):
macOS:
Client Configuration (Antigravity, Claude Desktop, etc.)
Configure your MCP client to connect via the /sse endpoint:
Development
Structure:
src/server.py: Main MCP server entry point.src/core/: Core logic for IDA export, BinDiff execution, and parsing.src/config.py: Configuration handling.