H
Hopper MCP
作者 @neverrend
MCP server that exposes Hopper disassembler capabilities to LLMs via Claude Code (or any MCP client).
创建于 3/5/2026
更新于 about 3 hours ago
README
Repository documentation and setup instructions
Hopper MCP Server
MCP server that exposes Hopper disassembler capabilities to LLMs via Claude Code (or any MCP client).
Architecture
Claude/LLM <--stdio--> MCP Server <--file bridge--> Hopper Loader Script
(external) (runs inside Hopper)
The MCP server communicates with Hopper through JSON files in ~/.hopper_mcp/. No SIP disabling or special permissions needed.
Setup
1. Install the MCP server
cd hopper_mcp
pip install -e .
2. Add to Claude Code config
Add to ~/.claude/claude_code_config.json:
{
"mcpServers": {
"hopper": {
"command": "hopper-mcp"
}
}
}
3. Start the loader in Hopper
- Open a binary in Hopper Disassembler
- Open Script Editor (Shift+Cmd+S)
- Load or paste
hopper_scripts/hopper_mcp_loader.py - Click Run
The loader will poll for commands. If Hopper supports addTimer(), it runs non-blocking. Otherwise it runs a blocking loop.
Available Tools
Read Tools
get_document_info— Document name, entry point, segment countlist_segments— All segments with addresses and sizeslist_procedures— All functions (optionally filtered by segment)get_disassembly— Disassembly at an addressget_decompilation— Pseudo-code for a functionread_bytes— Raw bytes at addressget_xrefs— Cross-references to/from an addresssearch_strings— Search string literalsget_current_selection— Currently selected address in Hopper UI
Annotate Tools
rename_symbol— Rename a label at an addressadd_comment— Add inline commentset_type— Set data type at address
Troubleshooting
- Timeout errors: Make sure the loader script is running inside Hopper
- "No document open": Open a binary in Hopper before running the loader
- Check
~/.hopper_mcp/commands/for stale command files (delete them if stuck)
快速设置
此服务器的安装指南
安装包 (如果需要)
uvx hopper_mcp
Cursor 配置 (mcp.json)
{
"mcpServers": {
"neverrend-hopper-mcp": {
"command": "uvx",
"args": [
"hopper_mcp"
]
}
}
}