项目简介
ZIP MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,专注于提供 ZIP 压缩和解压缩功能。它利用 fastMCP 框架简化 MCP 服务器的开发,并集成了 zip.js 库来实现高效的 ZIP 文件处理能力。此服务器旨在作为 LLM 应用的上下文服务,通过标准化的 MCP 协议,为 LLM 提供文件压缩、解压缩以及查询 ZIP 文件元数据的能力。
主要功能点
- 文件压缩与解压缩: 支持对本地文件和目录进行 ZIP 格式的压缩和解压缩操作。
- 多文件压缩: 允许将多个文件或目录打包压缩成一个 ZIP 文件。
- 可控的压缩参数: 提供压缩级别、密码保护和加密强度等参数设置,以满足不同的压缩需求。
- ZIP 信息查询: 能够获取 ZIP 文件的元数据信息,例如文件列表、大小、压缩比率等。
- 易于集成: 遵循 MCP 协议,可以方便地与支持 MCP 协议的 LLM 客户端集成,例如 Claude Client 和 Raycast 等。
安装步骤
-
克隆仓库
git clone https://github.com/7gugu/zip-mcp.git cd zip-mcp -
安装依赖
确保已安装 Node.js 和 npm,然后运行:
npm install -
生成 MCP 配置文件
运行以下命令生成 MCP 客户端所需的 JSON 配置文件:
npm run json此命令会在控制台输出 MCP 配置文件内容。
服务器配置
要将 ZIP MCP Server 集成到 MCP 客户端,您需要配置 MCP 服务器的启动信息。通常,您需要将以下 JSON 配置添加到 MCP 客户端的配置文件中。
配置信息 (JSON 格式):
{ "mcpServers": { "zip-mcp": { "command": "npx", "args": [ "tsx", "<ZIP MCP Server 仓库的绝对路径>/src/index.ts" ] } } }
参数说明:
- '"zip-mcp"': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
- '"command": "npx"': 启动服务器的命令,这里使用 'npx' 来执行本地安装的 'tsx' (TypeScript 执行器)。
- '"args"': 启动命令的参数列表。
- '"tsx"': 使用 'tsx' 执行 TypeScript 代码。
- '"<ZIP MCP Server 仓库的绝对路径>/src/index.ts"': 请将 '<ZIP MCP Server 仓库的绝对路径>' 替换为您实际克隆的 'zip-mcp' 仓库在您电脑上的绝对路径。 这是服务器入口文件 'index.ts' 的路径,确保 MCP 客户端能够找到并执行服务器代码。
例如,如果您的 'zip-mcp' 仓库克隆在 '/Users/yourname/Documents/zip-mcp' 目录下,则配置应为:
{ "mcpServers": { "zip-mcp": { "command": "npx", "args": [ "tsx", "/Users/yourname/Documents/zip-mcp/src/index.ts" ] } } }
配置到 MCP 客户端:
根据您使用的 MCP 客户端类型,将上述 JSON 配置添加到客户端的 MCP 服务器配置文件中。例如:
- Claude Client: 按照 Claude Client 的 MCP 配置文档 进行配置。
- Raycast: 安装 MCP 插件后,在插件设置中配置 MCP 服务器信息。
基本使用方法
配置完成后,您可以使用支持 MCP 协议的 LLM 客户端来调用 ZIP MCP Server 提供的工具。以下是一些基本的使用示例 (假设您已在客户端中配置并连接了名为 "zip-mcp" 的服务器):
-
压缩文件或目录:
客户端调用 'compress' 工具,并提供输入路径 (文件或目录) 和输出 ZIP 文件路径,以及可选的压缩参数。
例如,使用 JavaScript 代码调用:
await client.executeTool("zip-mcp.compress", { // 注意工具名称需要带服务器名称前缀 "zip-mcp." input: "/path/to/your/files_or_directory", output: "/path/to/output.zip", options: { level: 9, // 设置最高压缩级别 password: "your_password" // 设置压缩密码 } }); -
解压缩 ZIP 文件:
客户端调用 'decompress' 工具,并提供 ZIP 文件路径和解压目标目录路径,以及可选的解压参数。
await client.executeTool("zip-mcp.decompress", { // 注意工具名称需要带服务器名称前缀 "zip-mcp." input: "/path/to/archive.zip", output: "/path/to/extract/directory", options: { password: "your_password", // 提供解压密码 (如果 ZIP 文件有密码) overwrite: true // 允许覆盖已存在的文件 } }); -
获取 ZIP 文件信息:
客户端调用 'getZipInfo' 工具,并提供 ZIP 文件路径,以及可选的密码参数。
await client.executeTool("zip-mcp.getZipInfo", { // 注意工具名称需要带服务器名称前缀 "zip-mcp." input: "/path/to/archive.zip", options: { password: "your_password" // 提供解压密码 (如果 ZIP 文件有密码) } }); -
测试服务是否运行正常:
客户端调用 'echo' 工具,发送测试消息,服务器会返回该消息和当前时间戳。
await client.executeTool("zip-mcp.echo", { // 注意工具名称需要带服务器名称前缀 "zip-mcp." message: "Hello, ZIP MCP Server!" });
请参考仓库的 'README.md' 文件和 'src/index.ts' 代码,了解更多工具的参数和使用细节。
信息
分类
开发者工具