项目简介

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 等。

安装步骤

  1. 克隆仓库

    git clone https://github.com/7gugu/zip-mcp.git
    cd zip-mcp
  2. 安装依赖

    确保已安装 Node.js 和 npm,然后运行:

    npm install
  3. 生成 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 服务器配置文件中。例如:

基本使用方法

配置完成后,您可以使用支持 MCP 协议的 LLM 客户端来调用 ZIP MCP Server 提供的工具。以下是一些基本的使用示例 (假设您已在客户端中配置并连接了名为 "zip-mcp" 的服务器):

  1. 压缩文件或目录:

    客户端调用 '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" // 设置压缩密码
      }
    });
  2. 解压缩 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 // 允许覆盖已存在的文件
      }
    });
  3. 获取 ZIP 文件信息:

    客户端调用 'getZipInfo' 工具,并提供 ZIP 文件路径,以及可选的密码参数。

    await client.executeTool("zip-mcp.getZipInfo", {  // 注意工具名称需要带服务器名称前缀 "zip-mcp."
      input: "/path/to/archive.zip",
      options: {
        password: "your_password" // 提供解压密码 (如果 ZIP 文件有密码)
      }
    });
  4. 测试服务是否运行正常:

    客户端调用 'echo' 工具,发送测试消息,服务器会返回该消息和当前时间戳。

    await client.executeTool("zip-mcp.echo", {  // 注意工具名称需要带服务器名称前缀 "zip-mcp."
      message: "Hello, ZIP MCP Server!"
    });

请参考仓库的 'README.md' 文件和 'src/index.ts' 代码,了解更多工具的参数和使用细节。

信息

分类

开发者工具