rbinmcp wikiGitHub

Requirements

The server builds with Rust stable 1.85 or newer. radare2, Ghidra, file, strings, objdump, and radiff2 are optional runtime backends.

  • radare2 enables the r2_* tools.
  • GHIDRA_INSTALL_DIR enables the ghidra_* tools.
  • file, strings, objdump, and radiff2 enable native wrappers.
BackendRequired forEnv or binaryCheap fallback
Rust serverAll MCP tooling.Rust stable 1.85+.None.
radare2r2_* sessions and projections.r2 on PATH.static_view.
Ghidraghidra_* import and decompiler tools.GHIDRA_INSTALL_DIR.r2_function_view.
Native toolsfile_identify, strings_extract, objdump_view, binary_diff.file, strings, objdump, radiff2 on PATH.static_view where possible.

Build

Build the release server from the repository root.

  • git clone https://github.com/kirkderp/rbinmcp.git
  • cd rbinmcp
  • cargo build --release --bin rbm-server
  • The built server is target/release/rbm-server.
Release build
git clone https://github.com/kirkderp/rbinmcp.git
cd rbinmcp
cargo build --release --bin rbm-server
Optional local install
cargo install --path crates/rbm-server

Run

rbm-server currently uses stdio transport.

  • target/release/rbm-server --transport stdio --log-level info
  • For local development: cargo run --release --bin rbm-server -- --transport stdio --log-level debug
Generic MCP client command
{
  "command": "/absolute/path/to/rbinmcp/target/release/rbm-server",
  "args": ["--transport", "stdio", "--log-level", "info"]
}

Configuration

The cache root defaults to the platform user cache directory plus rbinmcp. Override only when you need a known location for shared analysis state or cleanup.

  • RBINMCP_CACHE_DIR overrides the cache root.
  • RBINMCP_GHIDRA_SCRIPTS_DIR overrides bundled Ghidra scripts.
  • RBINMCP_GHIDRA_TIMEOUT defaults to 60 seconds.
  • RBINMCP_GHIDRA_IMPORT_TIMEOUT defaults to 900 seconds.
  • RBINMCP_R2_OPEN_TIMEOUT defaults to 120 seconds.
  • RBINMCP_NATIVE_TIMEOUT defaults to 60 seconds.
Cache pathContentsCreated byUseful when
overflow/Large guarded MCP responses.Output guard.A tool returns too much data for inline output.
ghidra/Per-SHA-256 Ghidra projects.ghidra_import.You need warm-path Ghidra queries.
r2_sessions/radare2 session state.r2_open.You keep querying the same binary.
tmp/Temporary tool files.Backends and wrappers.Usually ignore unless cleaning up.