Skip to main content
Glama

omni_modern_unpacker

Extracts source bundles and bytecode from packaged modern apps: Electron app.asar files, V8 .jsc, PyInstaller/Nuitka/PyArmor binaries, and Node.js SEA, pkg, or Bun standalone executables.

Instructions

Modern Application Packager Unpacker: Electron app.asar virtual filesystem & V8 bytecode (.jsc) unpacker, Python frozen binary unpacker (PyInstaller MEI CArchive, Nuitka, PyArmor, .pyc disassembler), and Node.js SEA / Vercel pkg / Bun standalone JS bundle extractor.

Input Schema

NameRequiredDescriptionDefault
actionYesModern application unpacker engine.
extract_dirNoOptional safe export directory inside workspace.
target_pathYesPath to app.asar, .jsc, frozen .exe, or .pyc file.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.2.0

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the entire behavioral burden. It says the tool is an 'unpacker' and mentions a 'virtual filesystem,' but never states that it writes files to disk, what extract_dir defaults to, whether the target is modified, whether elevated permissions are needed, or how large outputs are surfaced. For a tool that materializes extracted artifacts, that leaves the agent guessing about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense sentence with no filler, and the format coverage is front-loaded. The only waste is the leading 'Modern Application Packager Unpacker:' label, which largely restates the tool name before the substantive content begins.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three parameters, no annotations, and no output schema, the description needs to do real work. It adequately covers what inputs are accepted but is thin on behavioral consequences, expected outputs, and error conditions (e.g., unsupported packer versions, corrupted archives). Adequate but with clear gaps for a multi-engine extraction tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented and the baseline is 3. The description does add useful mapping context: it clarifies which artifact types correspond to each engine family behind the action enum (electron_asar, python_frozen, node_bun_sea). The extract_dir containment constraint and target_path formats are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource and enumerates the exact artifact families handled: Electron app.asar / .jsc, PyInstaller MEI CArchive, Nuitka, PyArmor, .pyc, Node SEA, Vercel pkg, and Bun bundles. That is far more specific than the tool name alone. It stops short of distinguishing itself from siblings such as omni_deep_reverse or omni_deobfuscate_snippet, which an agent could plausibly also reach for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer it should call this when the target is an app.asar, a frozen executable, or a .pyc. There is no explicit when-to-use statement, no exclusions, and no routing to or away from sibling reverse-engineering tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.