
Compress Files

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 用户共享文件)
- 大文件的高压缩率压缩
工具列表
- 统一压缩工具 (compression):
- 支持多种压缩格式和操作(压缩、解压、查看内容)
-
参数包括 operation、format、sourcePath、outputDirectory 等
-
原版独立工具(已弃用):
- zip:压缩单个文件为 gzip 格式
- unzip:解压 gzip 格式的文件
- list-zip-contents:列出压缩文件的内容预览
- zip-folder:压缩文件夹为 tar.gz 格式
- unzip-folder:解压 tar.gz 格式的压缩文件夹
- zip-archive:使用 ZIP 格式压缩文件或文件夹
- 7z-archive:使用 7z 格式压缩文件或文件夹
常见问题解答
-
如何添加新的压缩格式支持? 在
src/handlers
目录下创建新的处理器类文件,实现CompressionHandler
接口的所有方法,然后在src/index.ts
中的registerHandlers
函数中注册新的处理器。 -
如何防止路径遍历攻击? 项目实现了路径验证机制,确保用户不能访问系统上的任意文件。
使用教程
使用依赖
- 确保已安装 Node.js 和 pnpm
安装教程
- 克隆仓库
git clone <仓库地址>
cd zip-mcp-server
- 安装依赖
pnpm install
- 构建项目
pnpm build
- 运行服务器
# 直接启动
pnpm start
# 开发模式
pnpm dev
# 使用 MCP Inspector 测试
pnpm inspect
调试方式
- 使用开发模式启动服务器
pnpm dev
- 使用 MCP Inspector 测试工具
pnpm inspect
- 查看日志和错误信息,确保服务器正常运行。