Skip to main content
Glama

HopperPyMCP

by dflatline
MIT License

HopperPyMCP - FastMCP Server for Hopper Disassembler

A FastMCP server plugin for the Hopper disassembler that provides powerful analysis tools through the Model Context Protocol (MCP). This plugin allows you to analyze binary files, disassemble procedures, manage documents, and more through AI assistants.

Features

  • 🔍 Binary Analysis: Analyze segments, procedures, and data structures
  • 🛠️ Disassembly & Decompilation: Get detailed assembly and pseudo-code output
  • 📊 Call Graph Generation: Visualize function relationships and program flow
  • 🔗 Reference Analysis: Track memory references and cross-references
  • 📝 Annotation Tools: Add names, comments, and type information
  • 🗂️ Document Management: Handle multiple executable files
  • 🔍 String Search: Advanced regex-based string searching

Quick Installation

The installation process automatically detects your Python environment (conda, uv, venv, or system Python) and configures everything for you:

# Simple one-command installation python install.py

That's it! The script will:

  • ✅ Detect your Python environment automatically
  • ✅ Install required dependencies (fastmcp)
  • ✅ Configure the script with correct Python paths
  • ✅ Install to the appropriate Hopper Scripts directory

Supported Environments

  • Conda environments (including miniconda/anaconda)
  • UV virtual environments
  • Python venv/virtualenv
  • System Python installations
  • macOS and Linux platforms

If you use an environment like conda, uv, or virtualenv, run the install script from within a new environment, since dependencies will be installed by install.py.

Manual Installation Options

Dry Run (Preview Changes)

# See what would be installed without making changes python install.py --dry-run

Force Installation

# Overwrite existing installation without prompting python install.py --force

Uninstallation

Remove the plugin cleanly:

# Remove the installation python uninstall.py # Preview what would be removed python uninstall.py --dry-run # Remove without confirmation python uninstall.py --confirm

Usage in Hopper

Once installed, the FastMCP server will be available as a script in Hopper.

Starting the Server

After running the script in Hopper, you'll need to launch the MCP server through the Python prompt:

  1. First Time Setup - Cache Strings (Recommended)Due to slow Hopper string APIs, the plugin creates optimized string caches for better performance. This process takes about 5-10 minutes per document and saves caches alongside your Hopper document saves.In the Hopper Python prompt, paste:
    cache_strings()
    Wait for caching to complete, then launch the server:
    launch_server()
  2. Quick Start (Skip Caching)To start immediately without caching (slower string searches):
    launch_server()
  3. Subsequent UsesIf you've already cached strings for your documents:
    launch_server()

The server will run on http://localhost:42069/mcp/ and provide the following tools:

Document Management

Core Analysis Tools

Search and Discovery

Disassembly & Decompilation

Call Graph Generation

Name and Symbol Analysis

Comments and Annotations

Requirements

  • Python 3.8+
  • Hopper Disassembler v4 or v5
  • FastMCP library (automatically installed)

File Structure

HopperPyMCP/ ├── install.py # Main installation script ├── uninstall.py # Uninstallation script ├── fastmcp_server.py # Current working version ├── fastmcp_server_template.py # Template with placeholders ├── requirements.txt # Python dependencies ├── tests/ # Test suite └── README.md # This file

Troubleshooting

Installation Issues

Problem: fastmcp import fails after installation

# Solution: Manually install dependencies pip install fastmcp # or for conda: conda install -c conda-forge fastmcp

Problem: Permission denied when writing to Hopper directory

# Solution: Check Hopper directory permissions ls -la ~/Library/Application\ Support/Hopper/Scripts/ # macOS ls -la ~/GNUstep/Library/ApplicationSupport/Hopper/Scripts/ # Linux

Problem: Wrong Python environment detected

# Solution: Activate the correct environment first conda activate your-environment # for conda source your-venv/bin/activate # for venv # Then run install.py

Runtime Issues

Problem: Script not appearing in Hopper

  • Verify installation path is correct for your platform
  • Check Hopper Scripts directory exists and is readable
  • Restart Hopper after installation

Problem: Import errors when running in Hopper

  • The installation should handle Python path configuration automatically
  • If issues persist, check that the installed script has the correct paths

Platform-Specific Notes

macOS: Scripts install to ~/Library/Application Support/Hopper/Scripts/ Linux: Scripts install to ~/GNUstep/Library/ApplicationSupport/Hopper/Scripts/

Development

Running Tests

# Run the test suite python -m pytest tests/

Development Installation

For development, you might want to symlink instead of copy:

# Manual symlink for development ln -s $(pwd)/fastmcp_server.py ~/Library/Application\ Support/Hopper/Scripts/

Support

For issues and questions:

  1. Check the troubleshooting section above
  2. Review the test files for usage examples
  3. Open an issue on the project repository

Note: This plugin requires Hopper's built-in Python interpreter. The installation script automatically configures the necessary Python paths for seamless integration.

-
security - not tested
-
license - not tested
-
quality - not tested

A FastMCP server plugin for the Hopper disassembler that enables AI assistants to analyze binary files, disassemble procedures, generate call graphs, search strings, and manage reverse engineering tasks. Provides comprehensive binary analysis capabilities including decompilation, annotation tools, and reference tracking through natural language interactions.

  1. Features
    1. Quick Installation
      1. Supported Environments
    2. Manual Installation Options
      1. Dry Run (Preview Changes)
      2. Force Installation
    3. Uninstallation
      1. Usage in Hopper
        1. Starting the Server
        2. Document Management
        3. Core Analysis Tools
        4. Search and Discovery
        5. Disassembly & Decompilation
        6. Call Graph Generation
        7. Name and Symbol Analysis
        8. Comments and Annotations
      2. Requirements
        1. File Structure
          1. Troubleshooting
            1. Installation Issues
            2. Runtime Issues
            3. Platform-Specific Notes
          2. Development
            1. Running Tests
            2. Development Installation
          3. Support

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/dflatline/HopperPyMCP'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server