Rogue_Binary // Triage_Mode
Document_Viewer: /wiki/rbinilspy-setup Back_To_Index

Rogue Binary MCP

ILSpy MCP Setup

Compile and configure the C# assembly ILSpyCmd decompiler Model Context Protocol server natively.

Section: Requirements

The rbinilspy MCP server disassembles and decompiles managed .NET assemblies completely natively. It runs locally without virtualization.

  • .NET SDK (version 10.0 or newer required to compile and run the worker).
  • Rust toolchain (Cargo/rustc 1.75 or newer).
  • A workspace cache directory.
Section: Compilation

Both the Rust MCP bridge and the C# ILSpy worker backend must be compiled locally.

  • Build the Rust server in release mode inside rbinilspy repository.
  • Publish the ilspy-worker C# project natively inside the ilspy-worker folder.
  • Confirm both the Rust binary and published C# worker executable are generated.
Compile and Publish
                        cd ~/rbinilspy
cargo build --release
cd ilspy-worker
dotnet publish -c Release -o bin/publish
                      
Section: MCP Client Configuration

Configure your agent client using the compiled binaries. Provide RBM_ILSPY_WORKER to specify the C# worker path.

  • Set command to point to target/release/rbinilspy.
  • Define RBM_ILSPY_WORKER env to match the absolute path of the published C# worker binary.
  • Define RBM_CACHE_DIR env for session cache structures.
Claude Desktop Config
                        {
  "mcpServers": {
    "rbinilspy": {
      "command": "/path/to/rbinilspy/target/release/rbinilspy",
      "env": {
        "RBM_ILSPY_WORKER": "/path/to/rbinilspy/ilspy-worker/bin/publish/ilspy-worker",
        "RBM_CACHE_DIR": "~/.cache/rbinilspy"
      }
    }
  }
}
                      
Section: Native Stdio Pipe

The server initializes a persistent background C# ILSpy worker. Standard streams (stdin/stdout) redirect requests cleanly to prevent full assemblies from being parsed multiple times.

  • Uses persistent assembly loader sessions in memory.
  • Avoids launching separate .NET processes for consecutive queries.
  • Memory is recycled dynamically when sessions are closed.