MCP server/other

BinDiff MCP Tool MCP Server

Binary comparison capabilities using IDA Pro and BinDiff

★ 1u21h2/bindiff-mcp ↗by u21h2updated
1

Add it to Claude Code

claude mcp add --transport http bindiff-mcp http://127.0.0.1:8001/sse
Required:IDADIR+ 2 optional
2

Make your agent remember this setup

bindiff-mcp's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.

npx conare@latest

Free · one command · indexes the sessions already on disk. Set up in the browser instead →

What it does

  • Compare two binary files to detect differences
  • Generate summaries of function similarity
  • Identify changed functions between binary versions
  • Headless operation using IDA Pro and IDAPython

Tools 2

compare_binariesCompare two binary files to identify similarities and differences.
analyze_functionsGet a summary of similarity and a list of changed functions between binaries.

Environment Variables

IDADIRrequiredPath to the IDA Pro installation directory containing idat and idalib.
BINDIFF_PATHPath to the bindiff executable.
MCP_TIMEOUTTimeout for analysis steps in seconds.

Try it

Compare the original binary at /path/to/original.exe with the patched version at /path/to/patched.exe.
Analyze the function similarity between these two binary files.
List all changed functions identified by BinDiff for the provided binary files.
Original README from u21h2/bindiff-mcp

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)

  1. Download the latest .deb package (e.g., bindiff_8_amd64.deb) from the official releases.
  2. Install using dpkg:
    sudo dpkg -i bindiff_8_amd64.deb
    
  3. Verify 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 to bindiff binary (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 containing libidalib.so (e.g., /opt/idapro-9.1).
    • BINDIFF_PATH: Path to bindiff executable (default checks $PATH).
    • Ensure idalib is present in $IDADIR/idalib.

Configuration

Environment Variables

  • IDADIR: Path to the IDA Pro installation directory (containing idat and idalib).
  • BINDIFF_PATH: Path to the bindiff executable.
  • MCP_TIMEOUT: Timeout for analysis steps in seconds (default: 3600).

Installation

  1. Clone this repository.
  2. 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):

IDADIR=/app/ida-pro-9.1 BINDIFF_PATH=/usr/bin/bindiff uv run bindiff-mcp --transport sse --host 0.0.0.0 --port 8001

macOS:

IDADIR="/Applications/IDA91/IDA Professional 9.1.app/Contents/MacOS" BINDIFF_PATH=/usr/local/bin/bindiff uv run bindiff-mcp --transport sse --host 0.0.0.0 --port 8001

Client Configuration (Antigravity, Claude Desktop, etc.)

Configure your MCP client to connect via the /sse endpoint:

{
  "mcpServers": {
    "bindiff-mcp": {
      "type": "remote",
      "url": "http://127.0.0.1:8001/sse"
    }
  }
}

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.

Frequently Asked Questions

What are the key features of BinDiff MCP Tool?

Compare two binary files to detect differences. Generate summaries of function similarity. Identify changed functions between binary versions. Headless operation using IDA Pro and IDAPython.

What can I use BinDiff MCP Tool for?

Comparing original and patched binaries to verify security fixes. Automating reverse engineering workflows for binary analysis. Identifying code changes in compiled binaries without manual IDA interaction.

How do I install BinDiff MCP Tool?

Install BinDiff MCP Tool by running: uv sync

What MCP clients work with BinDiff MCP Tool?

BinDiff MCP Tool works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Conare · memory for coding agents

Turn this server into reusable context

Keep BinDiff MCP Tool docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Set up free$npx conare@latest