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
访问服务器

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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选