Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
ZIP MCP server: create, inspect, verify, extract, canonicalize, merge, modify. 15 tools
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
ZIPNATIVE_MCP_OUTPUT_DIR, ZIPNATIVE_MCP_CACHE_DIR, ZIPNATIVE_MCP_PORT, ZIPNATIVE_MCP_HTTP_TOKEN, ZIPNATIVE_MCP_MAX_UNCOMPRESSED_BYTES, ZIPNATIVE_MCP_MAX_ENTRIES, ZIPNATIVE_MCP_WORKERS, ZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTESAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"zipnative": {
"command": "npx",
"args": [
"-y",
"zipnative-mcp"
],
"env": {
"ZIPNATIVE_MCP_OUTPUT_DIR": "your-value",
"ZIPNATIVE_MCP_CACHE_DIR": "your-value",
"ZIPNATIVE_MCP_PORT": "your-value",
"ZIPNATIVE_MCP_HTTP_TOKEN": "your-value",
"ZIPNATIVE_MCP_MAX_UNCOMPRESSED_BYTES": "your-value",
"ZIPNATIVE_MCP_MAX_ENTRIES": "your-value",
"ZIPNATIVE_MCP_WORKERS": "your-value",
"ZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTES": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add zipnative --env ZIPNATIVE_MCP_OUTPUT_DIR=your-value --env ZIPNATIVE_MCP_CACHE_DIR=your-value --env ZIPNATIVE_MCP_PORT=your-value --env ZIPNATIVE_MCP_HTTP_TOKEN=your-value --env ZIPNATIVE_MCP_MAX_UNCOMPRESSED_BYTES=your-value --env ZIPNATIVE_MCP_MAX_ENTRIES=your-value --env ZIPNATIVE_MCP_WORKERS=your-value --env ZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTES=your-value -- npx -y zipnative-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"zipnative": {
"command": "npx",
"args": [
"-y",
"zipnative-mcp"
],
"env": {
"ZIPNATIVE_MCP_OUTPUT_DIR": "your-value",
"ZIPNATIVE_MCP_CACHE_DIR": "your-value",
"ZIPNATIVE_MCP_PORT": "your-value",
"ZIPNATIVE_MCP_HTTP_TOKEN": "your-value",
"ZIPNATIVE_MCP_MAX_UNCOMPRESSED_BYTES": "your-value",
"ZIPNATIVE_MCP_MAX_ENTRIES": "your-value",
"ZIPNATIVE_MCP_WORKERS": "your-value",
"ZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTES": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"zipnative": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"zipnative-mcp"
],
"env": {
"ZIPNATIVE_MCP_OUTPUT_DIR": "your-value",
"ZIPNATIVE_MCP_CACHE_DIR": "your-value",
"ZIPNATIVE_MCP_PORT": "your-value",
"ZIPNATIVE_MCP_HTTP_TOKEN": "your-value",
"ZIPNATIVE_MCP_MAX_UNCOMPRESSED_BYTES": "your-value",
"ZIPNATIVE_MCP_MAX_ENTRIES": "your-value",
"ZIPNATIVE_MCP_WORKERS": "your-value",
"ZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTES": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
ZIPNATIVE_MCP_OUTPUT_DIR envZIPNATIVE_MCP_CACHE_DIR envZIPNATIVE_MCP_PORT envZIPNATIVE_MCP_MAX_UNCOMPRESSED_BYTES envZIPNATIVE_MCP_MAX_ENTRIES envZIPNATIVE_MCP_WORKERS envZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTES envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto Nizoka bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: ZIPNATIVE_MCP_HTTP_TOKEN
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.1.0) kam vor 18 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, SuperCollider
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Make sound with SuperCollider: synths, drums, chords, melodies and soundscapes over OSC.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
MCP server for ZIP archives — deterministic creation, inspection and listing without extracting, random-access entry reads (in memory or by byte ranges for sandbox archives larger than memory), secure-by-default extraction, one-call verification, forward scanning of truncated streams, incremental modification, canonicalisation and merging without recompression, CRC-32 and raw-DEFLATE inflation — 15 tools and 7 prompts on the zipnative engine (zero-dependency, ISO/IEC 21320-1 conformance validated in CI), for Claude Desktop, Cursor, ChatGPT and any MCP client. No network, ever.
zipnative-mcp 1.1.0 (on zipnative 1.1.0) exposes 15 tools to any MCP host, listed here in tools/list order. The consumer contract — catalogue, decision tree, token economy, recipes and the complete error table — is docs/AGENT_CONTRACT.md.
| Tool | What it does | Read-only | ||
|---|---|---|---|---|
inspect_zip | ONE-call archive report: sizes, entry / file / directory counts, Zip64, comment, compressed vs uncompressed totals, per-method counts, encrypted / symlink / data-descriptor / Zip64 / cp437 / duplicate / unsafe-name counts, date range, a determinism verdict (taken from the engine's analyzeDeterminism(); the default verdict is the 1.0.0 formula: epoch timestamps + canonical order + UTF-8 flags) and every engine diagnostic. Opens eagerly: overlapping entries, entries reaching into the central directory or past EOF and Zip64 spoofing are refused with their ZIP_* code. check: […] + assert: {…} turn it into a CI gate; determinismReport: true adds the engine's stricter canonical-form verdict with every offending entry. | ✓ | ||
list_zip_entries | Paged central-directory inventory, nothing decompressed — every entry as a full row (sizes, CRC-32, method, timestamp, flags, Unix mode, symlink, Zip64, offsets, extra fields, the sanitized path an extraction would use, raw name bytes; opt-in extended timestamps and Unix owner ids). filter by names / prefix / glob, offset + limit (200 default, 2000 max). | ✓ | ||
read_zip_entry | ONE entry by name or index without extracting: decompressed content as base64 or UTF-8 text (CRC-verified), a byte range through the chunked stream, the raw compressed payload (mode: 'raw'), or a non-throwing integrity check (mode: 'verify', with the engine's skipped reason). | ✓ | ||
verify_zip | Deep verification in one call — the engine's verifyZip report verbatim: structure, every entry's CRC-32 / size / local-header agreement, each unverifiable entry with its skipped reason ('encrypted', 'stream-only-codec', 'unsupported-method'). Never `isError` for an archive problem: branch on ok and error.code. | ✓ | ||
extract_zip | Secure by default: zip-slip / device names, symlinks, duplicate paths, declared-size and ratio bombs, overlapping entries and central/local divergence refused with frozen ZIP_* codes; relaxations are explicit named inputs that skip, never emit. Inline files (includeData: false = dry run — it opens eagerly and refuses an overlapping, offset-into-CD or Zip64-spoofed archive before returning any plan) or streamed into the sandbox with resource links. | |||
scan_zip_forward | Walk local headers in stream order with bounded memory — the only tool that works on a truncated download or a cut / unseekable stream that starts at a local header, and the only one whose result is NOT authoritative (trust: 'local-headers-only'). tolerateTruncation: true returns the partial inventory plus the error. It cannot skip an SFX / prepended prefix and refuses one (ZIP_SIGNATURE_MISMATCH): inspect_zip reports it (prependedData, ZIP_PREPENDED_DATA) and modify_zip mode: 'compact' drops it. | ✓ | ||
sanitize_entry_paths | The engine's single traversal gate over a list of names: the safe /-relative form each maps to, or null with the rule that fired (traversal, absolute, drive, UNC, NUL, ADS, device name). No archive needed. | ✓ | ||
create_zip | Write a ZIP from inline text / base64 / sandbox files (up to 100 000 entries — Zip64 auto-promotes past 65 535). Reproducible by default (canonical order, DOS-epoch timestamps written in UTC, UTF-8 names); compression.deterministic: true for identical bytes on every runtime — summary.deterministic is true ONLY then; store / deflate at archive or entry level; order: 'insertion' for EPUB / JAR; comments, Unix modes, extra fields; streamed sources (zip64: true lets a streamed entry cross 4 GiB); the worker pool (parallel, byte-identical); includeSha256 proofs in base64 and file mode. | |||
modify_zip | add / replace / remove / rename / setComment without recompressing anything. mode: 'append' keeps the original bytes verbatim (removed content stays recoverable — data remanence, said loudly); mode: 'compact' rewrites so it is truly gone, and canonical: {…} makes that rewrite the canonical deterministic form. The input is opened eagerly in both modes. | |||
canonicalize_zip | Make ANY archive reproducible: the engine's canonicalizeZip() rewrites a Gradle, Maven, zip, Explorer or 7-Zip archive into the canonical deterministic form (sorted by raw name bytes, one timestamp, UTF-8 flags, Zip64-only extras, the constant version-made-by, no data descriptor) without recompressing a payload. Idempotent; summary.canonicalForm is the engine's own analyzeDeterminism() verdict on the output. | |||
merge_zip | 1 to 32 source archives into one without recompressing anything (ZipWriter.addFromReader): with verify: true (the default) every entry is decompressed once and CRC- and size-checked before it is copied, and an entry it cannot check (a method other than store / deflate) is refused (ZIP_UNSUPPORTED_METHOD); per-source filter, name collisions onConflict: 'error' (default, ZIP_DUPLICATE_ENTRY_NAME) \ | 'first' \ | 'last' with the drops reported. Encrypted entries are refused. | |
compute_crc32 | The ZIP checksum (IEEE 802.3 CRC-32, the engine's slice-by-8) of text, base64 or a sandbox file streamed in 1 MiB chunks; seed chains chunks, expect compares. | ✓ | ||
inflate_raw | Raw DEFLATE (RFC 1951) through the engine's resumable inflater with a mandatory `maxOutput` bound: exact bytesConsumed, trailing bytes as leftover. Feed it read_zip_entry mode: 'raw'. | |||
describe_engine | Offline preflight: versions, deflate tiers, runtime codecs (with incremental) and workers, the engine's default limits, the four operator ceilings, every server cap, sandbox / cache state, the 39 error codes and 12 diagnostic codes, the deliberately unexposed engine exports. network is always 'none'. | ✓ | ||
draft_governance_issue | Draft a governance-compliant GitHub issue locally for a human to review and submit — never submits, no network, no GitHub write path. |
What every tool guarantees:
rejectTraversal, rejectSymlinks, onDuplicate, limits) that skips, never emits an unsafe path or materialises a link. Overlaps, central/local divergence and Zip64 spoofing have no opt-out at all.ZIPNATIVE_MCP_OUTPUT_DIR.create_zip emits canonical order, DOS-epoch timestamps and UTF-8 names unless you opt out, and every DOS date is written and read in UTC (dosTimeMode: 'utc'), so a pinned date gives the same bytes in Paris and on a UTC runner; compression.deterministic: true pins the pure-TypeScript encoder for the same SHA-256 on every runtime and is the only setting under which summary.deterministic is true; canonicalize_zip brings any foreign archive into the canonical form; parallel is byte-identical.ZIP_* error codes, verbatim** — the engine's 39-code vocabulary reaches you unchanged in _meta.error.code (with the entry name, the limit that fired, both CRCs, …), plus the 17 wrapper codes, each with a remedy. Branch on the code, never on the message.verbosity: 'summary' and fields: […]; a produced archive arrives as an embedded resource block, never in structuredContent (the block carries the bytes in blob and repeats them in its data: URI, so outputMode: 'file' — a resource_link — is the token-frugal choice for anything sizeable).progressToken, a progress sink reach every tool whose work scales with its input except verify_zip (zipnative's verifyZip is synchronous and takes no signal: a verify runs to completion and returns its report). A cancelled call is never cached and a partial output file is removed; over MCP the SDK sends no response to a cancelled request (CANCELLED is the in-process code).All archive-producing tools (create_zip, modify_zip, canonicalize_zip, merge_zip; inflate_raw for raw bytes) support two output modes:
resource content block: the bytes are in resource.blob, and resource.uri repeats them as a data:application/zip;base64,… URI (unchanged since 1.0.0, so a client that decodes the URI keeps working) — the archive therefore travels twice in the block; structuredContent carries { mode, sizeBytes, summary, diagnostics, diagnosticCounts }, never the bytes.ZIPNATIVE_MCP_OUTPUT_DIR (≤ 4 GiB by default, ZIPNATIVE_MCP_MAX_FILE_OUTPUT_BYTES moves the ceiling; never overwritten) and the result carries a resource_link (the cheapest response; structuredContent.filePath and the text line give the file's absolute host path, as in 1.0.0). File I/O is disabled unless this variable is set; absolute paths, traversal, non-container extensions and NUL bytes are all rejected, and the **reaNur der Anfang wird gezeigt; den Rest findest du im Repo