Zip Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Zip Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
中文 | English
<a href="https://glama.ai/mcp/servers/@7gugu/zip-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@7gugu/zip-mcp/badge" /> </a>
ZIP MCP Server is a compression server based on fastMCP and zip.js, implementing the Model Context Protocol (MCP). This project provides fully parameter-controlled ZIP compression, decompression, and query compression package information functions.
Versions 1.0.6 and later fix an arbitrary file write issue in the decompress tool: malicious ZIP entry names (for example ../outside.txt) could previously be joined with the output directory and written outside the intended extraction root. Extraction now resolves the output root once, validates each entry path, and rejects absolute paths, drive-letter paths, .. segments, and any path that would escape the output directory.
Thanks to Ryan ([email protected]) for responsibly reporting this issue.
zip-mcp
├── src
│ ├── index.ts # Application entry point
│ ├── utils
│ │ ├── compression.ts # Compression and decompression implementation
│ │ └── safePath.ts # Safe ZIP entry path validation
├── tsconfig.json # TypeScript configuration file
├── package.json # npm configuration file
└── README.md # Project documentationYou can install ZIP MCP Server globally using npm:
npm install -g zip-mcpAfter installation, you can configure ZIP MCP in your MCP JSON configuration:
{
"mcpServers": {
"zip-mcp": {
"command": "zip-mcp",
"args": []
}
}
}ZIP MCP Server provides the following tools, which can be called through the MCP protocol:
Compress local files or directories into a ZIP file.
Parameters:
input: Path of the file or directory to be compressed (string or string array)output: Path of the output ZIP fileoptions: Compression options (optional)level: Compression level (0-9, default is 5)password: Password protectionencryptionStrength: Encryption strength (1-3)overwrite: Whether to overwrite existing files (boolean)Returns:
Decompress local ZIP files to the specified directory. Entry paths are validated before writing so files cannot be extracted outside output via .. or absolute paths.
Parameters:
input: Path of the ZIP fileoutput: Path of the output directoryoptions: Decompression options (optional)password: Decompression passwordoverwrite: Whether to overwrite existing files (boolean)createDirectories: Whether to create non-existent directories (boolean)Returns:
Get metadata information of local ZIP files.
Parameters:
input: Path of the ZIP fileoptions: Options (optional)password: Decompression passwordReturns:
Returns the input message to test if the service is running normally.
Parameters:
message: Message to be returnedReturns:
Examples of calling tools using the MCP client:
// Compress files
await client.executeTool("compress", {
input: "/path/to/files/or/directory",
output: "/path/to/output.zip",
options: {
level: 9,
comment: "Test compression",
password: "secret",
overwrite: true,
},
});
// Decompress files
await client.executeTool("decompress", {
input: "/path/to/archive.zip",
output: "/path/to/extract/directory",
options: {
password: "secret",
overwrite: true,
createDirectories: true,
},
});
// Get ZIP info
await client.executeTool("getZipInfo", {
input: "/path/to/archive.zip",
options: {
password: "secret",
},
});
// Test service
await client.executeTool("echo", {
message: "Hello, ZIP MCP Server!",
});~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.