Requirements
The server builds with Rust stable 1.85 or newer. radare2, Ghidra, file, strings, objdump, and radiff2 are optional runtime backends.
radare2enables ther2_*tools.GHIDRA_INSTALL_DIRenables theghidra_*tools.file,strings,objdump, andradiff2enable native wrappers.
| Backend | Required for | Env or binary | Cheap fallback |
|---|---|---|---|
| Rust server | All MCP tooling. | Rust stable 1.85+. | None. |
| radare2 | r2_* sessions and projections. | r2 on PATH. | static_view. |
| Ghidra | ghidra_* import and decompiler tools. | GHIDRA_INSTALL_DIR. | r2_function_view. |
| Native tools | file_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.gitcd rbinmcpcargo build --release --bin rbm-server- The built server is
target/release/rbm-server.
git clone https://github.com/kirkderp/rbinmcp.git
cd rbinmcp
cargo build --release --bin rbm-servercargo install --path crates/rbm-serverRun
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
{
"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_DIRoverrides the cache root.RBINMCP_GHIDRA_SCRIPTS_DIRoverrides bundled Ghidra scripts.RBINMCP_GHIDRA_TIMEOUTdefaults to60seconds.RBINMCP_GHIDRA_IMPORT_TIMEOUTdefaults to900seconds.RBINMCP_R2_OPEN_TIMEOUTdefaults to120seconds.RBINMCP_NATIVE_TIMEOUTdefaults to60seconds.
| Cache path | Contents | Created by | Useful 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. |