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
- File Analysis:
- 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 analysisexamples/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:
- Filesystem jail - all operations confined to workspace directory
- Process resource limits - CPU, memory, process count, file size restrictions
- Timeout enforcement - prevents hanging operations
- Argument validation - basic sanitization of inputs
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_reverse_engineering-0.1.0.1.tar.gz.
File metadata
- Download URL: mcp_reverse_engineering-0.1.0.1.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
908890981834479ecb574f82ff18515ac6041c12ed871596450c8adcdf0b6f8f
|
|
| MD5 |
073c484f901ee2c5b63919ef5e35f447
|
|
| BLAKE2b-256 |
1e0cfec7c4aede165bb8f6b20c560f5283301d565aab47ffc881e753ed7d702c
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_reverse_engineering-0.1.0.1.tar.gz -
Subject digest:
908890981834479ecb574f82ff18515ac6041c12ed871596450c8adcdf0b6f8f - Sigstore transparency entry: 1178329319
- Sigstore integration time:
-
Permalink:
daedalus/mcp_reverse_engineering@7494707632a862fd8c3eada6b92355cf52e19c35 -
Branch / Tag:
refs/tags/v0.1.0.1 - Owner: https://github.com/daedalus
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@7494707632a862fd8c3eada6b92355cf52e19c35 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mcp_reverse_engineering-0.1.0.1-py3-none-any.whl.
File metadata
- Download URL: mcp_reverse_engineering-0.1.0.1-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80084e987aea8203b0db5cc28288a4866b5a1688ddab888fcc25ef9cc8aeaedc
|
|
| MD5 |
41464ce8215ffdbfbf259bffb0d4c77b
|
|
| BLAKE2b-256 |
0faf7dd405334f7227f2cd6f23517e94f54a6dab32ffaf726a5829de0eadeb85
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_reverse_engineering-0.1.0.1-py3-none-any.whl -
Subject digest:
80084e987aea8203b0db5cc28288a4866b5a1688ddab888fcc25ef9cc8aeaedc - Sigstore transparency entry: 1178329364
- Sigstore integration time:
-
Permalink:
daedalus/mcp_reverse_engineering@7494707632a862fd8c3eada6b92355cf52e19c35 -
Branch / Tag:
refs/tags/v0.1.0.1 - Owner: https://github.com/daedalus
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@7494707632a862fd8c3eada6b92355cf52e19c35 -
Trigger Event:
release
-
Statement type: