基于fastmcp的压缩文件MCP服务器 - A compression file MCP server based on fastmcp supporting multiple compression formats (gzip, zip, 7z, tar.gz) with unified compression/decompression/listing operations.
Server has 8 tools with basic schemas and descriptions, but significant quality gaps. Tool names lack clear action verbs (e.g., 'zip', 'unzip' are ambiguous, compress_file_gzip, decompress_file_gzip would be clearer). Descriptions are present but generic (avg ~120 chars, below the 194-char baseline for A+ tools). Parameter descriptions exist but lack specificity on constraints, formats, and error recovery. No documented output schemas. Error handling is minimal, no recovery guidance or actionable error messages. The 'compression' tool (tool #8) is a catch-all that conflates multiple operations, violating single-responsibility. Tool definitions are visible in src/index.ts but actual implementation details (error messages, validation) are not shown, limiting confidence in error handling quality.
Use 7z format to compress files or folders. Specify output directory, filename, and compression level. Supports progress reporting. Requires 7-Zip to be installed on the system.
Unified compression tool that supports multiple operations (compress, decompress, list) and formats. This tool consolidates all compression functionality into a single interface. Formats supported: gzip Operations: - compress: Compress a file or directory - decompress: Extract a compressed file - list: Show contents of a compressed file Each operation has specific parameters. See examples below.
Preview the contents of a gzip compressed file. Specify preview length in bytes. Useful for viewing .gz file contents without full decompression.
Decompress gzip files. Specify output directory and filename. Supports progress reporting. Suitable for decompressing .gz files.
Extract tar.gz format compressed folders. Specify output directory and directory level stripping options. Supports progress reporting.
Tool names lack action verbs. 'zip', 'unzip', '7z-archive' are ambiguous. Should be 'compress_file_gzip', 'decompress_file_gzip', 'compress_archive_7z' to clearly signal intent.
No documented output schemas. Tools return results but LLMs cannot predict field names, types, or structure. Must document what each tool returns (e.g., { success: bool, outputPath: string, compressionRatio: number }).
Parameter descriptions lack constraint details. 'compressionLevel' says '1-9' but no guidance on speed/quality tradeoff or recommended defaults. 'previewLength' lacks explanation of why 10000 is the max. Add format, range, and rationale to every parameter.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Compress files or folders using gzip format. Specify output directory and filename. Supports progress reporting. Suitable for compressing single files.
Use ZIP format to compress files or folders. Specify output directory, filename, and compression level. Supports progress reporting.
Compress folders using tar.gz format. Specify output directory, filename, and compression level. Supports progress reporting.
'compression' tool (tool #8) violates single-responsibility. It handles compress, decompress, and list operations across multiple formats in one tool. Split into compress_file, decompress_file, list_archive_contents for clarity.
No error recovery guidance. Descriptions do not explain what to do if compression fails, file not found, or disk full. Error messages must be actionable: 'File not found: /path/to/file. Check the path and try again.' not just 'Error'.