MCP Directory

How to add Binary Ninja MCP to Windsurf

Connect your LLM/MCP client to Binary Ninja for AI-assisted reverse engineering and malware analysis. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 392 · stdio · no auth

Windsurf config for Binary Ninja MCP

npx -y binary-ninja-mcp
{
  "mcpServers": {
    "binary-ninja-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ]
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Binary Ninja MCP config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Binary Ninja MCP's tools become available to Cascade.

Before you start

  • Binary Ninja (https://binary.ninja/)
  • Python 3.12+
  • An MCP client (Cline, Roo Code, Claude Desktop, Cursor, Windsurf, Claude Code, or LM Studio)
  • Node.js / npx (for the recommended npm bridge)

What Binary Ninja MCP can do in Windsurf

decompile_function

Decompile a specific function by name and return HLIL-like code with addresses.

get_il

Get IL for a function in hlil, mlil, or llil (SSA supported for MLIL/LLIL).

fetch_disassembly

Get the assembly representation of a function by name or address.

define_types

Add type definitions from a C string type definition.

declare_c_type

Create/update a local type from a single C declaration.

get_user_defined_type

Retrieve definition of a user-defined type (struct, enum, typedef, union).

get_type_info

Resolve a type and return declaration, kind, and members.

set_comment

Set a comment at a specific address.

Security

The MCP bridge connects to a local Binary Ninja HTTP server (default localhost:9009) with no authentication. The server can patch bytes and write files to disk (patch_bytes with save_to_file defaults to True, and re-signs binaries on macOS). Only analyze binaries you trust, and keep the HTTP server bound to localhost.

Binary Ninja MCP + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Binary Ninja MCP config there under the "mcpServers" key and restart the client.

Is Binary Ninja MCP safe to use with Windsurf?

The MCP bridge connects to a local Binary Ninja HTTP server (default localhost:9009) with no authentication. The server can patch bytes and write files to disk (patch_bytes with save_to_file defaults to True, and re-signs binaries on macOS). Only analyze binaries you trust, and keep the HTTP server bound to localhost.

What are the two components?

A Binary Ninja plugin that runs an MCP server exposing Binary Ninja over HTTP endpoints, and a separate MCP bridge that connects your MCP client to that server.

How do I install it?

Install your MCP client first, then install the plugin via Binary Ninja's Plugin Manager (or manually). Supported clients are auto-configured. The recommended bridge is the npm package run with 'npx -y binary-ninja-mcp'.

Which MCP clients are supported?

Auto-setup is supported for Cline, Roo Code, Claude Desktop, Cursor, Windsurf, Claude Code, and LM Studio. Any MCP-compatible client can also be configured manually.

View repo Full Binary Ninja MCP page