Compress Files

Compress Files

site icon
2025.03.27 0
TypeScript文件压缩文件解压多格式支持文件管理
compress-mcp-server 是一个基于 TypeScript 和 fastmcp 框架实现的 MCP 服务器,专门用于文件的压缩和解压功能。它支持多种压缩格式(如 gzip、tar.gz、ZIP、7z 等),并提供了统一的压缩工具接口,使得压缩、解压和查看压缩文件内容变得简单高效。该项目采用模块化、可扩展的架构,便于后续添加新的压缩格式支持。
View on GitHub

Overview

基本能力

产品定位

compress-mcp-server 是一个专注于文件压缩和解压功能的 MCP 服务器,旨在为用户提供高效、安全的文件压缩和解压服务。

核心功能

  • 支持多种压缩格式:gzip、tar.gz、ZIP、7z
  • 提供统一的压缩工具接口,支持压缩、解压和查看压缩文件内容
  • 严格的参数验证和类型检查
  • 详细的进度报告
  • 精确的错误处理
  • 安全的文件处理(防止路径遍历攻击)
  • 标准化的返回格式

适用场景

  • 单个文件的快速压缩(如日志文件)
  • 文件夹的压缩和解压(保留目录结构)
  • 跨平台文件压缩(如需要与 Windows 用户共享文件)
  • 大文件的高压缩率压缩

工具列表

  1. 统一压缩工具 (compression)
  2. 支持多种压缩格式和操作(压缩、解压、查看内容)
  3. 参数包括 operation、format、sourcePath、outputDirectory 等

  4. 原版独立工具(已弃用)

  5. zip:压缩单个文件为 gzip 格式
  6. unzip:解压 gzip 格式的文件
  7. list-zip-contents:列出压缩文件的内容预览
  8. zip-folder:压缩文件夹为 tar.gz 格式
  9. unzip-folder:解压 tar.gz 格式的压缩文件夹
  10. zip-archive:使用 ZIP 格式压缩文件或文件夹
  11. 7z-archive:使用 7z 格式压缩文件或文件夹

常见问题解答

  • 如何添加新的压缩格式支持?src/handlers 目录下创建新的处理器类文件,实现 CompressionHandler 接口的所有方法,然后在 src/index.ts 中的 registerHandlers 函数中注册新的处理器。

  • 如何防止路径遍历攻击? 项目实现了路径验证机制,确保用户不能访问系统上的任意文件。

使用教程

使用依赖

  1. 确保已安装 Node.js 和 pnpm

安装教程

  1. 克隆仓库
git clone <仓库地址>
cd zip-mcp-server
  1. 安装依赖
pnpm install
  1. 构建项目
pnpm build
  1. 运行服务器
# 直接启动
pnpm start

# 开发模式
pnpm dev

# 使用 MCP Inspector 测试
pnpm inspect

调试方式

  1. 使用开发模式启动服务器
pnpm dev
  1. 使用 MCP Inspector 测试工具
pnpm inspect
  1. 查看日志和错误信息,确保服务器正常运行。

许可证

该项目遵循 MIT 开源许可条款。