# Apolo (mcpb · linux-x64)

Optimize, convert and compare images locally: WebP, AVIF, JPEG XL, JPEG and PNG.

- Trust score: 52/100 (low)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- mcpb · `linux-x64`: 52/100 (this document), [markdown](https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-amd64.md), [page](https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-amd64)
- mcpb · `linux-arm64`: 20/100, [markdown](https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-arm64.md), [page](https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-arm64)
- mcpb · `Apolo-1.0.1-macos.mcpb`: 20/100, [markdown](https://verifymcp.io/servers/webcafeina-apolo/apolo-macos.md), [page](https://verifymcp.io/servers/webcafeina-apolo/apolo-macos)
- mcpb · `win-arm64`: 20/100, [markdown](https://verifymcp.io/servers/webcafeina-apolo/apolo-windows-arm64.md), [page](https://verifymcp.io/servers/webcafeina-apolo/apolo-windows-arm64)
- mcpb · `win-x64`: 20/100, [markdown](https://verifymcp.io/servers/webcafeina-apolo/apolo-windows-x64.md), [page](https://verifymcp.io/servers/webcafeina-apolo/apolo-windows-x64)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/webcafeina/Apolo/releases/download/v1.0.1/Apolo-1.0.1-linux-amd64.mcpb`
- Version: `1.0.1`
- Transport: `stdio`
- SHA-256: `b61c6e43bc6f3ff48975a2e064fb7cdca073ec851103a60a740a14d692cec7f6`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to webcafeina/Apolo).
  - Clear OSI-approved license (GPL-3.0-or-later).
  - Actively maintained (last published 4 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 58/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3761 tokens (~341/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Apolo MCP server?

Apolo ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, b61c6e43bc6f3ff48975a2e064fb7cdca073ec851103a60a740a14d692cec7f6; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/webcafeina/Apolo/releases/download/v1.0.1/Apolo-1.0.1-linux-amd64.mcpb`
- SHA-256: `b61c6e43bc6f3ff48975a2e064fb7cdca073ec851103a60a740a14d692cec7f6`

### Verify on macOS / Linux

```bash
echo "b61c6e43bc6f3ff48975a2e064fb7cdca073ec851103a60a740a14d692cec7f6  Apolo-1.0.1-linux-amd64.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\Apolo-1.0.1-linux-amd64.mcpb).Hash -eq "b61c6e43bc6f3ff48975a2e064fb7cdca073ec851103a60a740a14d692cec7f6"
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-03 (score 52, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 51, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 50, +2)

- [functional improvement] Stability: unverified → 0.10
- [functional] Package version: 1.0.0 → 1.0.1

### 2026-10-27 (score 48)

First indexed and scored.

## MCP tools (11)

### `acerca_de_apolo` (~75 tokens)

Which version of Apolo is answering, where it starts from (the app, or the Claude Desktop extension handing over to it) and the engines it carries (libwebp, MozJPEG, oxipng, avifenc, cjxl). For when someone asks about the version or something doesn't match what was expected.

### `analizar_imagen` (~88 tokens)

What an image is (format, dimensions, size, transparency, metadata, EXIF orientation) or which images a folder holds. Use it first if you don't know what it is. It doesn't measure quality: for that, medir_calidad. Example: {"ruta": "~/Photos/beach.heic"}

Input parameters:

- `ruta` (string, required): Absolute path of an image or a folder (~ is accepted).

### `cancelar_lote` (~50 tokens)

Stops a batch. What has already been converted stays. Example: {"id": "l-1"}

Input parameters:

- `id` (string, required): The id that empezar_lote gave, like “l-3”.

### `comparar_formatos` (~516 tokens)

Encodes the same image in several formats at the same perceived quality (SSIMULACRA 2 score, 80 by default) and says which one is the lightest. Saves the best one (by default), all or none, always as new files. It takes a while: about 7 trials per format (with a 12 MP photo, over a minute; with 24 MP, about three). With photos over about 20 MP, better use empezar_lote with that image, the formats and mas_ligero: it does the same in the background and isn't cut off by a timeout, although it only gives the winner. For a single output already decided, optimizar_imagen. Example: {"ruta": "~/a.png", "formatos": ["webp", "avif", "jxl"]}

Input parameters:

- `alto` (integer|null): Maximum height, in pixels: scales down if larger and never enlarges (with ancho alone, proportional).
- `ancho` (integer|null): Maximum width, in pixels: scales down if larger and never enlarges (with alto alone, proportional).
- `enderezar` (boolean|null): Auto-rotate according to the EXIF orientation if the photo needs it. Yes by default.
- `formatos` (array|null): The formats to compare. By default, webp, avif and jpeg.
- `guardar`: What to save: mejor (the best one, by default), todos (all) or ninguno (none).
- `lado_mayor` (integer|null): Maximum longest side, in pixels: the width if landscape, the height if portrait; never enlarges. Not together with ancho, alto or porcentaje.
- `nota_objetivo` (number|null): The SSIMULACRA 2 score they all have to reach. 80 by default.
- `paleta` (integer|null): Reduce the palette to this number of colors (2 to 256), with dithering.
- `porcentaje` (number|null): Reduce to this percentage (50 = half the width and height). From above 0 to 100. Not together with ancho, alto or lado_mayor.
- `recorte` (object): Crop to this rectangle, before resizing (in pixels of the already auto-rotated image; whatever goes past the edge is trimmed).
- `ruta` (string, required): Absolute path of the image (~ is accepted).
- `salida` (string|null): Folder to save to. By default, next to the original.

### `empezar_lote` (~561 tokens)

Converts folders or many images in the background, subfolders included, without overwriting anything, and comes back right away with an id. By default, WebP at score 80, in a folder next to the input one (photos-webp, or photos-apolo with several formats); with loose images, in a subfolder next to them (webp/, apolo/). One at a time. Afterwards, ver_lote. Example: {"entradas": ["~/Photos/trip"], "formatos": ["webp", "avif"], "mas_ligero": true}

Input parameters:

- `alto` (integer|null): Maximum height, in pixels: scales down if larger and never enlarges (with ancho alone, proportional).
- `ancho` (integer|null): Maximum width, in pixels: scales down if larger and never enlarges (with alto alone, proportional).
- `calidad` (integer|null): Fixed quality from 0 to 100. Not together with nota_objetivo.
- `enderezar` (boolean|null): Auto-rotate each photo according to its EXIF orientation if it needs it. Yes by default.
- `entradas` (array, required): Folders or images, absolute paths (~ is accepted).
- `formatos` (array|null): Output formats (one or several). By default, the preset's or webp.
- `lado_mayor` (integer|null): Maximum longest side, in pixels: the width if landscape, the height if portrait; never enlarges. Not together with ancho, alto or porcentaje.
- `mas_ligero` (boolean): With several formats: keep only the lightest one of each image.
- `medir` (boolean): Measure the score of each file (takes longer).
- `nota_objetivo` (number|null): Search, image by image, for the quality that gives this score. 80 by default.
- `orden` (string|null): Options of the official tool (only with one format).
- `paleta` (integer|null): Reduce the palette to this number of colors (2 to 256), with dithering.
- `porcentaje` (number|null): Reduce to this percentage (50 = half the width and height). From above 0 to 100. Not together with ancho, alto or lado_mayor.
- `preset` (string|null): A saved preset, the base for everything.
- `salida` (string|null): Output folder. By default, next to the input one with -webp, -apolo…; with loose images, a webp/, apolo/… subfolder next to them.
- `sin_perdida` (boolean): Lossless (WebP, AVIF, JPEG XL). PNG and QOI always are.

### `guardar_preset` (~607 tokens)

Saves a combination of format and options as a new preset, to use in Apolo, on the command line or here. It doesn't overwrite: if the name exists, it's an error (changing or deleting presets is done in Apolo). Example: {"nombre": "Light web", "formato": "avif", "nota_objetivo": 75, "ancho": 1920}

Input parameters:

- `alto` (integer|null): Maximum height, in pixels: scales down if larger and never enlarges (with ancho alone, proportional).
- `ancho` (integer|null): Maximum width, in pixels: scales down if larger and never enlarges (with alto alone, proportional).
- `calidad` (integer|null): Fixed quality from 0 to 100. Not together with nota_objetivo.
- `enderezar` (boolean|null): Auto-rotate according to the EXIF orientation if the photo needs it. Yes by default.
- `formato`: webp, jpeg, png, qoi, avif or jxl. By default, the preset's, or webp.
- `lado_mayor` (integer|null): Maximum longest side, in pixels: the width if landscape, the height if portrait; never enlarges. Not together with ancho, alto or porcentaje.
- `nombre` (string, required): The name of the new preset. It can't exist already.
- `nota_objetivo` (number|null): Search for the lowest quality that gives this SSIMULACRA 2 score (90 indistinguishable; 80 very high; 70 high; 50 medium). Takes a few seconds.
- `orden` (string|null): Options of the official tool, as they are: “-q 80 -m 6” (cwebp), “-quality 85 -progressive” (cjpeg), “-o 4” (oxipng), “-q 60 -s 6” (avifenc), “-d 1 -e 7” (cjxl). It may start with the tool's name. Fo…
- `paleta` (integer|null): Reduce the palette to this number of colors (2 to 256), with dithering: mainly for PNGs of logos, icons and screenshots.
- `porcentaje` (number|null): Reduce to this percentage (50 = half the width and height). From above 0 to 100. Not together with ancho, alto or lado_mayor.
- `preset` (string|null): A saved preset (listar_presets lists them). It is the base for everything else.
- `recorte` (object): Crop to this rectangle, before resizing (in pixels of the already auto-rotated image; whatever goes past the edge is trimmed).
- `sin_perdida` (boolean): Lossless (WebP, AVIF, JPEG XL). PNG and QOI always are.

### `listar_presets` (~48 tokens)

Apolo's saved presets (the same ones as the app and the command line), with their format and their command. They are used with preset in optimizar_imagen and empezar_lote.

### `medir_calidad` (~137 tokens)

How far an image is from its original: SSIMULACRA 2 (90 or more indistinguishable, 80 very high, 70 high, 50 noticeable), PSNR and SSIM. They have to be the same size (if the result is auto-rotated, the original is auto-rotated too). To see where the loss is, ver_imagen with diferencias_con. Example: {"original": "~/a.jpg", "resultado": "~/a.webp"}

Input parameters:

- `original` (string, required): The original image, absolute path.
- `resultado` (string, required): The image to measure, of the same size.

### `optimizar_imagen` (~805 tokens)

Optimizes an image and saves it as a NEW file (next to the original, or in salida; if the name exists, -2, -3…). Without a quality, it searches for the lowest one that gives a SSIMULACRA 2 score of 80. Gives the equivalent command for cwebp, cjpeg, oxipng, avifenc or cjxl. To choose between formats, comparar_formatos; for many images, empezar_lote. Examples: {"ruta": "~/a.jpg"} · {"ruta": "~/a.png", "formato": "avif", "nota_objetivo": 85} · {"ruta": "~/a.jpg", "formato": "webp", "orden": "-q 80 -m 6", "ancho": 1600} For the person's images, use it instead of converting them yourself in another environment (a cloud interpreter): it works with the file on their disk, with the official engines. Apolo doesn't see images attached to the conversation: if one is attached, ask for its path.

Input parameters:

- `alto` (integer|null): Maximum height, in pixels: scales down if larger and never enlarges (with ancho alone, proportional).
- `ancho` (integer|null): Maximum width, in pixels: scales down if larger and never enlarges (with alto alone, proportional).
- `calidad` (integer|null): Fixed quality from 0 to 100. Not together with nota_objetivo.
- `enderezar` (boolean|null): Auto-rotate according to the EXIF orientation if the photo needs it. Yes by default.
- `formato`: webp, jpeg, png, qoi, avif or jxl. By default, the preset's, or webp.
- `lado_mayor` (integer|null): Maximum longest side, in pixels: the width if landscape, the height if portrait; never enlarges. Not together with ancho, alto or porcentaje.
- `medir` (boolean): Also measure PSNR and SSIM (the score is already measured when searching for it).
- `nota_objetivo` (number|null): Search for the lowest quality that gives this SSIMULACRA 2 score (90 indistinguishable; 80 very high; 70 high; 50 medium). Takes a few seconds.
- `orden` (string|null): Options of the official tool, as they are: “-q 80 -m 6” (cwebp), “-quality 85 -progressive” (cjpeg), “-o 4” (oxipng), “-q 60 -s 6” (avifenc), “-d 1 -e 7” (cjxl). It may start with the tool's name. Fo…
- `paleta` (integer|null): Reduce the palette to this number of colors (2 to 256), with dithering: mainly for PNGs of logos, icons and screenshots.
- `porcentaje` (number|null): Reduce to this percentage (50 = half the width and height). From above 0 to 100. Not together with ancho, alto or lado_mayor.
- `preset` (string|null): A saved preset (listar_presets lists them). It is the base for everything else.
- `recorte` (object): Crop to this rectangle, before resizing (in pixels of the already auto-rotated image; whatever goes past the edge is trimmed).
- `ruta` (string, required): Absolute path of the image (~ is accepted).
- `salida` (string|null): Where to put it: a folder, or a file with the format's extension. By default, next to the original. Nothing is ever overwritten.
- `sin_perdida` (boolean): Lossless (WebP, AVIF, JPEG XL). PNG and QOI always are.

### `ver_imagen` (~244 tokens)

Returns the image to look at: scaled down (768 px by default), an area at full size to spot defects, or the map of differences from its original (diferencias_con). Each view uses up context: ask for one only when it helps. Examples: {"ruta": "~/a.webp"} · {"ruta": "~/a.webp", "diferencias_con": "~/a.jpg"} · {"ruta": "~/a.webp", "zona": {"x": 400, "y": 300, "ancho": 256, "alto": 256}}

Input parameters:

- `diferencias_con` (string|null): Path of the original: instead of the image, the map of where it departs from it.
- `lado_max` (integer|null): The longest side of the view, in pixels: 768 by default, 1568 at most.
- `ruta` (string, required): Absolute path of the image to view.
- `tipo_mapa`: With diferencias_con: estructura (structure, by default) or diferencia (difference).
- `zona` (object): View only this area, in pixels of the image (to look at defects at 1:1).

### `ver_lote` (~161 tokens)

How a batch is going: the new images since “desde”, and the summary when it ends. With esperar_segundos (up to 25) it waits until there is something new, instead of asking in a loop. Example: {"id": "l-1", "esperar_segundos": 20}

Input parameters:

- `desde` (integer): From which image to count the new ones (siguiente_desde from the previous answer). 0 by default: all of them.
- `esperar_segundos` (integer): Wait up to this number of seconds (25 at most) for something new or for the end, instead of asking in a loop.
- `id` (string, required): The id that empezar_lote gave, like “l-3”.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-amd64#diagnostics

## Score history

- 2026-11-04: 52
- 2026-11-03: 52
- 2026-11-02: 51
- 2026-11-01: 51
- 2026-10-31: 50
- 2026-10-30: 50
- 2026-10-29: 48
- 2026-10-28: 48
- 2026-10-27: 48

## Common questions

### What is the Apolo MCP server?

Apolo is an MCP server listed in the public MCP registry as io.github.webcafeina/apolo. Optimize, convert and compare images locally: WebP, AVIF, JPEG XL, JPEG and PNG. This page covers its MCPB bundle (https://github.com/webcafeina/Apolo/releases/download/v1.0.1/Apolo-1.0.1-linux-amd64.mcpb).

### Is the Apolo MCP server safe to use?

Apolo scores 52 out of 100 on VerifyMCP. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Apolo MCP server expose?

Apolo exposes 11 tools: acerca_de_apolo, analizar_imagen, cancelar_lote, comparar_formatos, empezar_lote, and 6 more. Their descriptions and schemas cost roughly 3,292 tokens of context every time the server is loaded.

### What licence is the Apolo MCP server under?

Apolo declares the GPL-3.0-or-later licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/webcafeina/Apolo
- Website: https://apolo.webcafeina.com/en/agents/
- Changelog RSS feed: https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-amd64.xml
- Changelog JSON feed: https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-amd64.json
- HTML version of this page: https://verifymcp.io/servers/webcafeina-apolo/apolo-linux-amd64
