Skip to main content
Glama
u21h2

BinDiff MCP Tool

by u21h2

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

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.

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/u21h2/bindiff-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server