Install @remnux/mcp-server from npm
Install exact version 0.1.72. No verified executable entrypoint is available, so use the package documentation to launch it.
npm install --save-exact @remnux/mcp-server@0.1.72Enables AI assistants to execute malware analysis tools on a REMnux system via Docker, SSH, or local connections. It provides automated file-type analysis, structured tool discovery, and security guardrails for streamlined malware investigation
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
Install exact version 0.1.72. No verified executable entrypoint is available, so use the package documentation to launch it.
npm install --save-exact @remnux/mcp-server@0.1.72| Canonical slug | remnux-mcp-server-92492e62 | Deployment | Hybrid |
|---|---|---|---|
| Canonical package | npm:@remnux/mcp-server | Repository | REMnux/remnux-mcp-server |
| First published | — | Latest release | — |
| Last security verification | — | Classification confidence | 82% |
| Publication | Published | Official distribution | Yes |
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| npm | @remnux/mcp-server | 0.1.72 | 68 | Repository |
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| npm@remnux/mcp-server | 0.1.72Current | Sep 5, 2026 | 19 toolsSucceeded · 153 resources · 0 prompts | Failed |
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
| Provenance | artifact_hash_verified | Signature | — |
|---|---|---|---|
| MCP SDK | — | Artifact SHA-256 | 04cbf492bb100a8e6beb6937849f0550c1cd0ef80f17eaedd951d03b2854edad |
| Scanner | mcp-proof-engine 0.1.0 | Scan completed | Sep 3, 2026 |
| Security rating | — | Methodology | — |
| Tool | Category | Annotations | Risk |
|---|---|---|---|
analyze_fileAuto-analyze a file using REMnux tools appropriate for the detected file type. Runs `file` to detect type, then executes matching tools (e.g., PE → peframe/capa, PDF → pdfid/pdf-parser, Office → olevba/oleid). Use `depth` to control analysis intensity: 'quick' (triage only), 'standard' (default), 'deep' (includes expensive tools). Note: 'standard' is sufficient for most files; use 'deep' only when standard doesn't reveal enough. Output includes a capability_evidence field (behavior_capable vs artifact_only) and per-capa evidence_types tags so you can tell code-backed capabilities from data-only artifacts — an artifact_only match means the data is present, not that the behavior executes.Input schema{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename relative to samples directory, or absolute path in local mode"
},
"timeout_per_tool": {
"type": "number",
"description": "Timeout per tool in seconds (default: 60)"
},
"depth": {
"type": "string",
"enum": [
"quick",
"standard",
"deep"
],
"default": "standard",
"description": "Analysis depth. 'quick' (~5-15s): fast triage. 'standard' (~30-90s, default): comprehensive analysis. 'deep' (~2-5min): exhaustive. Use 'deep' only when 'standard' isn't enough."
}
},
"required": [
"file"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
check_behavior_prerequisitesBefore claiming a Windows PE performs a behavior (clipboard hijacking, HTTP/WinHTTP C2, process injection, registry/LNK persistence, browser-credential theft, screen capture, keylogging, network-share enumeration), check whether the prerequisite APIs are even accessible. Reads the static import table (readpe) and detects packing (diec), then reports a `static_capability` per behavior: capable_statically / incapable_statically / possibly_via_dynamic_resolution (GetProcAddress + loader present) / analysis_incomplete (packed, or a managed/.NET assembly whose native imports don't reflect its capability — don't read it as a clean negative) / not_applicable (not a PE). This is a STATIC gate — it tells you whether the binary CAN call the required APIs, not whether it does. Omit `behavior` to scan all. Confirm any behavior with dynamic analysis.Input schema{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename relative to the samples directory, or an absolute path in local mode."
},
"behavior": {
"type": "string",
"description": "Behavior to check (omit to scan ALL known behaviors). One of: clipboard_hijacking, http_c2_wininet, winhttp_c2, socket_c2, process_injection_remote, process_injection_self, registry_persistence_run, lnk_persistence, browser_credential_theft, screen_capture, keylog_polling, keylog_hook, network_share_enum."
}
},
"required": [
"file"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
check_toolsCheck which REMnux analysis tools are installed and available. Returns a summary of installed vs missing tools across all file type categories.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
} | — | — | |
compare_filesCompare two related samples (e.g. a loader and its unpacked payload) and return a structured diff: size and entropy deltas, architecture, compiler, packer, imports added/removed, capabilities (capa) added/removed, and section changes. Reuses readpe/diec/capa/radare2. Use depth='quick' to skip the (slower) capa capability diff. Surfaces what each stage adds without re-running tools by hand.Input schema{
"type": "object",
"properties": {
"file_a": {
"type": "string",
"description": "First file (relative to the samples directory, or absolute in local mode)."
},
"file_b": {
"type": "string",
"description": "Second file to compare against file_a."
},
"depth": {
"type": "string",
"enum": [
"quick",
"standard"
],
"description": "'standard' (default) includes a capa capability diff (slower — runs capa on both files); 'quick' skips capa (imports/sections/compiler/entropy only)."
}
},
"required": [
"file_a",
"file_b"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
download_fileDownload a file from the output directory to a directory on the host (output_path); returns the host path. Use this to retrieve analysis results, including the text files the server saves when tool output exceeds a response budget (run_tool: stdout_saved_file, e.g. run_tool-<tool>-<hash>.stdout.txt; analyze_file: <tool>-<sample>.txt). To read such a file in-session instead, use run_tool with grep/sed -n on %OUTPUT%/<file>. Files are wrapped in a password-protected archive by default to prevent AV/EDR triggers. Pass archive: false for harmless files like text reports.Input schema{
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "File path relative to the output directory"
},
"output_path": {
"type": "string",
"description": "Directory on host to save the downloaded file"
},
"archive": {
"type": "boolean",
"default": true,
"description": "Wrap the file in a password-protected archive before transfer (default: true). Protects against AV/EDR triggers on the host. Pass false for harmless files like text reports."
}
},
"required": [
"file_path",
"output_path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
download_from_urlDownload a file from a URL into the samples directory for analysis. Returns file metadata (hashes, type, size). Supports custom HTTP headers and an optional thug mode for sites requiring JavaScript execution.Input schema{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "URL to download (http or https only)"
},
"filename": {
"type": "string",
"description": "Override filename in samples dir. If omitted, derived from URL path."
},
"headers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Custom HTTP headers as 'Name: value' strings. Example: ['User-Agent: Mozilla/5.0', 'X-Auth-Token: abc123']"
},
"method": {
"type": "string",
"enum": [
"curl",
"thug"
],
"default": "curl",
"description": "Download method. 'curl' (default) for direct HTTP download. 'thug' for sites requiring JavaScript execution (uses thug honeyclient)."
},
"overwrite": {
"type": "boolean",
"default": false,
"description": "Whether to overwrite if file exists. Default: false"
},
"timeout": {
"type": "number",
"description": "Download timeout in seconds (default: server timeout)"
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
extract_archiveExtract files from a compressed archive (.zip, .7z, .rar), including WinZip AES-256 .zip and header-encrypted .7z (-mhe=on) — these route through 7z automatically. Tries a supplied password first, then common malware passwords (infected, malware, virus) if the archive is password-protected. Returns list of extracted files.Input schema{
"type": "object",
"properties": {
"archive_file": {
"type": "string",
"description": "Path to archive file relative to samples directory (e.g., 'sample.zip')"
},
"password": {
"type": "string",
"description": "Optional password to try first. If not provided, tries common passwords from built-in list."
},
"output_subdir": {
"type": "string",
"description": "Optional subdirectory name for extracted files. Defaults to archive filename without extension."
}
},
"required": [
"archive_file"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
extract_iocsExtract IOCs (IPs, domains, URLs, hashes, registry keys, etc.) from text. Pass output from run_tool or analyze_file to identify indicators. If that output was truncated (truncated: true), first read the saved file via run_tool (e.g. grep -iE 'https?://|[0-9]+\.[0-9]+\.' on %OUTPUT%/<stdout_saved_file>) and pass that output, or the IOCs past the cut are missed. Works well with Volatility 3 plugin output (netscan, cmdline, filescan). Returns deduplicated IOCs with confidence scores. Note: an IOC extracted from a binary's strings is an artifact (present in the file) — not evidence the binary uses it at runtime. Cross-reference it against reachable code or dynamic analysis before treating it as an operational indicator.Input schema{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text to extract IOCs from (e.g., output from run_tool or analyze_file)"
},
"include_noise": {
"type": "boolean",
"default": false,
"description": "Include low-confidence known-good IOCs"
},
"include_private_ips": {
"type": "boolean",
"default": false,
"description": "Include private/internal IP addresses (10.x, 172.16-31.x, 192.168.x)"
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
get_file_infoGet file type, hashes, and basic metadataInput schema{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "File path relative to samples directory, or absolute path in local mode"
}
},
"required": [
"file"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
get_osint_guidanceOSINT triage for malware indicators. Given the hashes, C2 domains/IPs, and URLs from a sample (for example from analyze_file or extract_iocs), returns malware-specific enrichment tradecraft — hash-first and disclosure-aware, do not tip off the adversary, leads not verdicts — plus a curated catalog of free and freemium lookup services. Use `topic` to pick the guidance slice and `ioc_type` to narrow the catalog to a hash, url, domain, ip, family, or host_artifact. Guidance only: it runs no lookups and stores no API keys; the AI performs the lookups with its own tools.Input schema{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"all",
"tradecraft",
"workflow",
"access",
"resources"
],
"default": "all",
"description": "Which slice of guidance prose to return. 'all' (default) returns tradecraft + workflow + access guidance plus a CONDENSED resource catalog. 'tradecraft' returns the OPSEC principles, 'workflow' the per-IOC decision tree, 'access' the free-vs-paid handling, 'resources' the FULL catalog with per-entry detail. Lean flow for a real sample: call once with 'all' for prose plus a condensed index, then 'resources' with an ioc_type per indicator type for detail without re-emitting the prose."
},
"ioc_type": {
"type": "string",
"enum": [
"hash",
"url",
"domain",
"ip",
"family",
"host_artifact"
],
"description": "Optional. When set, narrows the resource catalog to full-detail entries relevant to that IOC type. Orthogonal to `topic` (which selects the prose): `topic` picks guidance, `ioc_type` picks catalog rows."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
get_report_guidanceGet malware analysis report writing guidelines bundled locally for offline use — report sections, required fields, the MBC capability model, ICD-203 confidence, Pyramid-of-Pain IOC tiering, anti-patterns, and review criteria. Use `topic` to narrow the full digest, or topic='triage_checklist' for the pre-claim triage discipline checklist (artifact-vs-behavior gates) to consult at the START of an analysis. Every report-writing response (any topic except 'triage_checklist') also carries optional_section_convention (how to resolve (Optional) section markers when drafting). For interactive review or numeric scoring, the zeltser-website MCP server's malware_review_report / rating_score_writing offer more when connected.Input schema{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"all",
"sections",
"confidence",
"capabilities",
"pyramid_of_pain",
"anti_patterns",
"review",
"writing",
"frameworks",
"profiles",
"triage_checklist"
],
"default": "all",
"description": "Which slice of guidance to return. 'all' (default) returns the full writing-guidelines digest; narrow to 'sections', 'confidence', 'capabilities', 'pyramid_of_pain', 'anti_patterns', 'review', 'writing', 'frameworks', or 'profiles' to reduce size. 'triage_checklist' returns the pre-claim triage discipline checklist (artifact-vs-behavior gates to pass before drawing a behavioral conclusion) — useful at the START of an analysis, not just when writing up."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
get_report_templateGet a malware analysis report template (Markdown) bundled locally for offline use. Created by Lenny Zeltser, licensed CC BY 4.0. Use it to structure a report after analyzing a sample. The response also carries optional_section_convention: headings marked (Optional) are conditional markers to resolve (include only if warranted, and drop the marker), not literal heading text. For interactive review/scoring or the latest version, the zeltser-website MCP server's malware_get_template offers more when connected.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
} | — | — | |
get_server_infoReport the remnux-mcp-server version, how it reaches REMnux (connector mode and transport), and the REMnux distro version on the target. Use for diagnostics and when documenting which server/REMnux versions produced an analysis.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
} | — | — | |
get_tool_helpGet usage help for a REMnux tool. Returns the tool's --help output so you can understand available flags, options, and usage patterns.Input schema{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "Tool name (e.g., 'capa', 'pdfid.py', 'olevba'). Returns the tool's --help output."
}
},
"required": [
"tool"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
list_filesList files in samples or output directoryInput schema{
"type": "object",
"properties": {
"directory": {
"type": "string",
"enum": [
"samples",
"output"
],
"default": "samples",
"description": "Which directory to list"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
run_toolExecute a command in REMnux. Supports piped commands (e.g., 'oledump.py /home/remnux/files/samples/sample.doc | grep VBA'; use input_file for a single-tool command, or an absolute path inline when piping). stdout is returned whole up to 102,400 characters (see the command parameter for the truncation contract), so do not pre-cap output with '| head'; filter by content with grep instead. String extraction: For PE files use 'pestr'; for non-PE use 'strings' (ASCII) and 'strings -el' (Unicode). Note: capa matches under namespaces like collection/* or data-manipulation/* can be artifact-level (matched on strings/data) rather than behavioral; a behavioral capability requires the corresponding APIs to be imported or dynamically resolved. analyze_file tags capa findings with evidence_types to make this explicit.Input schema{
"type": "object",
"properties": {
"command": {
"type": "string",
"description": "Command to execute (can include pipes, e.g., 'strings /home/remnux/files/samples/sample.exe | grep -i password'; commands run in the user's home, so name samples by absolute path or via input_file). The server returns stdout whole up to 102,400 characters, so a trailing '| head -N' or '| tail -N' only discards lines you would otherwise receive; narrow by content with grep when you want a subset. If a response sets truncated: true, follow its truncation_notice: the captured stdout is saved in the output directory as stdout_saved_file when an output directory is configured, and the notice gives a sed -n recipe on that file (or a redirect recipe) using %OUTPUT%/<file>, which the server replaces with that directory."
},
"input_file": {
"type": "string",
"description": "Input file path (relative to samples dir, or absolute path in local mode), appended as the final argument of the whole command, after any pipe, so in a pipeline it reaches the last stage (e.g. head), not the tool. When piping, put the sample's absolute path inline in command and omit input_file (list_files reports the samples directory path; without input_file the command does not run in the samples directory)."
},
"timeout": {
"type": "number",
"description": "Timeout in seconds (default: 300)"
}
},
"required": [
"command"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
suggest_toolsDetect file type and return recommended REMnux analysis tools without executing them. Use this to plan an analysis strategy, then run individual tools with run_tool. Returns tool names, descriptions, depth tiers, and expert analysis hints. For binaries, confirming a behavior (versus merely finding its artifacts) generally requires more than static analysis — plan for emulation (speakeasy) or sandbox detonation when a behavioral claim is needed.Input schema{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename relative to samples directory, or absolute path in local mode"
},
"depth": {
"type": "string",
"enum": [
"quick",
"standard",
"deep"
],
"default": "standard",
"description": "Filter recommendations by depth tier: 'quick' (triage only), 'standard' (default), 'deep' (all tools)"
}
},
"required": [
"file"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
upload_from_hostUpload a file from the host filesystem to the samples directory for analysis. Accepts an absolute host path — the MCP server reads the file locally and transfers it. Maximum file size: 200MB. Files can also be referenced by absolute path in analysis tools, bypassing the need to upload. For files outside the samples directory, pass the full path to get_file_info, analyze_file, or run_tool.Input schema{
"type": "object",
"properties": {
"host_path": {
"type": "string",
"description": "Absolute path to the file on the machine where the MCP server runs (not the remote client in HTTP deployments). When the server is started with --sandbox, the resolved path must reside inside the configured --ingest-root (defaults to the samples directory)."
},
"filename": {
"type": "string",
"description": "Override filename in samples dir (defaults to basename of host_path)"
},
"overwrite": {
"type": "boolean",
"default": false,
"description": "Whether to overwrite if file exists. Default: false"
}
},
"required": [
"host_path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — | |
verify_string_usageCheck whether a string embedded in a binary is actually referenced by code, or is a vestigial artifact (e.g. a wallet address or C2 host sitting in .rdata). Uses radare2 to locate the string and find code cross-references to it. Returns a per-match `xref_status`: `referenced_from_code` (an instruction references it) / `no_code_xrefs_detected` (a COMPLETE-analysis null — NOT proof it is unused; the reference may be computed, indirect, or in code the analyzer missed) / `data_only` (non-code file) / `unknown` (analysis incomplete: packed, timed out, or version drift — never a negative). A static check: never concludes a string is 'unused', and confirm runtime use dynamically.Input schema{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename relative to the samples directory, or an absolute path in local mode."
},
"query": {
"type": "string",
"description": "The string (or substring) to locate in the binary and cross-reference against code."
},
"depth": {
"type": "string",
"enum": [
"standard",
"deep"
],
"description": "Analysis depth: 'standard' (radare2 aa; aar — default) or 'deep' (aaa — slower, more thorough)."
},
"max_matches": {
"type": "number",
"description": "Cap on the number of distinct matching strings to classify (default 50)."
}
},
"required": [
"file",
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
remnux://tools/1768Analyze Cobalt Strike beacons and extract configuration details.
remnux://tools/apkidIdentify compilers, packers, and obfuscators used to protect Android APK and DEX files.
remnux://tools/apktoolReverse-engineer Android APK files.
remnux://tools/autoit-ripperExtract and decompile AutoIt scripts from compiled executables.
remnux://tools/base64dumpLocate and decode Base64 and other encoded strings.
remnux://tools/box-jsEmulate JavaScript in a sandbox to observe runtime behavior — recovers URLs and config assembled at runtime that static deobfuscation (webcrack) leaves unresolved. An older, emulation-based tool: it stalls on anti-emulation (e.g. a wscript self-relaunch), so it is a deliberate deep-tier step, not part of the fast standard chain.
remnux://tools/brxorBruteforce XOR-encoded strings to find English words.
remnux://tools/capaIdentify capabilities in executable files using CAPA rules.
remnux://tools/capa-vvIdentify capabilities with verbose rule match details (addresses and evidence).
remnux://tools/capinfosCapture overview: packet count, duration, start/end timestamps, data rates, and link-layer encapsulation for a PCAP file.
remnux://tools/cfrDecompile Java class files and JARs to readable Java source code.
remnux://tools/cs-decrypt-metadataDecrypt and analyze Cobalt Strike beacon metadata.
remnux://tools/csceExtract Cobalt Strike beacon configuration from raw shellcode or memory dumps.
remnux://tools/cut-bytesCut out portions of data streams by position or pattern.
remnux://tools/decaiAI-assisted decompiler: turn a native PE/ELF function into readable pseudo-C with the decai radare2 plugin. REQUIRES a configured LLM backend — an API key or a local Ollama, set via 'decai -e' (e.g. 'decai -e api=openai'); without one it returns an error, not code. Function-scoped: first list functions with run_tool command="r2 -A -q -c afl <file>", then decompile a target by seeking to it: run_tool command="r2 -A -q -c 's main; decai -d' <file>" (or 's sym.<name>;', 's 0x<addr>;'). Check availability and settings with get_tool_help tool="decai". For deterministic, offline decompilation that needs no API key, use r2ghidra (pdg) instead.
remnux://tools/decode-vbeDecode VBE-encoded VBScript files to readable source.
remnux://tools/diecDetermine types of files and examine file properties.
remnux://tools/disitoolExamine and manipulate embedded Authenticode digital signatures in PE files.
remnux://tools/dotnetfile_dumpAnalyze static properties of .NET files.
remnux://tools/droidlysisPerform static analysis of Android applications.
remnux://tools/emldumpAnalyze and extract content from email (EML) files.
remnux://tools/etl2pcapExtract network packets from an ETL trace into a PCAP file. Only traces containing Microsoft-Windows-NDIS-PacketCapture events (e.g. from `netsh trace`) yield packets: a 24-byte header-only pcap means the trace holds no packet events, not that the tool failed.
remnux://tools/etl2xmlConvert a Windows Event Trace Log (ETL) file to XML for inspection. REMnux's build decodes AMSI events, recovering scanned script content from antimalware traces.
remnux://tools/exiftoolRead and analyze EXIF metadata from various file types.
remnux://tools/file-magicIdentify file types of data streams using libmagic signatures.
remnux://tools/flossExtract and deobfuscate strings from PE executables.
remnux://tools/format-bytesDecompose and display structured binary data in readable format.
remnux://tools/gootloader-decodeStatically deobfuscate GootLoader JScript to recover the payload and extract C2 domains.
remnux://tools/ilspycmdDecompile .NET assemblies to C# source code.
remnux://tools/jadxDecompile Android APK/DEX files to Java source code.
remnux://tools/js-beautifyBeautify and deobfuscate JavaScript, CSS, and HTML files.
remnux://tools/js-deobfuscatorDeobfuscate JavaScript by removing string arrays, proxy functions, and other common obfuscation.
remnux://tools/js_unshroudObserve JavaScript behavior on a LIVE web page: loads the URL in an instrumented Playwright Chromium browser and records runtime events (executed scripts, deobfuscated code, network activity) to a JSONL file. Unlike the file-based JavaScript tools, it analyzes a URL, not a local file — use it when the sample is a malicious page or when deobfuscation reveals a next-stage URL. In the invocation template, replace <file> with the URL. The run subcommand needs a display: current REMnux versions start a virtual one automatically via the tool's wrapper; on older installs prefix the command with 'xvfb-run -a'. It can exit 0 even when the browser fails to launch or dies mid-capture, so confirm the events file has content before drawing conclusions. Summarize captured events with 'js_unshroud analyze --input <events.jsonl> --format stats'; the query and correlate subcommands drill down further (all three read the local JSONL and need no display). OPSEC: the run subcommand visits live adversary infrastructure from your analysis network; see get_osint_guidance topic='tradecraft' before touching attacker-controlled URLs.
remnux://tools/jstilleryDeobfuscate JavaScript using AST-based partial evaluation.
remnux://tools/manalyzeStatically analyze PE files for imports, resources, and anomalies.
remnux://tools/monodis-mresourcesExtract all embedded managed resources from a .NET assembly to the current directory.
remnux://tools/monodis-presourcesList embedded manifest resources in a .NET assembly (names and offsets).
remnux://tools/msgconvertConvert Outlook MSG files to standard EML format.
remnux://tools/msoffcrypto-crackAttempt to recover the password of encrypted Microsoft Office documents.
remnux://tools/numbers-to-stringConvert numeric representations to strings for deobfuscating encoded payloads.
remnux://tools/oledumpAnalyze OLE2 Structured Storage files.
remnux://tools/oleidAnalyze OLE2 files for risk indicators (macros, encryption, etc.).
remnux://tools/olevbaExtract and analyze VBA macros from Microsoft Office documents.
remnux://tools/onedumpAnalyze OneNote documents and extract embedded files.
remnux://tools/pcodedmpDisassemble VBA p-code from Office documents.
remnux://tools/pdf-parserExamine elements and structure of a PDF file.
remnux://tools/pdfcopDetect malicious PDF structures using policy-based heuristics.
remnux://tools/pdfdecompressDecompress PDF streams to reveal obfuscated content.
remnux://tools/pdfextractExtract JavaScript, attachments, fonts, images, and streams from PDF.
remnux://tools/pdfidIdentify notable elements of a PDF file.
remnux://tools/pdfid-detailedIdentify notable elements of a PDF file (detailed names output).
remnux://tools/pdfresurrectExtract previous versions of content from PDF files.
remnux://tools/pdftkManipulate PDF files: merge, split, decrypt, repair, and extract metadata.
remnux://tools/pdftoolAnalyze incremental updates in PDF files to detect hidden payload swaps.
remnux://tools/pecheckAnalyze static properties of PE files.
remnux://tools/pedumpStatically analyze PE files and extract their components.
remnux://tools/peepdf-3Examine elements of a PDF file for notable content.
remnux://tools/peframeStatically analyze PE and Microsoft Office files.
remnux://tools/pescanScan PE files for anomalies and notable indicators.
remnux://tools/pestrExtract ASCII and Unicode strings from PE files with section and offset info.
remnux://tools/portexStatically analyze PE files for anomalies, structure, and metadata.
remnux://tools/pycdcDecompile Python bytecode (.pyc) to readable source code.
remnux://tools/pyinstxtractor-ngExtract contents of PyInstaller executables without requiring a matching Python version.
remnux://tools/qltool-sc-x64Emulate 64-bit Windows shellcode using Qiling framework (requires rootfs).
remnux://tools/qltool-sc-x86Emulate 32-bit Windows shellcode using Qiling framework (requires rootfs).
remnux://tools/qpdfDecrypt password-protected or permission-locked PDF files.
remnux://tools/r2aiAI assistant for radare2 (r2ai plugin): decompile or ask natural-language questions about the current function. REQUIRES a configured LLM backend — an API key or a local Ollama; without one it returns an error. Seek to a function first, then: run_tool command="r2 -A -q -c 's main; r2ai -d' <file>" to decompile, or run_tool command="r2 -A -q -c 's main; r2ai -d what does this function do' <file>" to ask about it. Check availability and settings with get_tool_help tool="r2ai". For deterministic, offline decompilation that needs no API key, use r2ghidra (pdg) instead.
remnux://tools/r2ghidraDecompile native PE/ELF functions to pseudo-C using the r2ghidra (Ghidra) decompiler in radare2. Function-scoped — one function per 'pdg'. List functions first: run_tool command="r2 -A -q -c afl <file>", then decompile a target: run_tool command="r2 -A -q -c 'pdg @ main' <file>" ('pdg @ entry0', 'pdg @ sym.<name>', or 'pdg @ 0x<addr>'). If the Ghidra plugin is unavailable, use radare2's native 'pdc' instead of 'pdg' (lower fidelity, no plugin). Decompiled output can be fed to extract_iocs.
remnux://tools/re-searchSearch files using regular expressions to extract patterns and data.
remnux://tools/readelf-headerDisplay ELF file header information.
remnux://tools/readelf-sectionsDisplay ELF section headers.
remnux://tools/redressAnalyze Go binaries to recover package names, type definitions, source structure, and compiler version.
remnux://report/guidelinesMalware analysis report writing guidelines digest (© Lenny Zeltser)
remnux://report/optional-section-conventionHow to handle report template headings marked (Optional): conditional markers to resolve, not literal text
remnux://report/templateMalware analysis report template (Markdown, CC BY 4.0, by Lenny Zeltser)
remnux://tools/rtfdumpAnalyze RTF files for embedded content.
remnux://tools/rtfobjExtract embedded objects from RTF files.
remnux://tools/setsPerform set operations (union, intersection, difference) on text file lines or bytes.
remnux://tools/signsrchFind patterns of common encryption, compression, or encoding algorithms.
remnux://tools/speakeasyEmulate Windows PE, DLL, and driver execution using Speakeasy API emulation.
remnux://tools/speakeasy-sc-x64Emulate 64-bit shellcode using Speakeasy Windows API emulation.
remnux://tools/speakeasy-sc-x86Emulate 32-bit shellcode using Speakeasy Windows API emulation.
remnux://tools/spidermonkeyExecute JavaScript with SpiderMonkey engine using browser/PDF object emulation.
remnux://tools/ssdeepCompute fuzzy hash (ssdeep) for file similarity comparison.
remnux://tools/stringsExtract printable ASCII strings from binary files. For Unicode (UTF-16), use 'strings -e l <file>' (little-endian) or 'strings -e b <file>' (big-endian). For PE files, prefer pestr which extracts both automatically.
remnux://toolsAll registered REMnux analysis tools with metadata
remnux://tools/by-tag/aiREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/apkREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/autoitREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/capabilitiesREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/cobalt-strikeREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/cryptoREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/data-exeREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/decompilationREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/decryptionREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/dotnetREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/elfREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/emailREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/etlREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/fallbackREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/family-detectionREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/jarREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/javascriptREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/macrosREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/memoryREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/metadataREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/ole2REMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/onenoteREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/ooxmlREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/packer-detectionREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/pcapREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/pdfREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/peREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/pythonREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/rtfREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/scriptREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/shellcodeREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/stringsREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/triageREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/unpackingREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/by-tag/yaraREMnux tools filtered by tag (pe, pdf, ole2, etc.)
remnux://tools/tracescExecute and trace shellcode via Wine to log API calls and behavior.
remnux://tools/translateApply byte-level transforms to files (XOR, reverse, shift, custom expressions).
remnux://tools/tshark-conversationsSummarize TCP/UDP conversations from a PCAP file.
remnux://tools/tshark-dnsExtract DNS queries and responses from a PCAP file.
remnux://tools/tshark-fingerprintFingerprint TLS clients (JA4 and JA3) per Client Hello, with SNI and destination IP/port, to cluster traffic by client stack and pivot to threat intel. Uses tshark's native fields, no plugin.
remnux://tools/tshark-hierarchyShow protocol hierarchy statistics from a PCAP file.
remnux://tools/tshark-httpShow HTTP request/response statistics from a PCAP file.
remnux://tools/tshark-tlsExtract TLS Client Hello server names (SNI) — surfaces destination/C2 domains even when payloads are encrypted.
remnux://tools/tshark-verboseFull packet decode of first 50 packets from a PCAP file.
remnux://tools/uncompyle6Decompile Python bytecode (.pyc) to source code. Supports Python 1.0 through 3.8.
remnux://tools/upx-decompressDecompress UPX-packed executables in-place (keeps backup as .exe~).
remnux://tools/vol3-cmdlineExtract command-line arguments for each process.
remnux://tools/vol3-dlllistList loaded DLLs for each process.
remnux://tools/vol3-filescanScan for file objects in memory.
remnux://tools/vol3-handlesList open handles for each process.
remnux://tools/vol3-hivelistList registry hives found in memory.
remnux://tools/vol3-infoDisplay OS and kernel details from a memory image.
remnux://tools/vol3-linux-pslistList running processes from a Linux memory image.
remnux://tools/vol3-malfindDetect injected code and notable memory regions.
remnux://tools/vol3-netscanScan for network connections and sockets in a memory image.
remnux://tools/vol3-pslistList running processes from a memory image.
remnux://tools/vol3-psscanFind hidden or unlinked processes via pool tag scanning.
remnux://tools/vol3-pstreeDisplay process tree from a memory image.
remnux://tools/webcrackDeobfuscate, unminify, and unpack bundled JavaScript, including scripts protected with obfuscator.io. Prints deobfuscated code to stdout; with -o <dir> it writes <dir>/deobfuscated.js instead, but refuses to run if the directory already exists — point -o at a fresh path and never pre-create it.
remnux://tools/xlmdeobfuscatorDeobfuscate Excel 4.0 (XLM) macros.
remnux://tools/xmldumpFormat and analyze XML. For OOXML: zipdump.py -s <n> -d file | xmldump.py pretty
remnux://tools/xor-kpaPerform XOR decryption using known-plaintext attack.
remnux://tools/xorsearchLocate and decode strings obfuscated using XOR and other techniques.
remnux://tools/xorsearch.pySearch for XOR/ROL/ROT/SHIFT encoded strings with JSON output and YARA support.
remnux://tools/yara-forgeScan for malware family signatures using curated YARA rules from 45+ sources (Malpedia, ReversingLabs, etc.). Matches indicate resemblance to known families, not confirmed attribution.
remnux://tools/yara-rulesScan a file with YARA rules to identify capabilities and behaviors (packer detection, anti-debug, networking).
remnux://tools/zipdumpAnalyze zip-compressed files including OOXML and JAR.
remnux://tools/{name}Single REMnux tool details by name
remnux://tools/by-tag/{tag}REMnux tools filtered by tag (pe, pdf, ole2, etc.)
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| https://docs.remnux.org/~gitbook/mcpDeclared in Repository Readme · repository | streamable_httpMCP 2025-06-18 · server 0.1.0 | none_observed | MCP initialized · 1 attemptHTTP 200 · 211 ms | Sep 4, 2026 |
Install the selected package version with: npm install --save-exact @remnux/mcp-server@0.1.72
REMnux MCP Server exposed 19 tools during independent protocol observation, including analyze_file, check_behavior_prerequisites, check_tools, compare_files, download_file, download_from_url, extract_archive, extract_iocs, and others.
Our scanner tested version 0.1.72 without proving a finding in the methods exercised. This is not a guarantee that every deployment is secure.
Curated product and capability guides containing this catalog record.