Reversecore MCP
OCI · GHCR.IO/SJKIM1127/REVERSECORE_MCP · 2 COMPONENTS
Security-first MCP server for reverse engineering, malware analysis, forensics, and SAST.
Available components
Last scanned (12 hours ago)
Scores higher than 93% of OCI servers
Category Security
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: this image's dependency list comes from an SBOM its publisher attached, which nothing verifies, so we will not report it as a clean result. View diagnostics → Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this image's dependency list comes from an SBOM its publisher attached. It names packages and versions but not whether each is deprecated, still maintained or linked to its source, so there is nothing we can fairly grade.Unverified
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 38 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability82
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 18370 tokens (~118/item across 155 items; 151 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 90% of tool parameters carry a description.Partial
- Structured output schemas are declared (99% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "cve_fuzz_target" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 152 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Oct 26 +1
- Stability: 0.97 → pass security
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Oct 26 +8
- Stability: unverified → 0.63 ▲ functional
- 28 Sept 26 0
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed oci/ghcr.io/sjkim1127/reversecore_mcp@3.0.5
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | oci |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 180 ungraded findings
From the publisher's SBOM, not graded. These advisories match packages listed in the SBOM the publisher attached to this image. A publisher naming a vulnerable package in their own image is credible, so we show them. Nothing verifies that SBOM, though, so the Known CVEs signal does not grade the image from it.
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-6v38-4h7w-rj9h | CVE-2026-96760 | critical | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-7vr2-2fgp-9w7p | CVE-2026-114615 | high | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-8m4g-j4wp-wgcg | CVE-2026-114616 | high | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-c5mf-xmp2-59rc | CVE-2026-114617 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N | yes |
| GHSA-c73q-w75p-j82v | CVE-2026-116672 | high | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | yes |
| GHSA-fch4-3c6x-j4gc | CVE-2026-114618 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-jj7h-c3hg-m23x | CVE-2026-114614 | low | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:N/A:N | yes |
| GHSA-q686-2qmg-hqc7 | CVE-2026-114619 | medium | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N | yes |
| GHSA-x4rv-c3wx-4cr8 | CVE-2026-114620 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N | yes |
| PYSEC-2026-4354 | CVE-2026-114614 | low | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N | yes |
| PYSEC-2026-4355 | CVE-2026-114615 | critical | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N | yes |
| PYSEC-2026-4356 | CVE-2026-114616 | critical | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N | yes |
| PYSEC-2026-4357 | CVE-2026-114617 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N | yes |
| PYSEC-2026-4358 | CVE-2026-114618 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N | yes |
| PYSEC-2026-4359 | CVE-2026-114619 | medium | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N | yes |
| PYSEC-2026-4360 | CVE-2026-114620 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N | yes |
| GHSA-3cm8-v4mc-gppg | CVE-2022-4510 | high | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H | no |
| PYSEC-2026-787 | CVE-2022-4510 | high | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H | yes |
| GHSA-cg8m-r9f2-5wm2 | CVE-2026-114134 | high | yes | |
| GHSA-6q48-6c7w-9gw2 | critical | yes | ||
| PYSEC-2026-4320 | none | yes | ||
| GHSA-45c3-73f7-pv4m | CVE-2026-114605 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-7xgj-8392-5q4r | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N | yes | |
| GHSA-23mf-xhv8-69c2 | CVE-2026-110859 | high | yes | |
| GHSA-59cr-6r3x-644w | CVE-2026-100689 | medium | yes | |
| GHSA-83vg-56qc-22m7 | CVE-2026-114145 | high | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H | yes |
| GHSA-f9j4-qggq-h239 | CVE-2026-110858 | high | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H | yes |
| GHSA-fx3j-rwgx-fr94 | CVE-2026-110855 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N | yes |
| GHSA-gq48-pqfc-9p58 | CVE-2026-110860 | medium | yes | |
| GHSA-m64x-33q8-m5h7 | CVE-2026-110856 | high | yes | |
| GHSA-w8jc-g24h-crhw | CVE-2026-110857 | high | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H | yes |
| GHSA-9pg5-8c7x-5hfx | CVE-2026-119284 | medium | yes | |
| GHSA-jpxq-7h8p-2q76 | CVE-2026-119283 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-5639-2j2p-m4mx | CVE-2026-102991 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| PYSEC-2026-4243 | CVE-2026-102991 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-5h93-6whr-6q8j | CVE-2026-116685 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N | yes |
| GHSA-84m7-p3x7-pcfv | CVE-2026-59951 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-rwrf-2pqf-9j8j | CVE-2026-116686 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H | yes |
| GHSA-w4fh-qvv9-3v23 | CVE-2026-116684 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-6v7p-g79w-8964 | CVE-2026-57585 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-j586-36cw-2gc2 | CVE-2026-114613 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| PYSEC-2026-3625 | CVE-2026-57585 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-xcq7-p3pf-p88h | CVE-2026-114603 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L | yes |
| GHSA-22hg-r758-rrw9 | CVE-2026-112390 | high | yes | |
| GHSA-24rc-8hj2-v98c | CVE-2026-96638 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H | yes |
| GHSA-254f-3936-288h | CVE-2026-112391 | medium | yes | |
| GHSA-27h8-gf7j-v5hc | CVE-2026-112392 | high | yes | |
| GHSA-332p-7hrc-92wf | CVE-2026-112393 | critical | yes | |
| GHSA-3j72-p6qg-6xp7 | CVE-2026-96642 | high | yes | |
| GHSA-4558-3h8r-v8xp | CVE-2026-112394 | medium | yes |
Showing 50 of 180 vulnerabilities.
Background: What a vulnerability scan can and cannot prove →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
generate_poc_exploit ~238
Generate and verify a pwntools proof-of-concept exploit script. Converts the output of ``vulnerability_hunter`` (symbolic execution concrete input + crash metadata) into a runnable Python POC script using pwntools. Automatically verifies the POC by executing it against the binary and checking for fatal crash signals.
| Name | Type | Req | Description |
|---|---|---|---|
| concrete_input | string | – | Raw exploit input bytes as a string — typically the ``concrete_input`` field from ``vulnerability_hunter`` output. If empty, a cyclic De Bruijn sequence is used for offset discovery. |
| crash_offset | integer | – | Byte offset from the start of the input buffer to the saved return address (RIP/EIP). Set to 0 if unknown — the generated script will use ``cyclic()`` to probe for it. Default: 0. |
| file_path | string | yes | Path to the target binary inside the workspace. |
| vulnerability_class | string | – | Category of vulnerability to exploit. Supported values: ``"buffer_overflow"`` (default), ``"format_string"``, ``"command_injection"``. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
generate_sigma_rule ~146
Generate a Sigma rule (YAML) for SIEM integration based on extracted IOCs or API calls.
| Name | Type | Req | Description |
|---|---|---|---|
| api_calls | – | – | List of API functions to detect (e.g., VirtualAlloc, CreateRemoteThread) |
| category | string | – | Logsource category (e.g., process_creation, network_connection) |
| description | string | – | Description of the rule |
| iocs | – | – | List of IP addresses, URLs, or file hashes to detect |
| level | string | – | Severity level (low, medium, high, critical) |
| product | string | – | Logsource product (e.g., windows, linux) |
| title | string | yes | Title of the Sigma rule |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
generate_signature ~227
Generate a YARA signature from opcode bytes at a specific address. This tool extracts opcode bytes from a function or code section and formats them as a YARA rule, enabling automated malware detection. It attempts to mask variable values (addresses, offsets) to create more flexible signatures. **Use Cases:** - Generate detection signatures for malware samples - Create YARA rules for threat hunting - Automate IOC (Indicator of Compromise) generation - Build malware family signatures **Workflow:** 1. Extract opcode bytes from specified address 2. Apply basic masking for variable values (optional) 3. Format as YARA rule template 4. Return ready-to-use YARA rule
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Start address for signature extraction (e.g., 'main', '0x401000') |
| file_path | string | yes | Path to the binary file (must be in workspace) |
| length | integer | – | Number of bytes to extract (default 32, recommended 16-64) |
| timeout | integer | – | Execution timeout in seconds (default 300) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
generate_vex_report ~183
Generate a CSAF 2.0 VEX JSON report from vulnerability findings. VEX (Vulnerability Exploitability eXchange) is a format for sharing the exploitability status of a software product in a machine-readable way.
| Name | Type | Req | Description |
|---|---|---|---|
| document_title | string | – | Title of the generated document. |
| product_name | string | yes | Name of the analyzed binary or product. |
| product_version | string | yes | Version, hash, or build identifier of the product. |
| vulnerabilities | string | yes | JSON string containing a list of vulnerability objects. Each object should have: - id: str (e.g., "CVE-2023-1234") - description: str - confidence: str ("confirmed", "likely", "false_positive", etc.)… |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
generate_yara_rule ~144
Generate a YARA rule from function bytes. This tool extracts bytes from a function and generates a ready-to-use YARA rule for malware detection and threat hunting.
| Name | Type | Req | Description |
|---|---|---|---|
| byte_length | integer | – | Number of bytes to extract (default 64, max 1024) |
| file_path | string | yes | Path to the binary file (must be in workspace) |
| function_address | string | yes | Function address to extract bytes from (e.g., 'main', '0x401000') |
| rule_name | string | – | Name for the YARA rule (default 'auto_generated_rule') |
| timeout | integer | – | Execution timeout in seconds (default 300) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
get_job_result ~39
Retrieve the status and result of a background job from the task queue.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | The ID of the queued job to check. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
get_memory_session_detail ~54
Get complete details and context for a specific session. Use this when resuming an analysis or reviewing past work. Returns all memories and patterns associated with the session.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | yes | Session ID to retrieve |
Structured output declared, but exposes no named fields.
No examples provided.
get_relevant_context ~72
Get relevant context from past analyses for current work. Use this proactively when analyzing something new to check if there's relevant knowledge from previous sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| current_session_id | – | – | Current session to exclude |
| description | string | yes | Description of what you're currently analyzing |
| limit | integer | – | Maximum relevant items |
Structured output declared, but exposes no named fields.
No examples provided.
get_report_session_status ~36
Get current session information and collected data.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | – | Session ID to query (uses current if not specified) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_server_health ~91
Get the current health status and resource usage of the MCP server. Use this to monitor the server's uptime, memory consumption, and tool execution statistics. Returns: ToolResult containing: - uptime_seconds: Server uptime - memory_usage_mb: Current memory usage in MB - status: 'healthy' or 'degraded' - tool_stats: Summary of tool execution success/failure
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
get_system_time ~61
Get accurate system timestamp from the server. Returns OS-level time data to prevent AI date hallucination. Includes multiple formats (ISO, Unix, human-readable) and timezone info. Returns: JSON with report_id, date formats, time formats, timezone info
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_timezone_info ~33
Get current timezone configuration and available options. Returns: JSON with current timezone, offset, and all available timezones
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_tool_metrics ~31
Get detailed execution metrics for specific or all tools.
| Name | Type | Req | Description |
|---|---|---|---|
| tool_name | – | – | Optional tool name to filter results |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
hunt_cve_vulnerabilities ~169
One-click automated CVE hunting pipeline for C/C++ libraries, parsers, and codecs. Performs end-to-end vulnerability discovery: 1. Harness & Dictionary auto-synthesis 2. Hybrid Fuzzing + angr concolic branch solving 3. ASan crash triage, CWE mapping, and CVSS v3.1 scoring 4. Testcase minimization & standalone PoC generation 5. Vendor-ready Security Advisory Markdown report draft
| Name | Type | Req | Description |
|---|---|---|---|
| options | – | – | Optional configuration dictionary (e.g. fuzz_duration, target_function). |
| sample_file_path | – | – | Optional path to a valid sample file. |
| target_path | string | yes | Path to target header (.h), source (.c/.cpp), or compiled binary. |
| timeout | – | – | Maximum execution timeout in seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
list_memory_sessions ~67
List all analysis sessions with timestamps and status. Use this to see what analyses have been done before, or to find a session to resume.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of sessions to return |
| status | – | – | Filter by status ('in_progress', 'completed', 'paused') |
Structured output declared, but exposes no named fields.
No examples provided.
list_report_sessions ~30
List all analysis sessions with their status and duration. Returns: List of all sessions with summary information
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_workspace ~28
List all files in the workspace directory. Returns: ToolResult with list of files in workspace
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
match_libraries ~279
Match and filter known library functions to focus on user code. This tool uses radare2's zignatures (FLIRT-compatible signature matching) to: - **Reduce Analysis Noise**: Skip analysis of known library functions (strcpy, malloc, etc.) - **Focus on User Code**: Identify which functions are original vs library code - **Save Time & Tokens**: Reduce analysis scope by 80% by filtering out standard libraries - **Improve Accuracy**: Focus AI analysis on the actual malicious/interesting code Common use cases: - Analyzing large binaries (>25MB) where most code is OpenSSL, zlib, MFC, etc. - Game client reverse engineering (filter out Unreal Engine / Unity standard library) - Malware analysis (focus on custom malware code, skip Windows API wrappers) The tool automatically uses built-in signature databases for common libraries and can optionally use custom signature databases for specialized analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the binary file to analyze |
| max_output_size | integer | – | Maximum output size in bytes (default: 10MB) |
| signature_db | – | – | Optional path to custom signature database file (.sig format). If None, uses radare2's built-in signature databases. |
| timeout | integer | – | Timeout in seconds (default: 600s) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
memory_analyze ~182
Run a Volatility3 plugin against a memory dump file. Supports Windows, Linux, and macOS memory dumps. Heavy plugin operations (malfind, psscan, netscan) are queued via ARQ for non-blocking execution.
| Name | Type | Req | Description |
|---|---|---|---|
| _bypass_queue | boolean | – | Internal — set True to skip ARQ queueing. |
| dump_path | string | yes | Path to the memory dump file (.raw, .vmem, .mem, .dmp). |
| extra_args | – | – | Additional plugin arguments as a space-separated string (e.g., "--pid 1234"). |
| plugin | string | – | Volatility3 plugin name. Run ``memory_analyze`` with plugin='help' to see all supported plugins. |
| symbol_path | – | – | Optional path to an ISF symbol table file. Required for some plugins on unknown OS versions. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
memory_detect_injections ~86
Detect process injection and suspicious memory regions using Volatility3 malfind. Uses the ``malfind`` plugin to identify memory regions with executable permissions that contain suspicious patterns (MZ headers, shellcode signatures).
| Name | Type | Req | Description |
|---|---|---|---|
| _bypass_queue | boolean | – | Internal — set True to skip ARQ queueing. |
| dump_path | string | yes | Path to the memory dump file. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
memory_dump_module ~104
Dump a loaded module or DLL from a memory dump via Volatility3.
| Name | Type | Req | Description |
|---|---|---|---|
| dump_path | string | yes | Path to the memory dump file. |
| module_name | – | – | Name of the module/DLL to dump. If None, dumps all modules for the specified process. |
| output_dir | – | – | Directory to save the dumped module. Defaults to the workspace directory. |
| process_name | string | yes | Name of the target process (e.g., 'explorer.exe'). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
memory_extract_strings ~69
Extract ASCII and Unicode strings from a memory dump.
| Name | Type | Req | Description |
|---|---|---|---|
| dump_path | string | yes | Path to the memory dump file. |
| limit | integer | – | Maximum number of strings to return (default: 500). |
| min_length | integer | – | Minimum string length to include (default: 6). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
memory_list_processes ~65
List all running processes from a memory dump.
| Name | Type | Req | Description |
|---|---|---|---|
| dump_path | string | yes | Path to the memory dump file. |
| include_hidden | boolean | – | If True, also run psscan to detect hidden/unlinked processes. Hidden processes may indicate rootkits or process injection. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
memory_list_symbols ~95
List available Volatility3 symbol tables for a memory dump. Volatility3 requires OS-specific symbol tables (ISF files) to run most plugins. Use this tool to inspect which symbol tables are currently available, then load the appropriate one using ``memory_load_symbols`` before running analysis plugins.
| Name | Type | Req | Description |
|---|---|---|---|
| dump_path | string | yes | Path to the memory dump file (e.g., .raw, .vmem, .mem). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
packer_fingerprint ~124
Deep fingerprinting of binary packers, cryptors, protectors, and compilers. Computes whole-file & block-level Shannon entropy, checks for known packer signatures (UPX, Themida, VMProtect, ASPack, PyInstaller, ConfuserEx, etc.), identifies section anomalies (e.g., W+X violations, 0-raw size sections, entrypoint in last section), and inspects appended overlays.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the binary file to analyze. |
| timeout | integer | – | Execution timeout in seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
parse_binary_with_lief ~89
Parse binary metadata using LIEF and return structured results. Memory-safe implementation with progressive limits: - Under 100MB: Full parsing with all details - 100-500MB: Warning + reduced extraction limits - Over 500MB: Minimal parsing (headers only) - Over config limit: Rejected
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | – |
| format | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
patch_diff_1day ~99
Analyze patch differences for 1-day vulnerability analysis. This tool focuses on identifying security fixes between two versions of a binary. It highlights changed functions, basic blocks, and potential vulnerability indicators that were patched (e.g. added bounds checks).
| Name | Type | Req | Description |
|---|---|---|---|
| file_path_a | string | yes | Path to pre-patch binary. |
| file_path_b | string | yes | Path to post-patch binary. |
| timeout | integer | – | Timeout in seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
pcap_analyze ~116
Summarize sessions, protocols, and packet statistics from a PCAP file. Provides a high-level overview including total packets, unique hosts, protocol distribution, top talkers, and session summary — ideal as a first-pass triage of a PCAP capture.
| Name | Type | Req | Description |
|---|---|---|---|
| max_packets | integer | – | Maximum number of packets to process (default: 10,000). For large captures, use a smaller value or filter first. |
| pcap_path | string | yes | Path to a PCAP or PCAPNG capture file. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
pcap_extract_c2 ~123
Detect potential C2 traffic patterns in a PCAP capture. Detects: - Beaconing behavior (periodic connections to same host) - Connections to known suspicious ports - Unusually long/persistent connections - DNS-over-HTTPS (DoH) patterns
| Name | Type | Req | Description |
|---|---|---|---|
| beacon_threshold_sec | integer | – | Maximum jitter window (seconds) to consider as beaconing. |
| max_packets | integer | – | Maximum packets to process (default: 100,000). |
| pcap_path | string | yes | Path to a PCAP or PCAPNG capture file. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
pcap_extract_dns ~108
Extract DNS queries and responses from a PCAP capture. Useful for identifying C2 domain lookups, DGA patterns, DNS tunneling, and suspicious resolution activity.
| Name | Type | Req | Description |
|---|---|---|---|
| include_responses | boolean | – | If True, also extract DNS response records (A, AAAA, MX, TXT). |
| max_packets | integer | – | Maximum packets to process (default: 50,000). |
| pcap_path | string | yes | Path to a PCAP or PCAPNG capture file. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
pcap_list_connections ~81
List all unique IP/port connections observed in a PCAP capture.
| Name | Type | Req | Description |
|---|---|---|---|
| max_packets | integer | – | Maximum packets to process (default: 50,000). |
| pcap_path | string | yes | Path to a PCAP or PCAPNG capture file. |
| protocol | – | – | Filter by protocol ('tcp', 'udp', or None for all). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
pcap_reconstruct_stream ~152
Reconstruct TCP stream payload from a PCAP capture. Reassembles the raw payload of a specific TCP conversation, useful for extracting transferred files, command output, or HTTP request/response bodies.
| Name | Type | Req | Description |
|---|---|---|---|
| dst_ip | string | yes | Destination IP address of the stream. |
| dst_port | integer | yes | Destination TCP port of the stream. |
| max_bytes | integer | – | Maximum payload bytes to reconstruct (default: 1 MB). |
| max_packets | integer | – | Maximum packets to process (default: 10,000). |
| pcap_path | string | yes | Path to a PCAP or PCAPNG capture file. |
| src_ip | string | yes | Source IP address of the stream. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_add_bookmark ~53
Add (or update) an annotated bookmark at a binary address.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| category | string | – | – |
| comment | string | yes | – |
| file_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_analyze_function ~96
Return full metadata for a binary function via radare2. Retrieves name, size, cyclomatic complexity, arguments, local variables, call targets, and cross-references using radare2's JSON APIs.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the binary (must be inside the workspace). |
| function_address | string | yes | Function name or hex address. |
| timeout | integer | – | Maximum execution time in seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_create_structure ~44
Save (or replace) a C struct definition in the annotation DB.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | – | yes | – |
| file_path | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_decompile ~177
Decompile a binary function to pseudo-C using the r2ghidra plugin. Uses the ``pdg`` command which invokes the embedded Ghidra decompiler engine inside radare2 — no separate Ghidra or JDK installation required. Includes smart line windowing and function summary header for token efficiency.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the binary (must be inside the workspace). |
| function_address | string | yes | Function to decompile — name (``main``) or hex address (``0x401000``). |
| line_offset | integer | – | Starting line offset for windowed output (default: 0). |
| max_lines | integer | – | Maximum number of lines to return (default: 200). |
| timeout | integer | – | Maximum execution time in seconds (default 300). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_get_call_graph ~115
Generate a caller/callee call graph for a function. Uses radare2's ``agCd`` (call-graph dot) and ``axtj`` (cross-reference JSON) commands to build a structured graph.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | integer | – | Maximum call depth to traverse (default 2). |
| file_path | string | yes | Path to the binary (must be inside the workspace). |
| function_address | string | yes | Root function name or hex address. |
| timeout | integer | – | Maximum execution time in seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_get_structure ~34
Retrieve a single saved struct definition by name.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_list_bookmarks ~49
List all saved bookmarks / address annotations for a binary.
| Name | Type | Req | Description |
|---|---|---|---|
| category | – | – | – |
| file_path | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_list_structures ~43
List all saved C struct definitions for a binary.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_list_types ~42
List all custom type definitions saved for a binary.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_read_memory ~44
Read raw bytes from a binary at a given virtual address.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| file_path | string | yes | – |
| size | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_recover_structures ~109
Recover C struct layouts from a function's memory access patterns. Analyses local variables (``afvf``), function arguments (``afvj``), and cross-references (``axtj``) to infer struct field offsets and types.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the binary (must be inside the workspace). |
| function_address | string | yes | Function whose local variables / struct usage to analyse. |
| timeout | integer | – | Maximum execution time in seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
r2_simulate_patch ~156
Simulate a byte-level patch at an address and re-decompile. Copies the binary to a temporary workspace cache file, opens that copy in write mode, applies ``patch_bytes`` at ``address``, then runs r2ghidra's ``pdg``. The original file remains read-only throughout the simulation.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Target address (e.g. ``0x401020``). |
| file_path | string | yes | Path to the binary (must be inside the workspace). |
| patch_bytes | string | yes | Hex string of bytes to write (e.g. ``"9090"`` for 2 NOPs). |
| timeout | integer | – | Maximum execution time in seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
Radare2_analyze ~176
Run binary analysis with optional depth level.
| Name | Type | Req | Description |
|---|---|---|---|
| arch | – | – | Optional architecture (e.g., 'mips', 'arm64', 'riscv', 'x86_64') |
| bits | – | – | Optional architecture bits (e.g., 32, 64) |
| file_path | string | yes | Path to the binary file |
| level | integer | – | Analysis depth as an INTEGER from 0 to 4 (default: 2). IMPORTANT: Must be an integer. Do NOT pass strings like "full", "deep", or "auto" — those will be rejected. 0 = aa (basic, fastest) 1 = aaa (au… |
Structured output declared, but exposes no named fields.
No examples provided.
Radare2_calculate ~80
Evaluate a math expression using radare2's number parser. Useful for: 64-bit math, resolving addresses for symbols, avoiding hallucinated results.
| Name | Type | Req | Description |
|---|---|---|---|
| expression | string | yes | Math expression to evaluate (e.g., "0x100 + sym.flag - 4") |
| file_path | string | yes | Path to the binary file |
Structured output declared, but exposes no named fields.
No examples provided.
Radare2_close_file ~37
Close the currently open radare2 session for a file.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the file to close |
Structured output declared, but exposes no named fields.
No examples provided.
Radare2_decompile_function ~158
Show C-like pseudocode of the function at the given address. Use this to inspect code in a function. Do not run multiple times on the same offset. Includes smart line windowing and function summary header.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Address of the function to decompile |
| cursor | – | – | Legacy pagination cursor (overridden by line_offset if provided) |
| file_path | string | yes | Path to the binary file |
| line_offset | integer | – | Starting line offset for windowed pseudocode (default: 0) |
| max_lines | integer | – | Maximum lines of pseudocode per window (default: 200) |
| page_size | integer | – | Legacy page size (overridden by max_lines if provided) |
Structured output declared, but exposes no named fields.
No examples provided.
Radare2_disassemble ~91
Disassemble a specific number of instructions from an address. Use this to inspect a portion of memory as code without depending on function analysis boundaries.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Address to start disassembly |
| file_path | string | yes | Path to the binary file |
| num_instructions | integer | – | Number of instructions to disassemble (default: 10, max: 1000) |
Structured output declared, but exposes no named fields.
No examples provided.
Radare2_disassemble_function ~174
Show assembly listing of the function at the specified address.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Address OR symbol name of the function to disassemble. Accepts hex addresses (e.g. '0x401000', '0x8d4') as well as function/symbol names (e.g. 'main', 'sym.secret_backdoor', 'sym.process_request'). S… |
| cursor | – | – | Pagination cursor |
| file_path | string | yes | Path to the binary file |
| format | string | – | Output format - 'compact' (compact instruction tuples [addr, mnemonic, ops, comment]) or 'raw' (raw visual text output). Default: 'compact'. |
| page_size | integer | – | Number of lines per page |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the Reversecore MCP server?
Reversecore MCP runs locally as a container image, launched with docker run --rm -i ghcr.io/sjkim1127/reversecore_mcp:3.0.5. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
oci · ghcr.io/sjkim1127/reversecore_mcp
claude mcp add sjkim1127-reversecore-mcp -- docker run --rm -i ghcr.io/sjkim1127/reversecore_mcp:3.0.5
What is the Reversecore MCP server?
Reversecore MCP is listed in the public MCP registry as io.github.sjkim1127/reversecore-mcp. Security-first MCP server for reverse engineering, malware analysis, forensics, and SAST. This page covers its container image (ghcr.io/sjkim1127/reversecore_mcp).
Is the Reversecore MCP server safe to use?
Reversecore MCP scores 55 out of 100 on VerifyMCP. The SBOM its publisher attached lists packages with 180 known advisories as of 5 November 2026. We do not grade that SBOM, as nothing verifies it. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Reversecore MCP server expose?
Reversecore MCP exposes 151 tools: generate_advanced_yara_rule, diff_binaries, analyze_variant_changes, match_libraries, patch_diff_1day, and 146 more. Their descriptions and schemas cost roughly 18,314 tokens of context every time the server is loaded.
Is the Reversecore MCP server still maintained?
Reversecore MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Reversecore MCP server under?
Reversecore MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.