Reversecore_MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Reversecore_MCPdecompile sample.exe and list imported functions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Reversecore MCP
AI-Powered Reverse Engineering & Security Analysis via Model Context Protocol
Enterprise-grade integrated static & dynamic analysis server β speak natural language, get expert-level reverse engineering, vulnerability triage, malware analysis, and forensics.
Table of Contents
Related MCP server: cutterMCP
What is Reversecore MCP?
Reversecore MCP is an enterprise-grade Model Context Protocol server that transforms AI assistants like Claude and Cursor into expert-level security research workstations.
It goes far beyond binary disassembly. Reversecore MCP integrates 50+ analysis tools spanning:
π¬ Static analysis β disassembly, decompilation, binary parsing
π₯ Dynamic triage β GDB crash parsing, exploitability assessment
π¦ Malware analysis β capability detection, IOC extraction, threat hunting
𧬠Vulnerability research β symbolic execution, fuzzing, ROP gadget detection
π SAST β source code auditing for Python, C, and C++
π΅οΈ Digital forensics β memory, disk, network, and artifact analysis
π Reporting β MITRE ATT&CK-mapped structured reports
Instead of learning complex tools by hand, you simply describe what you want in natural language:
"Decompile the main function of this malware sample, extract all network IOCs,
map the behavior to MITRE ATT&CK, and generate a triage report."β
Reversecore MCP automatically invokes r2_decompile β extract_iocs β add_session_mitre β create_analysis_report, returning structured analyst-grade output.
Architecture
AI Client (Claude / Cursor / any MCP-compatible client)
β MCP Protocol (stdio or HTTP/SSE)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FastMCP Server β
β 50+ registered tools Β· Async β
β Python 3.10β3.12 β
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ€
β Guided Prompts β Dynamic Resources β
β (5 expert modes) β (workspace, metrics, health) β
ββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ€
β Core Infrastructure β
β Config Β· Security Β· Validators Β· Exception Hierarchyβ
β R2 Pool Β· Metrics Β· Memory (SQLite) Β· Task Queue β
β MITRE Mapper Β· Evidence Engine Β· Resilience Layer β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Analysis Engines β
β Radare2 + r2ghidra β YARA Β· LIEF Β· Capstone β
β CAPA (Mandiant) β angr (Symbolic Execution) β
β Volatility3 Β· Scapy β DIE Β· Qiling Β· Binwalk β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββCore Infrastructure Modules
Module | Purpose |
| Centralized environment-aware configuration |
| Input sanitization & path validation |
| File & binary path validators |
| Thread-safe Radare2 connection pool |
| Structured Radare2 output utilities |
| Per-tool execution times & error rates |
| Async SQLite AI memory store |
| MITRE ATT&CK technique mapping engine |
| Evidence classification (OBSERVED/INFERRED/POSSIBLE) |
| Retry, circuit-breaker, timeout patterns |
| Background task queue (Redis + arq) |
| Plugin/extension registration system |
| Python AST scanner + C/C++ regex scanner |
Tool Catalog
Reversecore MCP exposes 50+ tools across 7 categories. Every tool returns a structured
ToolResultwithstatus,content, and optionalerrorfields.
π Static Analysis
Tool | Backend | Description |
|
| File type, architecture, and compiler fingerprinting |
|
| ASCII/Unicode string extraction with configurable min-length and limits |
| Binwalk | Firmware deep-scan: embedded signatures, filesystems, compressed blobs |
| LIEF | Full PE / ELF / Mach-O header, section, import/export, and TLS parsing |
| DIE ( | Compiler, linker, packer, and protector detection via Detect It Easy |
| CAPA (Mandiant FLARE) | High-level capability detection β "encrypts data", "creates persistence", etc. |
| AST + Regex SAST | Python AST scanner + C/C++ regex scanner for dangerous patterns |
βοΈ Disassembly & Decompilation
Tool | Backend | Description |
| r2pipe | Raw Radare2 command execution with connection pooling |
| Radare2 | Function disassembly with full auto-analysis ( |
| r2ghidra | High-quality C decompilation (Ghidra engine embedded in r2, no JVM) |
| r2ghidra + SQLite | Auto-recover C structs and persist to annotation database |
| Radare2 | Deep single-function analysis with type inference and variable tracking |
| Radare2 | Call graph extraction for a given function address |
| Radare2 | Preview binary patch effects before applying to disk |
| Radare2 | Stateful multi-command analysis sessions |
| Capstone | Multi-arch disassembly: x86/x64, ARM, MIPS, PPC, SPARC |
π Cross-Reference & Binary Annotation
Tool | Backend | Description |
| Radare2 | Track function calls, data references, and control flow |
| Radare2 | Read raw bytes from a given virtual address |
| SQLite | List all annotated C structs from the persistent annotation DB |
| SQLite | Create and persist a new struct annotation |
| SQLite | Annotate an address with a persistent comment |
| SQLite | List all address bookmarks across the workspace |
| Radare2 | List all known types in the current binary analysis |
𧬠Dynamic & Symbolic Analysis
Tool | Backend | Description |
| Radare2 ESIL | Register/memory-traced code emulation without running the binary |
| angr | Symbolic execution β prove path reachability and compute concrete inputs |
| Qiling + AFL++ | Auto-generate a Qiling-based fuzzing harness targeting a specific function |
| Radare2 | Semantic binary diff to track patch changes between versions |
| Radare2 | Identify statically linked libraries by function fingerprint matching |
π¦ Malware Analysis & Threat Detection
Tool | Backend | Description |
| Radare2 + heuristics | Find hidden backdoors, orphan functions, time-bombs, and logic bombs |
| Regex + LIEF | Extract IPs, URLs, domains, hashes, registry keys, crypto addresses |
| YARA | YARA rule scanning with custom rule files and built-in rulesets |
| YARA + Radare2 | Generate detection YARA rules + binary patches to neutralize a threat |
| Radare2 + analysis | Detect dangerous API patterns (strcpy, sprintf) and ROP gadget chains |
π Session Tracking & Report Generation
Tool | Description |
| Start a timed analysis session with unique session ID |
| Collect and tag IOCs during a live session |
| Document MITRE ATT&CK technique IDs during analysis |
| Finalize session: computes duration, locks IOC/ATT&CK lists |
| Render session report in 4 modes: |
| One-shot standardized JSON submission report |
| Deliver rendered report via SMTP |
π΅οΈ Digital Forensics
Tool | Backend | Description |
| Volatility3 | Full memory forensics: process list, network connections, injected code, handles |
| Scapy | PCAP analysis: protocol breakdown, DNS queries, HTTP payloads, anomalies |
| The Sleuth Kit | Filesystem forensics: deleted files, timeline reconstruction, metadata |
| Custom parsers | Browser history, Windows registry hives, event logs, prefetch files |
π Server Health & Workspace
Tool | Description |
| Uptime, memory usage, loaded tools, and operational status |
| Per-tool call counts, mean execution times, and error rates |
| List all files available in the analysis workspace |
| Metadata for a specific workspace file (size, hash, type) |
Guided Analysis Prompts
Activate expert analysis modes by referencing these prompts in your AI client:
Prompt | Use Case |
| 6-phase comprehensive analysis: triage β disassembly β behavior β network β persistence β report |
| Rapid triage for initial assessment and quick verdicts |
| Game client analysis with anti-cheat detection and memory inspection |
| IoT/embedded firmware: binwalk extraction, UART strings, hardcoded credentials |
| Structured session workflow with MITRE ATT&CK technique mapping |
How prompts work: Each prompt primes the AI with an expert persona, structured Chain-of-Thought checkpoints, and evidence classification (
OBSERVED/INFERRED/POSSIBLE). This produces analyst-grade output, not just raw tool output.
Quick Start
Option 1 β Docker (Recommended)
The fastest way to get started with zero dependency installation:
docker run -i --rm \
-v /path/to/your/samples:/app/workspace \
-e REVERSECORE_WORKSPACE=/app/workspace \
-e MCP_TRANSPORT=stdio \
ghcr.io/sjkim1127/reversecore_mcp:latestOption 2 β Build from Source
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
./scripts/run-docker.sh # auto-detects Intel / Apple SiliconOr manually:
docker compose --profile x86 up -d # Intel/AMD
docker compose --profile arm64 up -d # Apple Silicon (M1/M2/M3)Option 3 β Python (Local Development)
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python server.pyPrerequisites for local mode: Radare2 must be installed on your system (
r2 --version). YARA is installed automatically viayara-python.
Connect to Your AI Client
Add the server configuration to your IDE client settings (e.g., ~/.cursor/mcp.json or claude_desktop_config.json).
β‘ Option 1: Docker Exec Mode (Highly Recommended)
If you run the server via Docker Compose (in the background), this mode uses standard stdio channeled directly inside the running container. It offers zero startup latency, persistent analysis memory, and perfect compatibility (bypasses IDE client-side HTTP/SSE connection bugs).
{
"mcpServers": {
"Reversecore_MCP": {
"command": "docker",
"args": [
"exec",
"-i",
"-e",
"MCP_TRANSPORT=stdio",
"reversecore-mcp-arm64",
"python",
"server.py"
]
}
}
}Note: Replace reversecore-mcp-arm64 with reversecore-mcp if you are on an Intel/AMD architecture.
π Option 2: SSE HTTP Mode
If you prefer network-based streaming (Server-Sent Events) for remote clients:
{
"mcpServers": {
"Reversecore_MCP": {
"url": "http://localhost:8000/mcp/sse"
}
}
}π¦ Option 2: Stdio Mode (Docker-on-Demand)
If you prefer running a fresh, isolated container automatically on every request:
{
"mcpServers": {
"reversecore": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/Users/YOUR_USERNAME/samples:/app/workspace",
"-e", "REVERSECORE_WORKSPACE=/app/workspace",
"-e", "MCP_TRANSPORT=stdio",
"ghcr.io/sjkim1127/reversecore_mcp:latest"
]
}
}
}{
"mcpServers": {
"reversecore": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/home/YOUR_USERNAME/samples:/app/workspace",
"-e", "REVERSECORE_WORKSPACE=/app/workspace",
"-e", "MCP_TRANSPORT=stdio",
"ghcr.io/sjkim1127/reversecore_mcp:latest"
]
}
}
}{
"mcpServers": {
"reversecore": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "C:/samples:/app/workspace",
"-e", "REVERSECORE_WORKSPACE=/app/workspace",
"-e", "MCP_TRANSPORT=stdio",
"ghcr.io/sjkim1127/reversecore_mcp:latest"
]
}
}
}β οΈ Important β File Paths Inside Docker
Your local folder is mounted to
/app/workspaceinside the container. Always reference files by filename only, not by your local full path.
β Wrong
β Correct
r2_decompile("/Users/john/samples/mal.exe")
r2_decompile("mal.exe")
Configuration
All settings can be provided via environment variables or a .env file (see .env.example):
Variable | Default | Description |
|
| Transport mode: |
|
| Analysis workspace directory |
|
| Additional colon-separated read-only directories |
|
| Logging verbosity: |
| (unset) | API key for HTTP mode authentication (optional) |
|
| Max requests per minute (HTTP mode only) |
|
| Default tool execution timeout in seconds |
|
| Radare2 connection pool size |
|
| Redis URL for background task queue |
| (unset) | SMTP host for report email delivery |
|
| SMTP port |
| (unset) | SMTP username |
| (unset) | SMTP password |
Security Model
Security is a first-class concern. Reversecore MCP was designed to safely analyze untrusted malware samples without risk to the host system.
Control | Implementation |
No shell injection | All subprocess calls use list arguments, never shell strings |
Path traversal prevention | All file access validated and confined to configured workspace |
Input sanitization | All parameters sanitized via |
Rate limiting | Configurable per-minute request limits in HTTP mode (via slowapi) |
Container isolation | Runs as non-root |
Secrets scanning | Gitleaks runs on every commit β no credentials ever reach the repo |
SAST in CI | Bandit (all severities) + CodeQL on every push to |
Dependency auditing | pip-audit on every push β zero known CVEs enforced |
Container scanning | Trivy scans final Docker image β LOW through CRITICAL findings reviewed |
Error codes | Structured exception hierarchy with |
Development
Setup
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
pre-commit install # installs Gitleaks, Ruff, Bandit hooksTesting
# Full test suite with coverage report
pytest tests/ -v
# Unit tests only (fast, no external dependencies)
pytest tests/unit/ -v
# Integration tests (requires Docker)
pytest tests/integration/ -v
# Run with coverage threshold enforcement
pytest tests/unit/ --cov=reversecore_mcp --cov-fail-under=80
# Run a specific test
pytest tests/unit/test_cli_tools.py::TestRunFile::test_success -vTest status:
β 1,520 unit tests passing across Python 3.10 / 3.11 / 3.12
π 82% code coverage (80% minimum enforced in CI)
π Zero Bandit findings Β· Zero pip-audit CVEs Β· Zero container vulnerabilities
β‘ Fully async test suite via
pytest-asyncio
Code Quality
ruff check reversecore_mcp/ # Lint (E, W, F, I, B, C4, UP rules)
ruff format reversecore_mcp/ # Format
mypy reversecore_mcp/ # Type check (0 errors across 87 files)
bandit -r reversecore_mcp/ # Security scan (all severities)
pip-audit # Dependency CVE scanCI/CD Pipeline
Every push to main runs the following gates β all must pass before deployment:
Lint & Security Gate Unit Tests (Python Matrix)
ββ Gitleaks (secret scan) ββ pytest 3.10 --cov-fail-under=80
ββ Hadolint (Dockerfile) ββ pytest 3.11 --cov-fail-under=80
ββ Ruff check + format ββ pytest 3.12 --cov-fail-under=80
ββ Mypy type check (87 files)
ββ Bandit (all severities) Docker Verification
ββ pip-audit (zero CVE) ββ Build multi-arch image (amd64/arm64)
ββ Trivy container scan (LOWβCRITICAL)
CodeQL Analysis ββ Integration tests (inside container)
ββ Python SAST ββ E2E MCP tool invocation
Deploy (main branch only)
ββ Push to GHCR + Trivy rescan on published imageZero-bypass policy: CI/CD failures are never resolved by modifying pipeline configuration. Root causes are always fixed directly in source code or dependencies.
System Requirements
Component | Minimum | Recommended |
CPU | 4 cores | 8+ cores |
RAM | 8 GB | 16 GB |
Storage | 20 GB | 50 GB SSD |
OS | Linux / macOS | Docker environment (any OS) |
Docker | 20.10+ | 24.0+ |
Python (local mode) | 3.10 | 3.11 or 3.12 |
Project Structure
reversecore_mcp/
βββ core/ # Infrastructure layer
β βββ config.py # Centralized configuration
β βββ exceptions.py # Exception hierarchy (RCMCP-E* codes)
β βββ security.py # Input sanitization & path validation
β βββ validators.py # File & binary path validators
β βββ r2_pool.py # Thread-safe Radare2 connection pool
β βββ r2_helpers.py # Structured Radare2 output utilities
β βββ metrics.py # Tool execution metrics
β βββ decorators.py # @log_execution, @track_metrics
β βββ error_handling.py # @handle_tool_errors decorator
β βββ memory.py # Async SQLite AI memory store
β βββ mitre_mapper.py # MITRE ATT&CK mapping engine
β βββ evidence.py # Evidence classification system
β βββ resilience.py # Retry, circuit-breaker, timeout
β βββ task_queue.py # Background task queue (Redis/arq)
β βββ extension_registry.py # Plugin registration system
β βββ sast/ # Python AST + C/C++ scanners
β
βββ tools/ # MCP tool implementations
β βββ analysis/ # Static analysis
β β βββ static_analysis.py # file, strings, binwalk
β β βββ lief_tools.py # LIEF binary parser
β β βββ capa_tools.py # CAPA capability detection
β β βββ die_tools.py # DIE packer/compiler detection
β β βββ diff_tools.py # Binary diffing
β β βββ emulation_tools.py # ESIL emulation
β β βββ fuzz_tools.py # Fuzzing harness generator
β β βββ symbolic_analysis.py # angr symbolic execution
β β βββ signature_tools.py # Library signature matching
β β βββ source_auditor.py # SAST (Python + C/C++)
β β
β βββ radare2/ # Radare2 & decompilation
β β βββ radare2_mcp_tools.py # Core r2 tool set
β β βββ r2ghidra_tools.py # Ghidra decompiler (r2ghidra)
β β βββ r2_analysis.py # Deep function analysis
β β βββ r2_db.py # SQLite annotation database
β β βββ r2_session.py # Stateful analysis sessions
β β
β βββ malware/ # Threat detection & defense
β β βββ dormant_detector.py # Backdoor/logic bomb detection
β β βββ ioc_tools.py # IOC extraction
β β βββ yara_tools.py # YARA scanning
β β βββ adaptive_vaccine.py # YARA rule + patch generation
β β βββ vulnerability_hunter.py # Vuln pattern detection
β β
β βββ forensics/ # Digital forensics
β β βββ memory.py # Volatility3 memory forensics
β β βββ network.py # Scapy PCAP analysis
β β βββ disk.py # Sleuth Kit disk forensics
β β βββ artifact.py # Browser/registry/event log
β β
β βββ report/ # Report generation
β βββ common/ # File ops, server health
β
βββ prompts/ # AI reasoning prompts (5 modes)
βββ resources.py # Dynamic MCP resources
βββ server.py # FastMCP server entrypoint (50+ tools registered)Adding New Tools
Follow this pattern to add a new MCP tool:
# reversecore_mcp/tools/analysis/my_tool.py
from reversecore_mcp.core.decorators import log_execution
from reversecore_mcp.core.result import ToolResult, success, failure
from reversecore_mcp.core.security import validate_file_path
@log_execution()
async def my_analysis_tool(file_path: str, option: str | None = None) -> ToolResult:
"""Analyze a binary for X.
Args:
file_path: Path to the binary file (relative to workspace).
option: Optional analysis option.
Returns:
ToolResult with status='success' and structured content.
"""
try:
safe_path = validate_file_path(file_path)
result = await perform_analysis(safe_path)
return success({"result": result})
except Exception as e:
return failure(str(e))Then register it in server.py and add tests in tests/unit/.
Contributing
Fork the repository
Create a feature branch:
git checkout -b feat/my-featureWrite tests alongside your code β coverage must not drop below 80%
Ensure all gates pass:
pytest,ruff check,mypy,banditOpen a pull request with a clear description
Please read the Contributing Guide for code standards, docstring conventions, and the pull request checklist.
Documentation
Document | Description |
Detailed setup for all environments | |
System design & component deep-dive | |
Code standards, docstrings, PR workflow | |
Test patterns, fixtures, and coverage | |
Tool and module reference | |
End-user analysis workflows |
License
MIT β see LICENSE for details.
GitHub Β· FastMCP Docs Β· MCP Spec Β· Radare2 Β· YARA
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sjkim1127/Reversecore_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server