Skip to main content

A sandboxed MCP tool for reverse engineering with multiple tool integrations

Project description

Reverse Engineering Tools MCP Server

mcp-name: io.github.daedalus/mcp_reverse_engineering

A sandboxed MCP (Managed Computation Platform) tool for reverse engineering that provides a unified interface to various reverse engineering tools with security restrictions.

Features

  • Sandboxed Execution: All tools run in a restricted environment with timeouts, memory limits, and filesystem jail
  • Unified Interface: Single interface to access multiple reverse engineering tools
  • Configurable Tool Loading: Select which tools to enable via YAML configuration to avoid overwhelming LLM context windows
  • Tool Categories:
    • File Analysis: file, strings, hexdump, xxd
    • Binary Analysis: objdump, readelf, ldd, strace, ltrace, upx, gdb, radare2, angr, ghidra, frida
    • Firmware Analysis: binwalk, unsquashfs, sasquatch, jefferson, ubi_reader, unpackers, retdc, qemu
    • Network Tools: curl, wget
  • Advanced Capabilities:
    • Radare2 AST queries
    • Angry symbolic execution
    • Ghidra headless decompilation
    • Automatic unpacker detection
    • Firmware filesystem detection
    • Auto QEMU emulation
  • Safety Features:
    • Argument validation
    • Execution sandbox with resource limits
    • File workspace jail
    • Tool output truncation
  • Knowledge Base: Built-in documentation for all tools
  • Testing: Unit and functional tests included

Installation

pip install -e .

Configuration

Tools are configured via YAML files to control which tools are loaded. This prevents overwhelming LLM context windows by enabling only the tools you need.

Default config (tools_config.yaml): All tools disabled

Example configs:

  • examples/minimal.yaml - Only file analysis tools (3 tools)
  • examples/firmware.yaml - File + Binary + Firmware analysis
  • examples/full.yaml - All 25 tools enabled
# Enable specific tool categories
settings:
  default_timeout: 300

categories:
  file_analysis:
    enabled: true
    tools:
      - file
      - strings
      - hexdump

Usage

# Using the CLI with default config
mcp-re --tool strings --args "-n 10" --file ./binary.exe

# Using a specific config
mcp-re --config examples/minimal.yaml --tool strings --args [] --file ./binary.exe

Programmatic usage:

from mcp_reverse_engineering.core.engine import ReverseEngineeringEngine

# Load with default config (no tools enabled)
engine = ReverseEngineeringEngine()

# Load with specific config
engine = ReverseEngineeringEngine(config_path="examples/minimal.yaml")

# List enabled tools
print(engine.list_available_tools())

# Get MCP-compatible tool schemas
print(engine.get_mcp_tools())

# Execute a tool
result = engine.execute_tool("strings", ["-n", "10"], "./binary.exe")
print(result)

Available Tools

Run mcp-re --tool help to see all available tools, or check the knowledge base in the source code.

Security

The tool employs multiple layers of security:

  1. Filesystem jail - all operations confined to workspace directory
  2. Process resource limits - CPU, memory, process count, file size restrictions
  3. Timeout enforcement - prevents hanging operations
  4. Argument validation - basic sanitization of inputs
  5. Output truncation - prevents excessive data exposure

Testing

Run the test suite:

python -m unittest discover tests

Requirements

See requirements.txt for Python dependencies.

Note: The actual reverse engineering tools (binwalk, radare2, etc.) must be installed separately on the system.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_reverse_engineering-0.1.0.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_reverse_engineering-0.1.0.1-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file mcp_reverse_engineering-0.1.0.1.tar.gz.

File metadata

File hashes

Hashes for mcp_reverse_engineering-0.1.0.1.tar.gz
Algorithm Hash digest
SHA256 908890981834479ecb574f82ff18515ac6041c12ed871596450c8adcdf0b6f8f
MD5 073c484f901ee2c5b63919ef5e35f447
BLAKE2b-256 1e0cfec7c4aede165bb8f6b20c560f5283301d565aab47ffc881e753ed7d702c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_reverse_engineering-0.1.0.1.tar.gz:

Publisher: pypi-publish.yml on daedalus/mcp_reverse_engineering

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_reverse_engineering-0.1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_reverse_engineering-0.1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 80084e987aea8203b0db5cc28288a4866b5a1688ddab888fcc25ef9cc8aeaedc
MD5 41464ce8215ffdbfbf259bffb0d4c77b
BLAKE2b-256 0faf7dd405334f7227f2cd6f23517e94f54a6dab32ffaf726a5829de0eadeb85

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_reverse_engineering-0.1.0.1-py3-none-any.whl:

Publisher: pypi-publish.yml on daedalus/mcp_reverse_engineering

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page