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 Toolbox for Databases
googleapisMCP Toolbox for Databases is an open source MCP server for databases.

EverArt
modelcontextprotocolModel Context Protocol Servers
AutoBrowser MCP
autobrowser-aiBrowser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
Production-ready MCP integrations for AI applications
Klavis-AIKlavis AI: MCP integration platforms that let AI agents use tools reliably at any scale

Sequential Thinking
modelcontextprotocolModel Context Protocol Servers
Comments