Skip to main content
Glama
Ethos6

SpectraProbe MCP server

Official
by Ethos6

๐Ÿ›ฐ๏ธ SpectraProbe

Original open-source static software analysis toolkit

Identify, hash and inspect executables, archives, WebAssembly and JavaScript โ€” from one CLI, one library, and a real MCP server. No cloud. No telemetry. Everything runs locally.

CI License: MIT Node TypeScript MCP

Quick start ยท What it does ยท CLI ยท MCP server ยท Providers ยท Library ยท Scope & ethics


Why

Reverse-engineering and defensive investigation usually mean juggling a dozen single-purpose tools: one for file identification, one for hashing, one for strings, another for PE headers, another for ELF, something else for archives. SpectraProbe unifies the static foundation of that workflow behind one consistent interface, with a data model built for evidence:

  • Zero required native dependencies. The PE, ELF, Mach-O, WebAssembly and ZIP parsers are original TypeScript. Install and run.

  • One engine, three front ends. The same analysis core powers the CLI, the programmatic library, and an MCP server โ€” so results are identical everywhere.

  • Evidence, not vibes. Every conclusion is a finding that cites concrete evidence, labelled verified, inferred or unknown, with explicit limitations. Nothing is invented.

  • Graceful degradation. Heavy external tools (Ghidra, radare2, YARA, JADX, โ€ฆ) are optional providers; the core works fully without them and reports exactly what is and isn't installed.

$ spectra inspect ./sample.exe
โ–Œ sample.exe
  format   pe โ€” PE (Portable Executable)
  sha256   9f2cโ€ฆc4cd
  entropy  6.47 bits/byte

metadata
  [vh] PE PE32+ for x86-64 (AMD64) (DLL)
       subsystem: Windows GUI; entry RVA 0x1240; image base 0x180000000
import
  [vh] Imports 86 functions from 7 libraries
hardening
  [vh] Security flags: dynamic-base (ASLR), nx-compatible (DEP), control-flow-guard

Related MCP server: specmd-mcp

โœจ What it does

Area

Capability

Identification

Magic-byte detection for PE, ELF, Mach-O (incl. fat/universal), WebAssembly, ZIP/JAR/APK, Java class, DEX, JS/TS, text

Integrity

SHA-256 / SHA-1 / MD5 / CRC-32, size, Shannon entropy with packing hints

Strings & IOCs

ASCII + UTF-16LE extraction; pulls out URLs, IPs, emails, domains and file paths

PE

Machine, bitness, subsystem, entry point, image base, timestamp, sections, imports (by name & ordinal), exports, ASLR/DEP/CFG flags, .NET detection

ELF

Class, type, machine, sections, DT_NEEDED dependencies, SONAME, RPATH, dynamic symbols, stripped detection

Mach-O

32/64-bit, fat binaries, CPU type, file type, UUID, sections, linked dylibs, min-OS

WebAssembly

Section table, imports and exports with names and kinds, custom sections

Archives

ZIP/JAR/APK entry listing; JAR manifest; APK DEX/manifest summary (reads deflate & stored entries)

JavaScript / TS

Real acorn AST for JS (imports, requires, exports, functions, classes, eval/dynamic import), capability-reference hints; regex fallback for TypeScript; whole-project module graph

Evidence model

Findings cite evidence, carry certainty/confidence and limitations; searchable sessions persisted to disk

Knowledge graph

Relationship graph linking artifacts โ†” imports, exports, dependencies, sections, indicators

Reporting

Terminal, JSON and Markdown reports with reproducibility metadata

SpectraProbe performs static analysis only โ€” it reads and parses files, it never executes the software under study.

๐Ÿš€ Quick start

git clone https://github.com/Ethos6/spectraprobe
cd spectraprobe
npm install
npm run build
npm test            # 38 tests across parsers, pipeline, and the MCP layer

# analyse something real
node dist/cli/cli.js inspect "$(command -v node)"

Install the spectra command globally from the clone:

npm link           # then: spectra inspect ./target

Requires Node.js โ‰ฅ 18. Works on Windows 11, Linux and macOS (CI runs on all three).

โŒจ๏ธ CLI

spectra inspect <target>        Full static analysis (findings, metadata, structure)
spectra strings <file>          Extract printable ASCII/UTF-16 strings
spectra dependencies <target>   Linked libraries / package dependencies
spectra symbols <file>          Exported / dynamic symbols
spectra imports <file>          Imported libraries and functions
spectra js analyze <path>       Analyse a JS/TS file or project
spectra resources <file>        List archive entries / embedded resources
spectra providers               List external providers and availability
spectra report <target>         Full report  (--format markdown|json  --out file)
spectra graph <target>          Emit the knowledge graph as JSON
spectra mcp                     Start the MCP server (stdio)

Common options: --format terminal|json|markdown, --out <file>, --only strings,imports, --min-length <n>, --max-strings <n>, --no-color.

# A whole JS/Node project: dependencies + capability references + module graph
spectra js analyze ./my-app

# A shareable Markdown report for an issue or case file
spectra report ./firmware.bin --format markdown --out firmware.md

# Just the import table of a DLL, as JSON
spectra imports ./library.dll --format json

๐Ÿ”Œ MCP server

SpectraProbe speaks the Model Context Protocol over stdio, so any MCP-compatible client or agent can drive the engine. It implements the protocol directly โ€” no SDK dependency.

