HopperMCP

MCP.Pizza Chef: MxIris-Reverse-Engineering

Eleven commands are actually switched on: listing the files open in Hopper, reading assembly or readable pseudo-code for the current selection, by name or by memory address, and writing comments back into the file. The README describes fewer than that. A rename-function command exists in the code but is switched off, so your assistant cannot rename anything. Mac only, it needs a paid Hopper licence, installs a background helper with your admin password, and requires you to turn off macOS System Integrity Protection. The project was archived in April 2025.

Archived · archived April 2025; no replacement named
Coding

Use This MCP server To

Ask what a function inside a program file actually does Read the readable version of code at a given address Get plain-English notes on assembly I do not recognise Save a comment back into Hopper as I work through a file List the files I currently have open in Hopper

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

Is this still being worked on?
No. The project was archived in April 2025 and has not changed since, with a single 0.1.0 release. Nothing here is being fixed or updated, and the author names no replacement.
Do I need to buy anything?
Yes. It only works alongside Hopper Disassembler, a paid commercial Mac program, and it only runs on macOS. There is no Windows or Linux version.
Do I need a key or a login?
No key at all. Instead it installs a background helper that asks for your administrator password, and you paste a short settings block from its app into your assistant.
Is there anything risky about installing it?
Yes, and it is worth knowing before you start. It requires turning off System Integrity Protection, a macOS safeguard that protects your whole machine, and it injects its own code into Hopper. That is a real security trade-off, not a formality.
Can I use this to rename functions in Hopper?
No. A rename command was written but is switched off in the code, so it never reaches your assistant.
Can it change my file?
Only by adding comments, either at a line or inline. Nothing else writes, so the code itself is left alone.
How hard is the setup?
Hard. You install an app, install its helper, install a plugin, reboot into recovery mode to turn off a security setting, then start things in a specific order every time.