HopperPyMCP

HopperPyMCP

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.

Category
Visit Server

README

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 Uses

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured