Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
ZIP MCP server: create, inspect, verify, extract, canonicalize, merge, modify. 15 tools
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
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_BYTESLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"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"
}
}
}
}Ejecuta esto en tu terminal
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-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"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"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"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"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
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 envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub Nizoka, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: ZIPNATIVE_MCP_HTTP_TOKEN
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (1.1.0) llegó al registro hace 19 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Verbaly
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
i18n for coding agents: extract, check and translate an app's text, with drafts a person approves
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
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 **reaSolo se muestra el principio; lee el resto en el repo