Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

HopperMCP

MCP.Pizza Chef: MxIris-Reverse-Engineering

HopperMCP is a Model Context Protocol server designed to facilitate interaction and automation with Hopper Disassembler files using Large Language Models. It enables reading and writing of Hopper files by injecting code to overcome Hopper's closed environment limitations. Currently in early development, it leverages reverse-engineered private interfaces to access disassembled and decompiled code, providing a unique bridge between Hopper and LLM workflows.

Use This MCP server To

Automate reading and writing of Hopper Disassembler files via LLMs Enable LLM-driven code analysis within Hopper Disassembler Inject code into Hopper to extend plugin capabilities Access disassembled and decompiled code through private Hopper interfaces Integrate Hopper workflows with AI-assisted reverse engineering Facilitate multi-step reasoning on binary analysis using LLMs Bridge Hopper Disassembler with external AI tools for automation

README

HopperMCP

Overview

A Model Context Protocol server for Hopper Disassembler interaction and automation. This server provides tools to read and write Hopper Disassembler files via Large Language Models.

Please note that HopperMCP is currently in early development. The functionality and available tools are subject to change and expansion as we continue to develop and improve the server.

Note

Due to Hopper's closed environment, it doesn't allow plugins to link to any third-party libraries, only permitting the use of basic dependencies like Foundation and AppKit. Therefore, we need to inject code into Hopper to enable loading of any type of plugin.

Hopper's SDK is also very simple, with no public interfaces to obtain disassembled or decompiled code. We've reverse-engineered Hopper and call its private interfaces to access this essential information. These basic interfaces are generally stable, but there's no guarantee that the author won't modify them in future versions.

Since code injection is required, you must disable SIP (System Integrity Protection) to use HopperMCP.

Usage

  1. Move HopperMCP.app to your Applications folder

  2. Install the Helper program (option 1 in the HopperMCPApp main interface, requires password)

  3. Install the plugin to the specified directory (option 2 in the HopperMCPApp main interface)

The application needs to run in the background. You should launch HopperMCP before starting Hopper (when HopperMCP detects Hopper starting, it will automatically inject code)

About 3 seconds after Hopper launches, you'll see a Tool Plugin menu appear in the menu bar. HopperMCP provides 4 menu options:

  • Start MCP Plugin
    • Starts the MCP plugin service
  • Stop MCP Plugin
    • Stops the MCP plugin service
  • Reload Plugins
    • Reloads all tool plugins
  • Notify Document Loaded
    • Since plugins can't detect when Hopper has finished loading, you need to manually notify the plugin when the document has loaded completely. This will initiate some caching operations. Because Hopper doesn't provide an interface to find addresses by name, we need to handle this ourselves.
  1. Start the HopperMCP plugin service

  2. Copy the Hopper MCP Server JSON (option 3 in the HopperMCPApp main interface) and input this JSON into your MCP client

Now you can use HopperMCP!

Available Tools

  • Get current assembly/pseudocode
  • Get assembly/pseudocode by name
  • Get assembly/pseudocode by address
  • Add comment
  • Add inline comment

HopperMCP FAQ

How does HopperMCP interact with Hopper Disassembler despite its closed environment?
HopperMCP injects code into Hopper to enable plugin loading and uses reverse-engineered private interfaces to access disassembled and decompiled code.
Is HopperMCP stable and fully featured?
HopperMCP is currently in early development; functionality and tools are subject to change and expansion.
What dependencies does HopperMCP rely on given Hopper's restrictions?
Due to Hopper's limitations, HopperMCP uses only basic dependencies like Foundation and AppKit.
Can HopperMCP access Hopper's public SDK interfaces?
No, HopperMCP uses reverse-engineered private interfaces because Hopper's SDK lacks public methods for disassembled or decompiled code access.
What benefits does HopperMCP provide for reverse engineering workflows?
It enables LLM-driven automation and analysis directly on Hopper files, enhancing binary analysis and code understanding.
Does HopperMCP support integration with multiple LLM providers?
Yes, HopperMCP can work with various LLMs such as OpenAI, Anthropic Claude, and Google Gemini for flexible AI workflows.
How does HopperMCP handle security given it injects code into Hopper?
Code injection is carefully managed to maintain Hopper's stability and security, but users should be aware of the experimental nature of this approach.