MCP.so
Sign In

BinjaLattice MCP Server

@Invoke-RE

Basic information

Category

Other

License

MIT

Transports

stdio

Author

Invoke-RE

About BinjaLattice MCP Server

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

BinjaLattice MCP Server config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "binja-lattice-mcp": {
      "command": "python",
      "args": [
        "-m",
        "venv",
        ".venv"
      ]
    }
  }
}

BinjaLattice MCP Server tools

Tool list not available yet

This listing does not currently have a tool list to display. This does not mean the server has no tools; check its documentation for supported capabilities.

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

Frequently asked questions

1

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`.

2

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.

3

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.

4

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`).

5

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