Go to file
morluto d9c9025ffb Improve Hopper session reliability 2026-07-12 06:53:31 +08:00
bridge Improve Hopper session reliability 2026-07-12 06:53:31 +08:00
scripts docs: document frictionless binary workflow 2026-07-12 06:34:36 +08:00
skills/better-binary-analysis feat(cli): add guided local onboarding 2026-07-12 06:34:27 +08:00
src Improve Hopper session reliability 2026-07-12 06:53:31 +08:00
tests Improve Hopper session reliability 2026-07-12 06:53:31 +08:00
.gitignore Add Node.js project tooling and config 2026-07-12 03:25:06 +08:00
.prettierignore Add Node.js project tooling and config 2026-07-12 03:25:06 +08:00
AGENTS.md Fix AI writing audit findings and rebuild onboarding flow 2026-07-12 03:34:22 +08:00
LICENSE Initial commit: betterBinaryMCP - Enhanced MCP server for Hopper Disassembler 2026-04-14 08:51:30 +08:00
README.md docs: document frictionless binary workflow 2026-07-12 06:34:36 +08:00
eslint.config.js Add Node.js project tooling and config 2026-07-12 03:25:06 +08:00
package-lock.json feat(cli): add guided local onboarding 2026-07-12 06:34:27 +08:00
package.json feat(cli): add guided local onboarding 2026-07-12 06:34:27 +08:00
tsconfig.build.json Add Node.js project tooling and config 2026-07-12 03:25:06 +08:00
tsconfig.json Add Node.js project tooling and config 2026-07-12 03:25:06 +08:00
vitest.config.ts Add Node.js project tooling and config 2026-07-12 03:25:06 +08:00

README.md

Better Binary

Agent-ready Hopper Disassembler tooling: a beta.3 MCP server with 31 official proxies, 8 enhanced reverse-engineering workflows, and 3 binary-session tools.

Install from this checkout

Requires macOS 12+ and Node.js 22+.

npm ci
npm run build
npm link
better-binary setup --yes

setup is safe to repeat. It checks the host, installs Homebrew when approved and absent, installs Hopper from the official hopper-disassembler cask, and finishes with structured diagnostics. It never bundles Hopper or publishes this private package.

Useful onboarding commands:

better-binary --help
better-binary --llms
better-binary doctor --target /path/to/binary
better-binary skills add
better-binary mcp add

MCP workflow

Start better-binary-mcp with no target. In the connected agent:

  1. Call open_binary with any readable local binary or .hop path.
  2. Call binary_overview, then use decompilation, strings, symbols, and xrefs tools.
  3. Call open_binary again to switch targets; a failed switch preserves the current target.
  4. Call close_binary when finished. binary_session reports current state.

Relative target paths resolve against the MCP server's working directory. Mach-O/FAT, ELF, PE, and Hopper databases are detected automatically. FAT loading selects the host-compatible architecture.

HOPPER_TARGET_PATH remains supported for older configurations but is optional. HOPPER_LAUNCHER_PATH, HOPPER_TARGET_KIND, and HOPPER_LOADER_ARGS_JSON retain their existing meanings for legacy startup configuration.

Manual target-free MCP configuration:

{
  "mcpServers": {
    "better-binary": {
      "command": "better-binary-mcp"
    }
  }
}

The first open_binary can take time while Hopper analyzes the file. Analysis calls made without an open target return an actionable NoBinaryOpenError.

Development and verification

npm run check
npm pack --dry-run
HOPPER_TARGET_PATH=/path/to/target-a \
HOPPER_SECOND_TARGET_PATH=/path/to/distinct-target-b \
npm run verify:hopper

Real-Hopper verification requires Hopper and a representative target. The stdio server uses only the repository's authenticated Unix-socket bridge; Hopper's bundled MCP server is not used.

The provisional package, executable, MCP, skill, and config names are centralized in src/identity.ts so release naming can change cleanly. The package remains private and is not ready for publication.

License

MIT, see LICENSE.