logzip server demonstrates solid definition quality with well-structured tool definitions, clear descriptions, and properly typed schemas. All four tools have non-empty descriptions (baseline: 100% of A+ tools), complete input schemas with type information, and actionable parameter documentation. Tool names follow verb_noun convention (compress_*, get_*). However, output schemas are not explicitly documented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint) are present despite being marked as READ_ONLY. Parameter descriptions could be more granular, e.g., 'quality' enum description is minimal, and 'preserve_patterns' lacks usage examples despite mentioning regex syntax.
Compress log text pasted directly into the conversation using logzip.
Compress an entire log file using logzip and return the result ready for LLM analysis.
Compress only the last N lines of a log file. Efficient for large files — does not load the entire file into memory.
Return file metadata and token estimates without compressing. Call this first to decide whether to use compress_file or compress_tail.
Output schemas not documented. Tool descriptions and source code do not specify what fields are returned by each tool. LLMs cannot plan downstream operations or extract required data without knowing response structure.
Missing tool annotations despite tools being READ_ONLY. Source code marks tools with 'Risk: READ_ONLY' but tool registration in tools.rs does not include inputSchema properties for readOnlyHint. Agents cannot distinguish safe-to-retry operations from destructive ones.
Parameter description for 'preserve_patterns' is vague. States 'Extra regex patterns to keep in body (e.g. REQ-\\d+-\\w+)' but does not clarify: How many patterns? Are they ANDed or ORed? What happens on invalid regex? This leaves LLMs uncertain how to construct valid input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
No error handling guidance in tool descriptions. If a file does not exist, is unreadable, or contains invalid UTF-8, what should the LLM do? Descriptions do not indicate whether to retry, ask the user, or handle as fatal.
'quality' parameter enum lacks explanation. Enum values ['fast', 'balanced', 'max'] are self-apparent but descriptions do not explain trade-offs: fast for speed (lossy?)? max for accuracy (slower?)? This forces LLMs to guess intent.
'lossless' parameter default is 'false' (lossy compression). Per the rubric, defaults must not cause unintended side effects. If an LLM forgets to set 'lossless: true', it may lose important log details without realizing. Consider whether lossy should be the default for a log analysis tool.