MCP.so
Sign In

BinjaLattice

@Invoke-RE

About BinjaLattice

Plugin interface for remote communications with Binary Ninja database and MCP server for interfacing with LLMs.

Basic information

Category

Other

License

MIT

Runtime

python

Transports

stdio

Publisher

Invoke-RE

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.

Comments

More Other MCP servers