{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-binary-ninja","slug":"binary-ninja","name":"Binary Ninja","type":"mcp","url":"https://github.com/fosdickio/binary_ninja_mcp","page_url":"https://unfragile.ai/binary-ninja","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-binary-ninja__cap_0","uri":"capability://tool.use.integration.mcp.to.http.protocol.translation.for.reverse.engineering.operations","name":"mcp-to-http protocol translation for reverse engineering operations","description":"Translates Model Context Protocol (MCP) JSON-RPC requests from LLM clients into HTTP GET/POST calls targeting a local Binary Ninja plugin HTTP server on port 9009. Uses FastMCP framework to expose 64 reverse engineering tools as standardized MCP tool definitions, enabling seamless integration between LLM clients (Claude Desktop, Cline, Cursor, etc.) and Binary Ninja's analysis engine without requiring direct Binary Ninja API knowledge from the LLM.","intents":["Connect my LLM client to Binary Ninja without writing custom integration code","Enable Claude or other LLMs to call Binary Ninja analysis functions through natural language","Bridge the gap between MCP-compatible clients and Binary Ninja's proprietary API"],"best_for":["Security researchers using LLM-assisted reverse engineering workflows","Teams integrating Binary Ninja with existing MCP-based AI toolchains","Developers building AI-powered malware analysis or CTF solving systems"],"limitations":["Adds ~200-500ms latency per tool invocation due to HTTP round-trip overhead","Requires Binary Ninja plugin to be running and HTTP server active on localhost:9009","Limited to 64 pre-defined tools — custom Binary Ninja analyses require plugin modification"],"requires":["Binary Ninja 3.0+","Python 3.8+","FastMCP library installed in plugin environment","MCP-compatible client (Claude Desktop, Cline, Cursor, Roo Code, Windsurf, LM Studio)"],"input_types":["JSON-RPC requests with tool names and parameters","Binary file paths or function addresses as string parameters"],"output_types":["JSON-structured analysis results","Function metadata (name, type signature, cross-references)","Binary data inspection results (memory contents, data types)"],"categories":["tool-use-integration","reverse-engineering"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_1","uri":"capability://data.processing.analysis.function.level.binary.code.analysis.and.metadata.extraction","name":"function-level binary code analysis and metadata extraction","description":"Exposes Binary Ninja's function analysis capabilities through HTTP endpoints that retrieve detailed metadata about functions in loaded binaries, including function names, type signatures, parameter types, return types, and internal control flow information. The BinaryOperations layer queries Binary Ninja's internal function objects and type system to construct structured JSON responses containing function-level analysis without requiring the LLM to understand Binary Ninja's Python API.","intents":["Get detailed function signatures and type information for functions in a binary","Retrieve function names, addresses, and metadata for all functions in a loaded binary","Extract parameter and return type information to understand function calling conventions"],"best_for":["Reverse engineers analyzing unknown binaries with LLM assistance","Security researchers building automated malware analysis pipelines","CTF participants using AI to accelerate function identification and naming"],"limitations":["Requires binary to be already loaded and analyzed in Binary Ninja (analysis must complete before querying)","Type information accuracy depends on Binary Ninja's type inference — may be incomplete for stripped binaries","Cannot extract function bodies or disassembly through this capability alone (separate capability required)"],"requires":["Binary Ninja 3.0+ with binary loaded","Binary must be analyzed (Binary Ninja's auto-analysis must complete)","HTTP server running on localhost:9009"],"input_types":["Function address (integer or hex string)","Function name (string)","Binary file path (string)"],"output_types":["JSON object with function metadata: {name, address, type_signature, parameters, return_type, size}","Array of function objects for bulk queries"],"categories":["data-processing-analysis","reverse-engineering"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_10","uri":"capability://tool.use.integration.plugin.extensibility.and.custom.tool.registration","name":"plugin extensibility and custom tool registration","description":"Provides a plugin architecture that allows developers to extend the Binary Ninja MCP bridge with custom tools and analysis capabilities. Developers can register new HTTP endpoints in the BinaryNinjaEndpoints class and expose them as MCP tools through the bridge, enabling custom reverse engineering workflows without modifying the core bridge code. The architecture supports adding new tools by implementing simple HTTP endpoint handlers that follow the existing pattern.","intents":["Add custom analysis tools to the Binary Ninja MCP bridge for specialized workflows","Extend the bridge with domain-specific reverse engineering capabilities","Build custom LLM-driven analysis pipelines on top of Binary Ninja"],"best_for":["Teams building specialized reverse engineering tools","Researchers developing novel binary analysis techniques","Organizations with custom Binary Ninja analysis workflows"],"limitations":["Requires Python development knowledge and understanding of Binary Ninja's API","Custom tools must follow the HTTP endpoint pattern — no direct MCP tool definition","Changes to the plugin require restarting the Binary Ninja instance"],"requires":["Python 3.8+","Understanding of Binary Ninja's Python API","Familiarity with HTTP server patterns and JSON serialization","Binary Ninja 3.0+ source code or documentation"],"input_types":["Python function implementing HTTP endpoint handler","Tool definition (name, description, parameters)"],"output_types":["HTTP endpoint registered in BinaryNinjaEndpoints class","MCP tool automatically exposed through the bridge"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_2","uri":"capability://data.processing.analysis.cross.reference.tracking.and.data.flow.analysis","name":"cross-reference tracking and data flow analysis","description":"Exposes Binary Ninja's cross-reference (xref) tracking system through HTTP endpoints that identify all locations where a function, variable, or memory address is referenced within a binary. Queries Binary Ninja's internal xref graph to return caller/callee relationships, data references, and control flow dependencies, enabling LLMs to understand data flow and function call chains without manual graph traversal.","intents":["Find all functions that call a specific function to understand call chains","Identify all data references to a memory address or global variable","Trace data flow through a binary to understand how values propagate"],"best_for":["Malware analysts tracing infection vectors and command execution paths","Reverse engineers understanding complex function call hierarchies","Security researchers identifying vulnerable code paths through data flow analysis"],"limitations":["Xref accuracy depends on Binary Ninja's analysis completeness — indirect calls may be missed","Large binaries with thousands of xrefs may return slow responses (>1 second)","Cannot distinguish between different types of references (read vs write) in basic implementation"],"requires":["Binary Ninja 3.0+ with binary loaded and analyzed","Target function or address must be recognized by Binary Ninja's analysis engine","HTTP server running on localhost:9009"],"input_types":["Function address or name (string or integer)","Memory address (integer or hex string)","Variable name (string)"],"output_types":["JSON array of xref objects: {source_address, source_function, reference_type, target_address}","Call graph representation as nested JSON"],"categories":["data-processing-analysis","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_3","uri":"capability://code.generation.editing.interactive.function.renaming.and.type.annotation.through.llm.suggestions","name":"interactive function renaming and type annotation through llm suggestions","description":"Enables LLMs to suggest and apply function renames and type annotations to a loaded binary through HTTP POST endpoints that modify Binary Ninja's internal function objects. The BinaryOperations layer validates rename requests and applies changes to the binary's symbol table, allowing LLMs to improve binary readability by assigning meaningful names based on code analysis without requiring manual Binary Ninja UI interaction.","intents":["Rename obfuscated functions to meaningful names based on LLM analysis of their behavior","Apply inferred type signatures to functions to improve code readability","Batch-rename multiple functions based on LLM-generated suggestions"],"best_for":["Reverse engineers using LLMs to accelerate function naming during analysis","Teams building automated binary annotation pipelines","CTF participants using AI to quickly label functions for faster solving"],"limitations":["Changes are applied to the in-memory binary only — must be saved manually in Binary Ninja UI","Cannot rename functions that are part of imported libraries (external functions)","Type annotations are limited to Binary Ninja's supported type syntax — complex C++ templates may fail"],"requires":["Binary Ninja 3.0+ with binary loaded","Write permissions to the binary file (for persistence)","HTTP server running on localhost:9009"],"input_types":["Function address (integer or hex string)","New function name (string, validated against C identifier rules)","Type signature string (C-style function prototype)"],"output_types":["JSON confirmation: {success: boolean, function_address, new_name, previous_name}","Error details if rename fails (e.g., invalid identifier, duplicate name)"],"categories":["code-generation-editing","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_4","uri":"capability://data.processing.analysis.memory.and.data.inspection.with.type.aware.interpretation","name":"memory and data inspection with type-aware interpretation","description":"Provides HTTP endpoints to inspect memory contents and data structures at specific addresses in a loaded binary, with type-aware interpretation using Binary Ninja's type system. Queries memory regions, interprets raw bytes according to inferred or user-defined types, and returns structured representations of data structures, enabling LLMs to understand data layout and contents without manual hex dump parsing.","intents":["Inspect memory contents at a specific address and interpret as a typed data structure","Retrieve raw bytes from a memory region and convert to readable format","Understand data structure layouts by querying type information for memory addresses"],"best_for":["Malware analysts inspecting packed data or encrypted structures","Reverse engineers understanding complex data structure layouts","Security researchers analyzing memory corruption vulnerabilities"],"limitations":["Can only inspect static binary sections — cannot read runtime memory from executing process","Type interpretation depends on Binary Ninja's type inference accuracy","Large memory regions (>1MB) may timeout or consume excessive memory"],"requires":["Binary Ninja 3.0+ with binary loaded","Target address must be within loaded binary sections","HTTP server running on localhost:9009"],"input_types":["Memory address (integer or hex string)","Byte count (integer, typically 1-1024)","Type name for interpretation (string, e.g., 'uint32_t', 'struct_name')"],"output_types":["JSON object with interpreted data: {address, raw_bytes, interpreted_value, type}","Hex dump representation for untyped queries"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_5","uri":"capability://data.processing.analysis.disassembly.retrieval.and.instruction.level.code.analysis","name":"disassembly retrieval and instruction-level code analysis","description":"Exposes HTTP endpoints to retrieve disassembled code for functions or address ranges, returning instruction-level details including mnemonics, operands, and metadata. The BinaryOperations layer queries Binary Ninja's IL (Intermediate Language) and disassembly representations to provide both high-level and low-level code views, enabling LLMs to analyze instruction sequences and understand control flow without requiring manual disassembly parsing.","intents":["Get disassembled code for a function to analyze its behavior","Retrieve instruction-level details for a specific address range","Understand control flow by examining branch instructions and jump targets"],"best_for":["Reverse engineers analyzing obfuscated or hand-written assembly code","Security researchers identifying ROP gadgets or exploit primitives","Malware analysts understanding low-level malware behavior"],"limitations":["Disassembly accuracy depends on Binary Ninja's analysis — may be incorrect for self-modifying code","Large functions (>10KB) may return slow responses or truncated results","Architecture-specific instruction semantics require LLM knowledge of target ISA"],"requires":["Binary Ninja 3.0+ with binary loaded and analyzed","Target address range must be recognized as code (not data)","HTTP server running on localhost:9009"],"input_types":["Function address or name (string or integer)","Address range (start and end addresses as integers)","IL level (optional: 'llil', 'mlil', 'hlil' for different abstraction levels)"],"output_types":["JSON array of instruction objects: {address, mnemonic, operands, bytes, il_instruction}","Disassembly text representation"],"categories":["data-processing-analysis","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_6","uri":"capability://automation.workflow.binary.file.management.and.multi.binary.session.handling","name":"binary file management and multi-binary session handling","description":"Provides HTTP endpoints to load, unload, and manage multiple binary files within a single Binary Ninja instance, enabling LLMs to switch between binaries or analyze related binaries in a single session. The plugin maintains a registry of loaded binaries and routes requests to the appropriate binary context, allowing complex analysis workflows that involve multiple executable files or libraries.","intents":["Load a new binary file for analysis without restarting Binary Ninja","Switch between multiple loaded binaries in a single analysis session","Analyze related binaries (e.g., main executable and shared libraries) together"],"best_for":["Malware analysts examining multi-component malware (dropper + payload)","Reverse engineers analyzing applications with multiple linked libraries","Security researchers comparing similar binaries or variants"],"limitations":["Binary Ninja's analysis is memory-intensive — loading many large binaries may exhaust RAM","No automatic binary dependency resolution — must manually specify all binaries to load","Cross-binary xref tracking is limited — cannot automatically link references between binaries"],"requires":["Binary Ninja 3.0+","Sufficient disk space for binary files","HTTP server running on localhost:9009"],"input_types":["Binary file path (string, absolute or relative)","Binary ID or index (integer, for selecting active binary)"],"output_types":["JSON object with loaded binary metadata: {binary_id, file_path, architecture, entry_point, loaded_at}","Array of all loaded binaries"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_7","uri":"capability://automation.workflow.automated.mcp.client.configuration.and.environment.setup","name":"automated mcp client configuration and environment setup","description":"Provides automated setup tools that configure MCP clients (Claude Desktop, Cline, Cursor, etc.) to connect to the Binary Ninja MCP bridge, including Python environment management, dependency installation, and client-specific configuration file generation. The auto-setup system detects the client type and generates appropriate configuration files (e.g., claude_desktop_config.json for Claude Desktop) with correct bridge paths and environment variables.","intents":["Automatically configure my MCP client to connect to Binary Ninja without manual setup","Install required Python dependencies for the MCP bridge in the correct environment","Generate client-specific configuration files without understanding MCP configuration syntax"],"best_for":["Non-technical users setting up Binary Ninja MCP for the first time","Teams deploying Binary Ninja MCP across multiple workstations","Developers integrating Binary Ninja MCP into CI/CD pipelines"],"limitations":["Auto-setup only works for officially supported MCP clients (Claude Desktop, Cline, Cursor, Roo Code, Windsurf, LM Studio)","Requires write permissions to client configuration directories","Python environment detection may fail if multiple Python versions are installed"],"requires":["Binary Ninja 3.0+ installed","Python 3.8+ in system PATH","MCP client installed (Claude Desktop, Cline, Cursor, etc.)","Write permissions to client config directories"],"input_types":["Client type selection (string: 'claude_desktop', 'cline', 'cursor', etc.)","Binary Ninja installation path (string, optional — auto-detected if not provided)"],"output_types":["JSON configuration file written to client config directory","Setup status report: {success: boolean, client_type, config_path, errors}"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_8","uri":"capability://planning.reasoning.natural.language.driven.binary.analysis.through.llm.prompting","name":"natural language-driven binary analysis through llm prompting","description":"Enables LLMs to receive structured analysis results from Binary Ninja and generate natural language insights about binary behavior, vulnerabilities, and functionality. The system provides example prompts and analysis templates that guide LLMs to ask relevant questions about functions, data structures, and control flow, creating a conversational reverse engineering interface where users can ask high-level questions and receive detailed analysis.","intents":["Ask an LLM to analyze a function and explain what it does in plain English","Get vulnerability assessment or security analysis of binary code from an LLM","Have an LLM suggest function names and types based on code analysis"],"best_for":["Security researchers using LLMs to accelerate malware analysis","CTF participants leveraging AI to understand unfamiliar code quickly","Teams building automated vulnerability discovery systems"],"limitations":["LLM analysis quality depends on the quality of Binary Ninja's analysis — garbage in, garbage out","LLMs may hallucinate or misinterpret complex assembly code, especially for unfamiliar architectures","No automated verification of LLM suggestions — human review is required before applying changes"],"requires":["Binary Ninja 3.0+ with binary loaded","MCP-compatible LLM client (Claude, GPT-4, etc.)","HTTP server running on localhost:9009"],"input_types":["Natural language question or prompt (string)","Function address or name (string or integer, optional context)"],"output_types":["Natural language analysis from LLM (string)","Structured suggestions (function names, types, vulnerability descriptions)"],"categories":["planning-reasoning","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-binary-ninja__cap_9","uri":"capability://data.processing.analysis.type.system.querying.and.struct.definition.management","name":"type system querying and struct definition management","description":"Exposes HTTP endpoints to query Binary Ninja's type system, retrieve struct definitions, and manage custom type annotations. The endpoints allow LLMs to inspect type information for functions and data structures, retrieve struct field layouts, and apply custom type definitions to improve code readability. Integrates with Binary Ninja's type inference engine to provide accurate type information for analysis.","intents":["Query the type signature of a function to understand its parameters and return value","Retrieve struct definitions to understand data structure layouts","Apply custom type definitions to improve binary analysis accuracy"],"best_for":["Reverse engineers analyzing binaries with complex data structures","Security researchers understanding struct-based vulnerabilities","Teams building automated type inference systems"],"limitations":["Type information is only as accurate as Binary Ninja's type inference — stripped binaries may have incomplete types","Custom type definitions are limited to Binary Ninja's supported type syntax","Cannot infer types for dynamically allocated structures without additional context"],"requires":["Binary Ninja 3.0+ with binary loaded","Type information must be available (either inferred or user-defined)","HTTP server running on localhost:9009"],"input_types":["Type name (string, e.g., 'struct_name', 'uint32_t')","Function address or name (string or integer)","Type definition string (C-style type syntax)"],"output_types":["JSON type object: {name, kind, size, fields, base_types}","Struct definition with field offsets and types"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":31,"verified":false,"data_access_risk":"high","permissions":["Binary Ninja 3.0+","Python 3.8+","FastMCP library installed in plugin environment","MCP-compatible client (Claude Desktop, Cline, Cursor, Roo Code, Windsurf, LM Studio)","Binary Ninja 3.0+ with binary loaded","Binary must be analyzed (Binary Ninja's auto-analysis must complete)","HTTP server running on localhost:9009","Understanding of Binary Ninja's Python API","Familiarity with HTTP server patterns and JSON serialization","Binary Ninja 3.0+ source code or documentation"],"failure_modes":["Adds ~200-500ms latency per tool invocation due to HTTP round-trip overhead","Requires Binary Ninja plugin to be running and HTTP server active on localhost:9009","Limited to 64 pre-defined tools — custom Binary Ninja analyses require plugin modification","Requires binary to be already loaded and analyzed in Binary Ninja (analysis must complete before querying)","Type information accuracy depends on Binary Ninja's type inference — may be incomplete for stripped binaries","Cannot extract function bodies or disassembly through this capability alone (separate capability required)","Requires Python development knowledge and understanding of Binary Ninja's API","Custom tools must follow the HTTP endpoint pattern — no direct MCP tool definition","Changes to the plugin require restarting the Binary Ninja instance","Xref accuracy depends on Binary Ninja's analysis completeness — indirect calls may be missed","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.47,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:02.371Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=binary-ninja","compare_url":"https://unfragile.ai/compare?artifact=binary-ninja"}},"signature":"a+IwkaLxMqtsGs2Qi4AhPbIA9NJQlgL/Pg8KzeHFB6bQ5QHrXx39GU8q0ab0F6DIBTEAYEsWJLEcB3mLsbJkDA==","signedAt":"2026-06-21T14:08:43.598Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/binary-ninja","artifact":"https://unfragile.ai/binary-ninja","verify":"https://unfragile.ai/api/v1/verify?slug=binary-ninja","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}