
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
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the Binary Ninja MCP config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 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_functionDecompile a specific function by name and return HLIL-like code with addresses.
get_ilGet IL for a function in hlil, mlil, or llil (SSA supported for MLIL/LLIL).
fetch_disassemblyGet the assembly representation of a function by name or address.
define_typesAdd type definitions from a C string type definition.
declare_c_typeCreate/update a local type from a single C declaration.
get_user_defined_typeRetrieve definition of a user-defined type (struct, enum, typedef, union).
get_type_infoResolve a type and return declaration, kind, and members.
set_commentSet 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.