_ registry / mcp streamable-http · checked 6h ago

cofferdock

https://api.cofferdock.com

Registry code: 58b7dc572014258d

api record

Cofferdock gives you 25 tools that produce real files and checks: HTML to image (PNG/JPEG/WebP), HTML to PDF, website screenshots, QR codes, charts from data, PDF editing (merge, split, rotate, watermark, page numbers, fill forms, extract text, metadata, password), image resizing and conversion, zip files, and validators for emails, phones and IBANs.

Tips:

endpoint
https://api.cofferdock.com/mcp
protocol
streamable-http ·2025-06-18
authentication
bearer
public key
none — nobody has proven they own this listing
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
151ms

last good check

priced tools
0

of 26 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 26 tools
26 never probed 0 of 26 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • hash unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 1000000,
          "description": "The text to hash."
        },
        "encoding": {
          "enum": [
            "hex",
            "base64"
          ],
          "type": "string",
          "default": "hex",
          "description": "How to write the result: \"hex\" (default) or \"base64\"."
        },
        "algorithm": {
          "enum": [
            "md5",
            "sha1",
            "sha256",
            "sha512"
          ],
          "type": "string",
          "default": "sha256",
          "description": "Hash algorithm: \"md5\", \"sha1\", \"sha256\" (default) or \"sha512\"."
        }
      }
    }
    arguments 33 lines
  • get_status unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • html_to_image unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "data": {
          "type": "object",
          "description": "Texts for the template, e.g. { \"name\": \"Jane Doe\", \"course\": \"n8n basics\" } for \"certificate\". Plain text only: everything is escaped. Fields you leave out keep the example text.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "html": {
          "type": "string",
          "description": "The HTML to render (max 5 MB). Put the CSS inline or in a <style> tag. Required unless you use template."
        },
        "lang": {
          "enum": [
            "en",
            "es"
          ],
          "type": "string",
          "default": "en",
          "description": "Language of the example texts of the template."
        },
        "width": {
          "type": "integer",
          "default": 1200,
          "maximum": 3840,
          "minimum": 100,
          "description": "Image width in pixels (100-3840). Default 1200."
        },
        "format": {
          "enum": [
            "png",
            "jpeg",
            "webp"
          ],
          "type": "string",
          "default": "png",
          "description": "Image format: \"png\" (lossless, default), \"jpeg\" or \"webp\"."
        },
        "height": {
          "type": "integer",
          "default": 630,
          "maximum": 2160,
          "minimum": 100,
          "description": "Image height in pixels (100-2160). Default 630, the standard social-card (Open Graph) proportion."
        },
        "quality": {
          "type": "integer",
          "default": 90,
          "maximum": 100,
          "minimum": 1,
          "description": "For jpeg and webp."
        },
        "wait_ms": {
          "type": "integer",
          "default": 0,
          "maximum": 5000,
          "minimum": 0,
          "description": "Extra wait before the snapshot."
        },
        "template": {
          "enum": [
            "social",
            "og",
            "invoice",
            "receipt",
            "certificate",
            "youtube"
          ],
          "type": "string",
          "description": "Use one of our ready-made designs instead of sending html. Fields, example texts and sizes: https://cofferdock.com/templates.json"
        },
        "full_page": {
          "type": "boolean",
          "default": false,
          "description": "Capture the whole content height instead of the viewport."
        }
      }
    }
    arguments 80 lines
  • html_to_pdf unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "data": {
          "type": "object",
          "description": "Texts for the template, e.g. { \"name\": \"Jane Doe\", \"course\": \"n8n basics\" } for \"certificate\". Plain text only: everything is escaped. Fields you leave out keep the example text.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "html": {
          "type": "string",
          "description": "The HTML to render (max 5 MB). Required unless you use template."
        },
        "lang": {
          "enum": [
            "en",
            "es"
          ],
          "type": "string",
          "default": "en",
          "description": "Language of the example texts of the template."
        },
        "scale": {
          "type": "number",
          "default": 1,
          "maximum": 2,
          "minimum": 0.1,
          "description": "Content scale factor (0.1-2). Default 1; use a value below 1 to fit more on each page."
        },
        "format": {
          "enum": [
            "A4",
            "A3",
            "A5",
            "Letter",
            "Legal",
            "Tabloid"
          ],
          "type": "string",
          "default": "A4",
          "description": "Paper size."
        },
        "margin": {
          "type": "integer",
          "default": 0,
          "maximum": 100,
          "minimum": 0,
          "description": "Margin in millimetres, same on all four sides."
        },
        "template": {
          "enum": [
            "social",
            "og",
            "invoice",
            "receipt",
            "certificate",
            "youtube"
          ],
          "type": "string",
          "description": "Use one of our ready-made designs instead of sending html. Fields, example texts and sizes: https://cofferdock.com/templates.json"
        },
        "landscape": {
          "type": "boolean",
          "default": false,
          "description": "true = landscape page, false (default) = portrait."
        },
        "print_background": {
          "type": "boolean",
          "default": true,
          "description": "Print background colours and images."
        }
      }
    }
    arguments 74 lines
  • validate_email unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "maxLength": 254,
          "description": "The email address to check."
        },
        "check_mx": {
          "type": "boolean",
          "default": true,
          "description": "true (default) = also check that the domain can receive email (MX records)."
        }
      }
    }
    arguments 18 lines
  • generate_uuid unknown never probed

    Generate UUIDs (v4). Returns 1 to 100 random UUIDs. One credit per call regardless of count. Costs 1 credit per call.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "count": {
          "type": "integer",
          "default": 1,
          "maximum": 100,
          "minimum": 1,
          "description": "How many UUIDs (version 4) to generate, from 1 to 100. Default 1."
        }
      }
    }
    arguments 13 lines
  • split_pdf unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file",
        "ranges"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "ranges": {
          "type": "string",
          "description": "Required. e.g. \"1-3,5,7-9\" (one output file per comma-separated group)."
        }
      }
    }
    arguments 18 lines
  • slugify unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 2000,
          "description": "The text to turn into a URL-friendly slug (lowercase, accents removed, words joined by hyphens)."
        },
        "separator": {
          "type": "string",
          "default": "-",
          "description": "1 to 3 characters: lowercase letters, digits, underscore or hyphen."
        }
      }
    }
    arguments 18 lines
  • protect_pdf unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file",
        "password"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "password": {
          "type": "string",
          "description": "The password that will be required to open the PDF."
        }
      }
    }
    arguments 18 lines
  • rotate_pdf unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "angle": {
          "enum": [
            0,
            90,
            180,
            270
          ],
          "type": "integer",
          "default": 90,
          "description": "Clockwise rotation in degrees: 0, 90, 180 or 270. Default 90."
        },
        "pages": {
          "type": "string",
          "description": "Pages to act on, 1-indexed, e.g. \"1-3,5,7-9\". Default: all pages."
        }
      }
    }
    arguments 28 lines
  • validate_phone unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "phone"
      ],
      "properties": {
        "phone": {
          "type": "string",
          "maxLength": 40,
          "description": "The phone number to validate. Use the international format with the country code, e.g. \"+34600000000\"."
        },
        "country": {
          "type": "string",
          "maxLength": 2,
          "minLength": 2,
          "description": "ISO 3166-1 alpha-2, e.g. \"ES\", \"GB\"."
        }
      }
    }
    arguments 19 lines
  • validate_iban unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "iban"
      ],
      "properties": {
        "iban": {
          "type": "string",
          "maxLength": 80,
          "description": "The IBAN to validate, e.g. \"ES9121000418450200051332\"."
        }
      }
    }
    arguments 13 lines
  • screenshot_url unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "Public http(s) URL to capture."
        },
        "width": {
          "type": "integer",
          "default": 1280,
          "maximum": 3840,
          "minimum": 100,
          "description": "Browser window width in pixels (100-3840). Default 1280."
        },
        "format": {
          "enum": [
            "png",
            "jpeg"
          ],
          "type": "string",
          "default": "png",
          "description": "Image format: \"png\" (default) or \"jpeg\"."
        },
        "height": {
          "type": "integer",
          "default": 800,
          "maximum": 2160,
          "minimum": 100,
          "description": "Browser window height in pixels (100-2160). Default 800. Ignored if full_page is true."
        },
        "quality": {
          "type": "integer",
          "default": 90,
          "maximum": 100,
          "minimum": 1,
          "description": "JPEG only."
        },
        "wait_ms": {
          "type": "integer",
          "default": 0,
          "maximum": 5000,
          "minimum": 0,
          "description": "Extra time to wait after the page loads and before capturing, in milliseconds (0-5000). Use it for pages that render late. Default 0."
        },
        "full_page": {
          "type": "boolean",
          "default": false,
          "description": "true = capture the whole scrollable page, not just the first screen. Default false."
        }
      }
    }
    arguments 55 lines
  • generate_qr unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "data"
      ],
      "properties": {
        "ecc": {
          "enum": [
            "L",
            "M",
            "Q",
            "H"
          ],
          "type": "string",
          "default": "M",
          "description": "Error correction level."
        },
        "dark": {
          "type": "string",
          "default": "#000000",
          "pattern": "^#?[0-9a-fA-F]{6}$",
          "description": "Colour of the dots."
        },
        "data": {
          "type": "string",
          "maxLength": 1500,
          "description": "The link or text to encode. \"url\" and \"text\" are accepted as aliases."
        },
        "size": {
          "type": "integer",
          "default": 512,
          "maximum": 2000,
          "minimum": 64,
          "description": "Side in pixels."
        },
        "light": {
          "type": "string",
          "default": "#ffffff",
          "pattern": "^#?[0-9a-fA-F]{6}$",
          "description": "Background colour."
        },
        "format": {
          "enum": [
            "png",
            "svg"
          ],
          "type": "string",
          "default": "png",
          "description": "Image format: \"png\" (default) or \"svg\" (vector: scales without losing quality)."
        },
        "margin": {
          "type": "integer",
          "default": 2,
          "maximum": 20,
          "minimum": 0,
          "description": "Quiet zone, in modules."
        }
      }
    }
    arguments 59 lines
  • data_to_chart unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "type",
        "labels",
        "series"
      ],
      "properties": {
        "type": {
          "enum": [
            "bar",
            "line",
            "pie",
            "doughnut",
            "radar"
          ],
          "type": "string",
          "description": "Chart type: \"bar\", \"line\", \"pie\", \"doughnut\" or \"radar\"."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Optional title shown above the chart."
        },
        "width": {
          "type": "integer",
          "default": 800,
          "maximum": 2000,
          "minimum": 200,
          "description": "Chart width in pixels (200-2000). Default 800."
        },
        "format": {
          "enum": [
            "png",
            "svg"
          ],
          "type": "string",
          "default": "png",
          "description": "Image format: \"png\" (default) or \"svg\"."
        },
        "height": {
          "type": "integer",
          "default": 500,
          "maximum": 2000,
          "minimum": 200,
          "description": "Chart height in pixels (200-2000). Default 500."
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxItems": 50,
          "minItems": 1,
          "description": "Category names, 1 to 50 strings of up to 100 characters each: the x axis for bar and line charts, the slices for pie and doughnut, the axes for radar."
        },
        "series": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "description": "Same length as labels."
              },
              "name": {
                "type": "string",
                "maxLength": 100
              }
            }
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "Data series, 1 to 10. Each item is {\"name\": \"Series name\", \"data\": [numbers]} with one number per label. Pie and doughnut charts use only the first series."
        }
      }
    }
    arguments 84 lines
  • transform_image unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "fit": {
          "enum": [
            "cover",
            "contain",
            "fill",
            "inside",
            "outside"
          ],
          "type": "string",
          "default": "cover",
          "description": "How to fit when both width and height are given."
        },
        "file": {
          "type": "string",
          "description": "The image, base64-encoded.",
          "contentEncoding": "base64"
        },
        "width": {
          "type": "integer",
          "maximum": 8000,
          "minimum": 1,
          "description": "Target width in pixels (1-8000). If you leave height empty, the aspect ratio is kept."
        },
        "format": {
          "enum": [
            "jpeg",
            "png",
            "webp",
            "avif"
          ],
          "type": "string",
          "description": "Output format (default: same as input)."
        },
        "height": {
          "type": "integer",
          "maximum": 8000,
          "minimum": 1,
          "description": "Target height in pixels (1-8000). If you leave width empty, the aspect ratio is kept."
        },
        "quality": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Compression quality from 1 to 100 for lossy formats (JPEG, WebP): higher = better image and bigger file."
        }
      }
    }
    arguments 53 lines
  • merge_pdfs unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "files"
      ],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": "string",
            "contentEncoding": "base64"
          },
          "maxItems": 20,
          "minItems": 2,
          "description": "The PDFs, base64-encoded, in order."
        }
      }
    }
    arguments 18 lines
  • watermark_pdf unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "text": {
          "type": "string",
          "maxLength": 200,
          "description": "Watermark text. Provide text or image, not both."
        },
        "color": {
          "type": "string",
          "default": "#808080",
          "pattern": "^#?[0-9a-fA-F]{6}$",
          "description": "Text only."
        },
        "image": {
          "type": "string",
          "description": "Watermark image (PNG or JPEG), base64.",
          "contentEncoding": "base64"
        },
        "pages": {
          "type": "string",
          "description": "Pages to act on, 1-indexed, e.g. \"1-3,5,7-9\". Default: all pages."
        },
        "scale": {
          "type": "number",
          "default": 0.3,
          "maximum": 1,
          "minimum": 0.05,
          "description": "Image only: width as a fraction of the page width."
        },
        "opacity": {
          "type": "number",
          "default": 0.3,
          "maximum": 1,
          "minimum": 0.05,
          "description": "Watermark opacity from 0.05 (almost invisible) to 1 (solid). Default 0.3."
        },
        "position": {
          "enum": [
            "center",
            "top-left",
            "top-right",
            "bottom-left",
            "bottom-right"
          ],
          "type": "string",
          "default": "center",
          "description": "Where the watermark goes: \"center\" (default), \"top-left\", \"top-right\", \"bottom-left\" or \"bottom-right\"."
        },
        "rotation": {
          "type": "number",
          "default": 45,
          "maximum": 360,
          "minimum": -360,
          "description": "Rotation of the watermark in degrees (-360 to 360). Default 45 (diagonal)."
        },
        "font_size": {
          "type": "number",
          "default": 48,
          "maximum": 200,
          "minimum": 8,
          "description": "Text only."
        }
      }
    }
    arguments 73 lines
  • fill_pdf_form unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "data": {
          "type": "object",
          "description": "Field values: { \"fieldName\": \"value\", \"checkbox\": true }. As a query parameter it must be a JSON string.",
          "additionalProperties": true
        },
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "flatten": {
          "type": "boolean",
          "default": false,
          "description": "true = turn the filled fields into plain page content so they can no longer be edited. Default false (the form stays editable)."
        },
        "inspect": {
          "type": "boolean",
          "default": false,
          "description": "Only list the fields."
        }
      }
    }
    arguments 28 lines
  • extract_pdf_text unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "pages": {
          "type": "boolean",
          "default": false,
          "description": "Also return the text split by page."
        }
      }
    }
    arguments 18 lines
  • add_pdf_page_numbers unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "color": {
          "type": "string",
          "default": "#000000",
          "pattern": "^#?[0-9a-fA-F]{6}$",
          "description": "Text color as a hex code, e.g. \"#000000\" (black, default)."
        },
        "pages": {
          "type": "string",
          "description": "Pages to act on, 1-indexed, e.g. \"1-3,5,7-9\". Default: all pages."
        },
        "start": {
          "type": "integer",
          "default": 1,
          "maximum": 100000,
          "minimum": 0,
          "description": "Number shown on the first page (default 1)."
        },
        "format": {
          "type": "string",
          "default": "{n}",
          "description": "e.g. \"Page {n} of {total}\"."
        },
        "margin": {
          "type": "number",
          "default": 24,
          "maximum": 200,
          "minimum": 0,
          "description": "Distance from the page edge to the number, in points (0-200). Default 24."
        },
        "position": {
          "enum": [
            "bottom-center",
            "bottom-left",
            "bottom-right",
            "top-center",
            "top-left",
            "top-right"
          ],
          "type": "string",
          "default": "bottom-center",
          "description": "Where to print the number: \"bottom-center\" (default), \"bottom-left\", \"bottom-right\", \"top-center\", \"top-left\" or \"top-right\"."
        },
        "font_size": {
          "type": "number",
          "default": 10,
          "maximum": 72,
          "minimum": 6,
          "description": "Font size in points (6-72). Default 10."
        }
      }
    }
    arguments 62 lines
  • create_zip unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "files"
      ],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "content"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "File name inside the zip, optionally with folders."
              },
              "content": {
                "type": "string",
                "contentEncoding": "base64"
              }
            }
          },
          "maxItems": 50,
          "minItems": 1,
          "description": "The files to put in the zip (up to 50). Each item is {\"name\": \"report.pdf\", \"content\": \"<the file in base64>\"}."
        }
      }
    }
    arguments 31 lines
  • pdf_metadata unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "title": {
          "type": "string",
          "description": "Document title to write into the PDF."
        },
        "author": {
          "type": "string",
          "description": "Author name."
        },
        "creator": {
          "type": "string",
          "description": "Application that created the original document."
        },
        "subject": {
          "type": "string",
          "description": "Document subject."
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of keywords (strings)."
        },
        "producer": {
          "type": "string",
          "description": "Application that produced the PDF."
        },
        "creation_date": {
          "type": "string",
          "format": "date-time",
          "description": "Creation date in ISO 8601 format, e.g. \"2026-09-26T10:00:00Z\"."
        },
        "modification_date": {
          "type": "string",
          "format": "date-time",
          "description": "Last modification date in ISO 8601 format, e.g. \"2026-09-26T10:00:00Z\"."
        }
      }
    }
    arguments 50 lines
  • images_to_pdf unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "images"
      ],
      "properties": {
        "images": {
          "type": "array",
          "items": {
            "type": "string",
            "contentEncoding": "base64"
          },
          "maxItems": 20,
          "minItems": 1,
          "description": "The images to include, one per page and in order: 1 to 20 base64-encoded PNG or JPEG strings (about 4 MB in total)."
        },
        "page_size": {
          "enum": [
            "auto",
            "A4",
            "A3",
            "A5",
            "Letter",
            "Legal",
            "Tabloid"
          ],
          "type": "string",
          "default": "auto",
          "description": "Page size: \"auto\" (default: each page matches its image), \"A4\", \"A3\", \"A5\", \"Letter\", \"Legal\" or \"Tabloid\"."
        }
      }
    }
    arguments 32 lines
  • pdf_to_images unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "pages": {
          "type": "string",
          "description": "Pages to act on, 1-indexed, e.g. \"1-3,5,7-9\". Default: all pages."
        },
        "scale": {
          "type": "number",
          "default": 1.5,
          "maximum": 4,
          "minimum": 0.5,
          "description": "Resolution multiplier (0.5-4). Default 1.5; higher = sharper and larger images."
        }
      }
    }
    arguments 24 lines
  • unprotect_pdf unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "file",
        "password"
      ],
      "properties": {
        "file": {
          "type": "string",
          "description": "The PDF, base64-encoded.",
          "contentEncoding": "base64"
        },
        "password": {
          "type": "string",
          "description": "The current password."
        }
      }
    }
    arguments 18 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/58b7dc572014258d/badge.svg)](https://brick.blue/agent/58b7dc572014258d)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.