MCP Compress
Server Details
List compression profiles, estimate gains, and compress images, PDFs, and Office files.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct intent: compress_file produces output, estimate_compression predicts gains, and list_compression_profiles is a parameterless metadata lookup. Although estimate_compression internally compresses, its description makes the read-only/estimation purpose explicit, so an agent can pick correctly.
All three names are snake_case verb_noun (compress_file, estimate_compression, list_compression_profiles), matching the expected convention exactly. Parameter naming (fileBase64, fileName, level, custom) is likewise consistent across the two input-accepting tools.
Three tools is a tight, well-scoped surface for a single-purpose compression server: one action, one preview, one reference lookup. No tool is redundant and nothing feels padded or missing at the count level.
The compress/estimate/inspect-profiles lifecycle is covered, including presets, custom profiles, and supported format families. Minor gaps remain: no decompression or batch operation, and no way to persist or validate a custom profile beyond passing it inline with compress_file.
Available Tools
3 toolscompress_fileAInspect
Compress a file and return the result as base64. Pass fileBase64 + fileName. Choose EITHER a preset 'level' (light|balanced|maximum, default balanced) OR a 'custom' profile { imageQuality: 1-100, maxDimension?: px, convertFormat?: webp|avif|jpeg } -- supplying both is rejected. Supported families: images (PNG/JPG/WebP/AVIF), PDF (embedded JPEG images re-encoded, no AGPL tool), and Office OOXML (DOCX/PPTX/XLSX embedded media re-encoded). Returns fileBase64, bytesBefore, bytesAfter, gainPercent, mimeType and the output format. If compression would enlarge a non-converted file, the original is returned with 0% gain. WARNING: convertFormat 'avif' is CPU/RAM heavy (>= 1 GB RAM for large images). Max input size: 26214400 decoded bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| custom | No | ||
| fileName | Yes | ||
| fileBase64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: mutual exclusivity of level/custom, the supported format families and how PDFs/OOXML are handled, the no-op guard that returns the original when compression would enlarge a file, an AVIF resource warning, and a hard 26214400-byte input cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the required inputs, then parameter selection, then supported families, then return fields and caveats. Dense but each sentence carries new information; the inline WARNING and trailing size cap make it slightly wall-of-text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming every returned field (fileBase64, bytesBefore, bytesAfter, gainPercent, mimeType, output format). Together with the size limit, the format matrix, and the no-gain fallback, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it names the three preset levels with the default (balanced), enumerates custom fields with units and ranges, and states both required inputs. It never explains what fileName is actually used for (e.g. extension-based format detection).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource and states the output form: 'Compress a file and return the result as base64.' The supported-family list further pins down what it operates on. It doesn't name the siblings (estimate_compression, list_compression_profiles), so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit parameter-selection rule — choose EITHER a preset level OR a custom profile, since supplying both is rejected — which is the key usage decision an agent faces. It still offers no guidance on when to call this versus estimate_compression or list_compression_profiles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_compressionAInspect
Detect a file (family, format, size from magic bytes) and estimate the compression gain by ACTUALLY compressing it. Pass the file as base64 (fileBase64) plus its fileName (the extension disambiguates Office formats). Omit 'level' to estimate all three presets, or set it for a single one. Returns the detected metadata and, per level, the resulting byte size, gain percentage and output format. Max input size: 26214400 decoded bytes; the HTTP body must accept base64 (decoded x 4/3 plus margin).
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| fileName | Yes | ||
| fileBase64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses meaningful behavior: it actually compresses the input to estimate gain, accepts base64 input, has a decoded byte limit, and requires HTTP body sizing for base64 overhead. It could say more about whether anything is persisted, but the key operational traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: it states purpose first, then input requirements, level behavior, returns, and size constraints. It is appropriately sized, though the single-paragraph format could be slightly easier to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, but the description explains the returned metadata and per-level results, input constraints, and base64 sizing concerns. It is broadly complete for calling the tool correctly, with only minor unspecified edge cases such as error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains fileBase64, the role of fileName and extensions in disambiguating Office formats, and the behavior of level when omitted versus set, adding substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: detect a file and estimate compression gain by actually compressing it. It is clear enough to distinguish estimating from applying compression in general, but it does not explicitly contrast with the sibling compress_file tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful operational guidance for the level parameter, including that omitting it estimates all presets and setting it targets one. However, it does not explicitly say when to use this tool instead of compress_file or list_compression_profiles, leaving sibling selection somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_compression_profilesAInspect
List the three compression presets (light, balanced, maximum) with their exact image quality and max-dimension caps, a note per preset, and the maximum accepted input size. Values are kept in parity with the Compresseur Local web app. Takes no parameters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses that this is a static read (no parameters, fixed three presets) whose values are kept in parity with the Compresseur Local web app, implying authoritative, stable results. It stops short of explicitly stating read-only/side-effect-free behavior, but the 'List' framing plus fixed content makes the safety profile clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the returned content and the preset names, with no filler. The trailing 'Takes no parameters' slightly duplicates the empty schema but is a cheap disambiguation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey the return shape, and it does: three named presets, per-preset quality and dimension caps, notes, and max input size. That is everything an agent needs to decide whether to call it and how to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline is 4; the description confirms 'Takes no parameters,' removing any ambiguity about whether filtering or preset selection is possible at call time.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (compression presets) and enumerates the three preset names, so an agent knows exactly what it gets. It does not explicitly contrast itself with compress_file or estimate_compression, but the reference-data framing is unmistakably distinct from those action tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a lookup to call before compress_file to learn preset values, but the description never says when to use it or when to prefer estimate_compression. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
compress_file - First observed
estimate_compression - First observed
list_compression_profiles
Related MCP Connectors
- MochifyOAuthapp.mochify
Image and PDF toolkit: convert to AVIF/WebP/JXL, resize, crop, remove backgrounds, optimize PDFs.
Compress PDFs to exact target sizes (82-93% smaller). Tools: compress_pdf, optimize_pdf, inspect_pdf
Split, merge and compress PDF files locally - private by design, no uploads.
PDF tools for agents: compress to a size, Arabic + English OCR, Office conversion, JSON extraction.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to analyze, compress, and verify PDFs while preserving text, vectors, and document structure, with configurable presets and target-size limits.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to compress photos on the local machine to an exact target size in B, KB, or MB, with tools for batch compression, pre-flight feasibility estimation, image info lookup, and format listing, all returning structured JSON statuses.1MIT
- AlicenseAqualityBmaintenanceCompress, merge, split, OCR and convert PDFs (Word, Office, images, webpages) on local files, plus password protect and unlock, through the Papyrio API. Works without a key on a free guest tier; an optional RapidAPI key raises the limit.12598 npm1MIT
- AlicenseAqualityCmaintenanceCompresses PDFs and images (including iPhone HEIC photos) to fit an upload limit, or a form's exact rules such as the US visa photo, IBPS or SSC uploads. Keeps the file's format and as much quality as the limit allows.2198 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.