Skip to main content
Glama
zipnative-mcp

zipnative-mcp

Describe engine & server capabilities

describe_engine
Read-onlyIdempotent

Reports offline engine versions, codecs, limits, caps, and error codes before ZIP operations, helping interpret capability or ceiling refusals.

Instructions

Offline preflight (no archive needed): server / engine / tool-API versions, the deflate tier in use and the pinned deterministic tier, runtime codecs (node:zlib, CompressionStream, DecompressionStream) and worker threads, the codec registry, the engine's default limits, the four operator ceilings (ZIPNATIVE_MCP_MAX_UNCOMPRESSED_BYTES, ZIPNATIVE_MCP_MAX_ENTRIES, ZIPNATIVE_MCP_WORKERS, ZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTES), every server cap, whether the sandbox and the cache are enabled, the 39 frozen ZIP_* error codes and 12 diagnostic codes, and the engine exports this server deliberately does not expose (with why). network is always 'none'. Call it first in a session, or whenever a cap / ceiling refusal needs interpreting.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "describe_engine"
  }
}

Input Schema

NameRequiredDescriptionDefault
fieldsNoDot-paths to keep, after verbosity (e.g. ['entryCount', 'entries.name']); unmatched ones are listed in _meta.unmatchedFields.
verbosityNo'summary': scalar verdict fields only (the token-frugal form).full

Output Schema

NameRequiredDescriptionDefault
capsNo
codecsNo
engineNo
serverNo
networkNo
sandboxNo
ceilingsNo
unexposedNo
errorCodesNo
capabilitiesNo
defaultLimitsNo
diagnosticCodesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.0.1
    • changedInput schema / properties / fields / description
      Previous value: -"Dot-path projection applied after verbosity (e.g. ['entryCount', 'entries.name']); array segments map over elements; unmatched paths are reported in _meta.unmatchedFields."New value: +"Dot-paths to keep, after verbosity (e.g. ['entryCount', 'entries.name']); unmatched ones are listed in _meta.unmatchedFields."
    • addedInput schema / properties / fields / items / pattern
      Added value: +"^(?!(?:[^.]*\\.)*(?:__proto__|constructor|prototype)(?:\\.|$)).+$"
    • changedInput schema / properties / verbosity / description
      Previous value: -"'summary' returns only the scalar verdict fields (drops arrays and payloads) — the token-frugal form."New value: +"'summary': scalar verdict fields only (the token-frugal form)."
    • addedOutput schema / properties / ceilings / properties / maxFileOutputBytes
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / codecs / items / properties / incremental
      Added value: +{
      +  "description": "The codec exposes createDecompressor (zipnative 1.1.0): the forward reader and the byte-range reader decode it in O(chunk).",
      +  "type": "boolean"
      +}
  2. First observedv1.0.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description adds value beyond them: no archive required, network is always 'none', and the exact scope of what is reported (default limits, four operator ceilings, disabled engine exports with rationale). It stops short of stating any failure modes for the tool itself, so a 4 rather than 5.

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

Conciseness3/5

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

The purpose and the call-first instruction are front-loaded, which is good, but the middle is a long comma-chained enumeration including counts ('39 frozen ZIP_* error codes and 12 diagnostic codes') that reads as a dump rather than structured detail. It is informative but would earn more if the inventory were compressed or itemized.

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

Completeness5/5

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

With an output schema present, the description needn't detail return shape, and annotations cover safety; what remains — when to call, what domain the report covers, and that no archive is needed — is fully stated. Nothing an agent needs to invoke this correctly is missing.

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 coverage is 100% and both parameters carry their own descriptions ('dot-paths to keep', 'summary: token-frugal form'), so the schema does the work. The description never references `fields` or `verbosity`, adding no semantics beyond the structured fields; baseline 3 applies.

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

Purpose5/5

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

Names a specific verb (describe) and an explicit resource expansion (server / engine / tool-API versions, codecs, limits, ceilings, error codes) rather than restating the title. The enumerated return contents make it unmistakable against siblings like inspect_zip or verify_zip, which operate on archives.

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

Usage Guidelines5/5

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

States the trigger condition directly: 'Call it first in a session, or whenever a cap / ceiling refusal needs interpreting.' It also rules out the usual prerequisite with 'Offline preflight (no archive needed)', so the agent knows no other state must exist first.

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