You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Comprehensive Model Context Protocol (MCP) server for Binary Ninja with AI-powered reverse engineering capabilities
Summary
BinAssistMCP is a powerful bridge between Binary Ninja and Large Language Models (LLMs) like Claude, providing comprehensive reverse engineering tools through the Model Context Protocol (MCP). It enables AI-assisted binary analysis by exposing Binary Ninja's advanced capabilities through Server-Sent Events (SSE) and Streamable HTTP transports.
Key Features
MCP 2025-11-25 Compliant: Full support for tool annotations, resources, and prompts
Dual Transport Support: SSE (Server-Sent Events) and Streamable HTTP transports
44 Consolidated Tools: Streamlined Binary Ninja API wrapper with unified tool design
BinAssistMCP provides 44 tools organized into functional categories. Tools include MCP annotations (readOnlyHint, idempotentHint) to help clients make informed decisions.
Binary Management
Tool
Description
list_binaries
List all loaded binary files
get_binary_info
Check analysis status and metadata
update_analysis_and_wait
Force analysis update and wait for completion
export_program
Export the patched binary or Binary Ninja database to disk
User: "Analyze the main function and explain what it does"
Claude uses:
1. get_functions() - find main
2. get_code(format='decompile') - get readable code
3. xrefs(action='refs_from') - find called functions
4. analyze_function() - get complexity metrics
User: "Analyze the network protocol used by this binary"
Claude uses the trace_network_data prompt:
1. Identifies send/recv call sites
2. Traces data flow from handlers to network I/O
3. Reconstructs message structures
4. Checks for network vulnerabilities
Troubleshooting
Server Issues
Problem
Solution
Server won't start
Check port 9090 availability, verify dependencies
Connection refused
Ensure server is running, check firewall settings
Tools return errors
Wait for analysis completion, verify binary is loaded
Performance
Slow decompilation: Results are cached; second request is faster
Memory usage: Reduce max_binaries setting
Long operations: Check task status with get_task_status
Logs
Check Binary Ninja's Log panel for detailed error messages.
Contributing
Fork the repository
Create a feature branch
Follow existing code patterns (Pydantic models, type hints, docstrings)
Test with multiple binary types
Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.