// add to your MCP client configuration
{
  "mcpServers": {
    "spectraprobe": { "command": "spectra", "args": ["mcp"] }
  }
}

Twelve tools, each backed by the same engine as the CLI:

probe_target ยท inspect_metadata ยท extract_strings ยท inspect_dependencies ยท inspect_symbols ยท inspect_imports ยท analyze_javascript ยท inspect_resources ยท search_evidence ยท create_report ยท list_providers ยท get_analysis_status

Each tool has an explicit input schema, returns structured JSON, and reports clear errors for unsupported operations. Requests are processed in order so session-aware tools (search_evidence, get_analysis_status) stay consistent. A quick manual check:

printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
  '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"probe_target","arguments":{"path":"/bin/ls"}}}' \
  | spectra mcp

๐Ÿงฉ Pluggable providers

Deeper analysis comes from established, independently-licensed tools. SpectraProbe detects and adapts them; it never bundles them, and it keeps working when they are absent.

Provider

Adds

Detected via

YARA

signature/pattern scanning

yara on PATH

radare2

disassembly & analysis

r2 on PATH

Capstone

multi-arch disassembly

python3 -c import capstone

LIEF

cross-format binary abstraction

python3 -c import lief

Ghidra

decompilation, deep analysis

GHIDRA_INSTALL_DIR or analyzeHeadless

JADX

APK/DEX โ†’ Java

jadx on PATH

Java

JVM-based tooling

java on PATH

spectra providers            # shows โœ“/โœ—, version, supported formats, and install notes

Each provider honours the licence and distribution terms of the tool it wraps.

๐Ÿ“š Library API

import { analyzePath, buildGraph, renderReport } from "spectraprobe";

const report = await analyzePath("./sample.exe");
console.log(report.findings.filter((f) => f.category === "import"));

const graph = buildGraph([report]);        // nodes + edges you can render or query
const markdown = renderReport(report, "markdown");

Lower-level parsers are exported too: parsePe, parseElf, parseMacho, parseWasm, readZip, extractStrings, shannonEntropy, hashBuffer, and more.

๐Ÿ—๏ธ Architecture

ingest โ”€โ–ถ identify (magic bytes) โ”€โ–ถ static engines โ”€โ–ถ evidence/findings โ”€โ–ถ report
                                     โ”œโ”€ formats: pe ยท elf ยท macho ยท wasm ยท zip
                                     โ”œโ”€ analyze: javascript (acorn) ยท project walk
                                     โ””โ”€ providers: yara ยท radare2 ยท ghidra ยท โ€ฆ(optional)
                                                   โ”‚
                      session (searchable) โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
                      knowledge graph      โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        the same core is exposed by  โ†’  CLI ยท library ยท MCP server

Independently testable subsystems, TypeScript strict mode, bounds-checked binary readers, hard timeouts on any external process, and no file is ever executed.

๐Ÿ›ก๏ธ Authorized use

SpectraProbe is built for defensive security, debugging, interoperability research, and authorized software investigation. Use it only on:

  • software you develop or own,

  • open-source software,

  • malware/research samples in an environment you control, or

  • targets you otherwise have a lawful basis to analyse.

By design, this project is static-only. It deliberately does not include runtime hooking, stealth process/network monitoring, access-control or DRM circumvention, credential capture, or persistence mechanisms. Respect the licences of anything you analyse and of every provider tool you enable. You are responsible for using it lawfully.

โœ… Project status

Implemented and tested: ingestion, hashing, entropy, strings/IOCs, PE/ELF/Mach-O/WASM/ZIP parsers, JS/TS analysis, provider detection, evidence model, knowledge graph, sessions, reporting, CLI, and the MCP server (38 passing tests; typechecked; CI on Linux/macOS/Windows ร— Node 18/20/22).

Planned: optional provider adapters that invoke Ghidra/radare2/JADX for decompilation, richer .NET and DEX structure parsing, and a desktop workspace. Runtime/dynamic analysis is intentionally out of scope.

๐Ÿค Contributing

Issues and PRs welcome โ€” new format parsers, provider adapters, and fixtures especially. See CONTRIBUTING.md. Please include a deterministic test fixture for any new parser.


If SpectraProbe is useful to you, please โญ the repo โ€” it helps other researchers find it.

MIT ยฉ Ethos6

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables evidence-first binary and firmware analysis through MCP, exposing tools to initialize projects, analyze artifacts, query structured claims, export results, and run evaluations.
    Apache 2.0
  • A
    license
    C
    quality
    B
    maintenance
    Enables authoring, validating, inspecting, blackbox-inventorying, tracing, and capability-querying SPEC.md documents through MCP tools over stdio JSON-RPC. Each tool wraps the same command modules the CLI uses and returns identical JSON envelopes.
    9
    Apache 2.0
  • A
    license
    C
    quality
    B
    maintenance
    Provides read-only, stdio-based MCP tools for inspecting locally captured C/C++ fault artifacts, grouping processes and sessions, querying the evidence store, and resolving explicitly supported RPC/IPC relationships. Access is restricted to a configured artifact root, with observed, static-candidate, and unresolved evidence kept strictly separate.
    24
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes read-only local analysis tools for source auditing, web traffic review, binary reverse engineering, exploit scaffolding, OSINT, and reporting via JSON-RPC over stdio, enabling LLMs to orchestrate evidence-based security workflows without executing targets or sending network requests.
    1
    MIT