BinjaLattice
@Invoke-RE
About BinjaLattice
Plugin interface for remote communications with Binary Ninja database and MCP server for interfacing with LLMs.
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"binja-lattice-mcp": {
"command": "python",
"args": [
"-m",
"venv",
".venv"
]
}
}
}Tools
No tools detected
We auto-extract tools from the README. The maintainer can list them under a ## Tools heading to populate this section.
Overview
What is BinjaLattice?
BinjaLattice is a secure communication protocol for Binary Ninja that enables interaction with external Model Context Protocol (MCP) servers and tools. It provides a structured way to acquire information from Binary Ninja and modify an active Binary Ninja database over HTTP using a REST API.
How to use BinjaLattice?
Install by copying the plugin files (lattice_server_plugin.py and lattice_config.ini) to Binary Ninja’s plugins directory, generating a secure API key, creating a Python virtual environment, and installing dependencies. In Binary Ninja, go to Plugins > Start Lattice Protocol Server; the server prints the API key which you set as the BNJLAT environment variable in your MCP configuration. You can then use the bundled MCP server (mcp_server.py) or the Lattice client library / lattice_client.py CLI.
Key features of BinjaLattice
- Secure token-based authentication
- Optional SSL/TLS encryption
- Export binary analysis context (pseudocode, disassembly, variable names, etc.)
- Modify Binary Ninja databases (rename functions, add comments, rename variables)
- Automatic token expiration and renewal
Use cases of BinjaLattice
- Rename functions and variables during reverse engineering analysis
- Add comments and tags to functions or addresses in a binary
- Extract pseudocode, disassembly, and call graphs for external tools
- Search for byte patterns with wildcard support
- Create and update struct types programmatically
FAQ from BinjaLattice
What dependencies does BinjaLattice require?
Binary Ninja (with Python API) and Python 3. The plugin creates a dedicated virtual environment and installs dependencies from requirements.txt.
How is authentication handled?
The server generates a random API key on startup and displays it in the Binary Ninja log. All requests require this key (or a short-lived token obtained after authentication). Tokens expire after 8 hours by default.
Can I use BinjaLattice over a network?
The server runs locally on port 9000 by default. Optional SSL/TLS encryption can be enabled by providing a certificate and key. The protocol uses HTTP and is intended for local or trusted networks.
What MCP tools are available?
Tools for binary information (get_binary_info), function analysis (get_function_disassembly, get_function_pseudocode, get_call_graph), data access (get_data_at_address, search_bytes), type management (create_struct, update_struct), and annotations (update_function_name, add_comment_to_address, create_tag).
Where does data processed by BinjaLattice live?
All data resides within the active Binary Ninja database. BinjaLattice reads and writes to that database; no external storage is used.
Frequently asked questions
What dependencies does BinjaLattice require?
Binary Ninja (with Python API) and Python 3. The plugin creates a dedicated virtual environment and installs dependencies from `requirements.txt`.
How is authentication handled?
The server generates a random API key on startup and displays it in the Binary Ninja log. All requests require this key (or a short-lived token obtained after authentication). Tokens expire after 8 hours by default.
Can I use BinjaLattice over a network?
The server runs locally on port 9000 by default. Optional SSL/TLS encryption can be enabled by providing a certificate and key. The protocol uses HTTP and is intended for local or trusted networks.
What MCP tools are available?
Tools for binary information (`get_binary_info`), function analysis (`get_function_disassembly`, `get_function_pseudocode`, `get_call_graph`), data access (`get_data_at_address`, `search_bytes`), type management (`create_struct`, `update_struct`), and annotations (`update_function_name`, `add_comment_to_address`, `create_tag`).
Where does data processed by BinjaLattice live?
All data resides within the active Binary Ninja database. BinjaLattice reads and writes to that database; no external storage is used.
Basic information
More Other MCP servers
Mcp
browsermcpBrowser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
MaxKB
1Panel-dev🔥 MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。

EverArt
modelcontextprotocolModel Context Protocol Servers
FastMCP v2 🚀
jlowin🚀 The fast, Pythonic way to build MCP servers and clients.
🚀 Model Context Protocol (MCP) Curriculum for Beginners
microsoftThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable,
Comments