# Cofferdock

> Real files for AI assistants: HTML to image/PDF, screenshots, QR, charts, PDF tools, validators.

- name: com.cofferdock/cofferdock
- version: 1.0.1
- connection class: R2 (oauth_consent_once)
- trust: 83/100 flags: no-repository
- quality: 92/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.cofferdock%2Fcofferdock
- tools: https://api.protogrid.dev/v1/servers/com.cofferdock%2Fcofferdock/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "cofferdock": {
      "type": "http",
      "url": "https://api.cofferdock.com/mcp",
      "headers": {
        "x-api-key": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-24d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 92/100 (strong)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 83 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- warn `auth.cimd`: only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 26 of 26 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 25 of 26 tools declare all four hints; missing: get_status (destructiveHint, idempotentHint)
- pass `tools.token_cost`: about 6,209 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 26, about 6,209 tokens to load them all
- tool set hash: 6a1c608bd54fa3eb127690dfe8a020d8
- badge: [![protogrid quality](https://protogrid.dev/badge/com.cofferdock/cofferdock.svg)](https://protogrid.dev/servers/com.cofferdock/cofferdock)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://api.cofferdock.com/mcp (streamable-http, auth oauth2, reachable true, uptime30d 1)

## Packages

_none_

## Tools (26)

- `add_pdf_page_numbers`: Add page numbers to a PDF. Stamps a page number on every page (or on `pages`). The `format` text must contain {n}; it can also use {total}.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `create_zip`: Create a zip from up to 50 files. Packs files of any type into a .zip. Names can include folders ("reports/january.pdf"). Default output is the zip binary.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `data_to_chart`: Data to chart image (bar, line, pie, doughnut, radar). Turns labels and numeric series into a chart image, without a browser. Pie and doughnut accept 1 series only.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `extract_pdf_text`: Extract the text of a PDF. Returns the text of a PDF (not scanned images: there is no OCR). Set pages=true to also get the text page by page.

Costs 1 credit per call.
- `fill_pdf_form`: Fill a PDF form (or list its fields). Fills the fields of an existing PDF form (AcroForm) with the values in `data`. Without `data` (or with inspect=true) it returns the list of fields instead, so you know their names. Set flatten=true to make the result non-editable.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `generate_qr`: QR code (PNG or SVG). Turns a link or any text (max 1500 characters) into a QR code.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `generate_uuid`: Generate UUIDs (v4). Returns 1 to 100 random UUIDs. One credit per call regardless of count.

Costs 1 credit per call.
- `get_status`: Check your plan and remaining credits. Returns your plan, the monthly limit, how many credits you have used and how many are left. Free: does not cost a credit. Useful at the start of a workflow to decide whether to continue.
- `hash`: Hash a text or a file (md5, sha1, sha256, sha512). Returns the hash of a text (JSON) or of a file (raw bytes, max 25 MB). Useful for checksums and deduplication.

Costs 1 credit per call.
- `html_to_image`: HTML to image (PNG, JPEG or WebP). Renders HTML (with inline CSS; fonts and images from the internet are allowed, JavaScript is not executed) into an image. Ideal for social cards, certificates, tickets, OG images or any design you can describe in HTML. Send either html, or template + data to use a ready-made design.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `html_to_pdf`: HTML to PDF. Renders HTML into a PDF (invoices, reports, tickets, contracts). Same rendering engine as /capture: inline CSS, web fonts and images allowed, no JavaScript. Send either html, or template + data (the "invoice" template works well as a PDF).

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `images_to_pdf`: Images to PDF (one image per page). Turns 1 to 20 PNG/JPEG images into a PDF. page_size "auto" makes each page the size of its image; A4, A3, A5, Letter, Legal or Tabloid fit the image inside.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `merge_pdfs`: Merge 2 to 20 PDFs into one. Joins several PDFs in the order given. One credit regardless of how many files.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `pdf_metadata`: Read or write PDF metadata. With no metadata fields it READS title, author, subject, keywords, creator, producer and dates. With any field given it WRITES them and returns the PDF.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `pdf_to_images`: PDF pages to PNG images. Renders each page (or the ones in `pages`) as a PNG. `scale` 1 is 72 dpi; 2 is 144 dpi.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `protect_pdf`: Add a password to a PDF. Encrypts the PDF so it asks for the password when opened. The PDF must not be protected already.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `rotate_pdf`: Rotate pages of a PDF. Rotates all pages, or only the ones in `pages`, by 90, 180 or 270 degrees (added to the rotation each page already has).

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `screenshot_url`: Screenshot of a public web page. Loads a public URL in a real browser (JavaScript enabled) and takes a screenshot. Private networks and internal addresses are blocked.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `slugify`: Text to URL slug. Lowercases, removes accents and keeps only letters and digits separated by `separator`. "Año Nuevo 2026!" becomes "ano-nuevo-2026".

Costs 1 credit per call.
- `split_pdf`: Split a PDF by page ranges. Creates one PDF per range. Ranges use 1-indexed pages: "1-3,5,7-9" gives three files. For one file per page, list every page: "1,2,3". One credit regardless of how many files come out.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `transform_image`: Resize, convert or compress an image. Resizes (with a fit mode), converts between JPEG/PNG/WebP/AVIF and/or compresses ONE image. Provide at least one of width, height, format or quality. Input formats: PNG, JPEG, WebP, AVIF, GIF, TIFF.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `unprotect_pdf`: Remove the password of a PDF (you must know it). Returns an unencrypted copy of a password-protected PDF. It does not crack passwords: the current one is required.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
- `validate_email`: Validate an email address. Checks the format and, by default, that the domain has a real mail server (MX record). An invalid email is still a successful call (valid=false).

Costs 1 credit per call.
- `validate_iban`: Validate an IBAN. Checks the IBAN checksum (ISO 7064) and returns the country and the formatted IBAN.

Costs 1 credit per call.
- `validate_phone`: Validate and format a phone number. Validates an international phone number and returns it in E.164 and international formats, with its country and type (mobile, fixed line...). Give `country` (2-letter code) for numbers without the + prefix.

Costs 1 credit per call.
- `watermark_pdf`: Add a text or image watermark to a PDF. Overlays a text (max 200 characters) OR a PNG/JPEG image on every page (or on `pages`). Image watermarks need the JSON body.

Costs 1 credit per call.

Returns a temporary download link (valid 15 minutes).
