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

mint-utilities

https://data.voiddo.com

Registry code: 1d6973a039742c5d

api record

mint utilities: deterministic file-conversion, rendering, validation and lookup tools (one tool per endpoint of https://data.voiddo.com). No account is needed for the first 20 calls per day per IP. For more, send 'Authorization: Bearer mint_...' (create a key with POST https://data.voiddo.com/v1/keys) and buy prepaid credits ($5 = 500 credits, $9 = 1,000 credits, $29 = 4,000 credits); most calls cost 1 credit. When a tool returns an error with error='payment_required', give the user its checkout_url instead of retrying. File inputs take base64 (or a data: URI) or {"url": "https://..."}; file…

endpoint
https://data.voiddo.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is mint-utilities live?
Yes — it answered the hub's last check (checked 6h ago). It answered 100% of checks over the last 30 days.
Is mint-utilities free to use?
Not measured yet.
What tools does mint-utilities have?
22 tools: ip_lookup, pdf_info, csv_profile, currency_rates, dns_lookup, holidays_lookup, html_to_image, html_to_pdf, ….
Is mint-utilities safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
215ms

last good check

priced tools
0

of 22 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 22 tools
22 never probed 0 of 22 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.

  • ip_lookup unknown never probed

    Reverse DNS name and registry record (network block, name, country) of a public IP address, from open registry data only. Cost: 1 credit per call. Output: JSON. {ip, version, is_private, reverse_dns, reverse_dns_all, network{name, country, ...}}

    mcp-tool

    {
      "type": "object",
      "required": [
        "ip"
      ],
      "properties": {
        "ip": {
          "type": "string",
          "maxLength": 64,
          "minLength": 2,
          "description": "Public IPv4 or IPv6 address"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • pdf_info unknown never probed

    Read a PDF's page count, encryption flag, metadata, page sizes in millimetres, text-layer presence and bookmark count. Cost: 1 credit per call. File input (file): base64 string, data: URI or {"url": "https://..."}. Output: JSON. {page_count, encrypted, password_required, metadata: {title, author, subject, creator, producer}, page_sizes_mm: [{n, width, height}] (first 50 pages), has_text, outline_count}

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": [
            "string",
            "object"
          ],
          "required": [
            "url"
          ],
          "properties": {
            "url": {
              "type": "string",
              "maxLength": 2048
            }
          },
          "description": "The PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB."
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • csv_profile unknown never probed

    Profile a CSV, TSV, XLSX or JSON table: row and column counts plus type, nulls, distinct values, min, max and samples for every column. Cost: 1 credit per call. File input (file): base64 string, data: URI or {"url": "https://..."}. Output: JSON. {rows, cols, columns: [{name, inferred_type, null_count, distinct_count, distinct_capped, min, max, sample}]}

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": [
            "string",
            "object"
          ],
          "required": [
            "url"
          ],
          "properties": {
            "url": {
              "type": "string",
              "maxLength": 2048
            }
          },
          "description": "The table: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB."
        },
        "from": {
          "enum": [
            "csv",
            "tsv",
            "xlsx",
            "json"
          ],
          "type": "string",
          "description": "Source format. Omit to auto-detect."
        },
        "sheet": {
          "type": [
            "string",
            "integer"
          ],
          "minimum": 0,
          "minLength": 1,
          "description": "xlsx input: sheet name, or 0-based sheet index (default: the first sheet)."
        },
        "header": {
          "type": "boolean",
          "default": true,
          "description": "The first row holds column names. false: columns are named col1, col2, ..."
        },
        "encoding": {
          "type": "string",
          "default": "utf-8",
          "maxLength": 40,
          "description": "Text encoding of csv/tsv/json input (utf-8 falls back to cp1252)."
        },
        "max_rows": {
          "type": "integer",
          "default": 200000,
          "maximum": 1000000,
          "minimum": 1,
          "description": "Reject inputs with more data rows than this (413)."
        },
        "delimiter": {
          "type": "string",
          "maxLength": 1,
          "minLength": 1,
          "description": "csv input: field delimiter (default: detected among , ; tab |)."
        }
      },
      "additionalProperties": false
    }
    arguments 68 lines
  • currency_rates unknown never probed

    Latest and historical euro foreign exchange reference rates from the European Central Bank, with conversion between any two of its currencies. Cost: 1 credit per call. Output: JSON. latest: {base, date, rates}; convert: {amount, from, to, rate, result, date_used}; history: {base, quote, series[{date, rate}]}

    mcp-tool

    {
      "type": "object",
      "allOf": [
        {
          "if": {
            "required": [
              "op"
            ],
            "properties": {
              "op": {
                "const": "convert"
              }
            }
          },
          "then": {
            "required": [
              "amount"
            ]
          }
        }
      ],
      "properties": {
        "op": {
          "enum": [
            "latest",
            "convert",
            "history"
          ],
          "type": "string",
          "default": "latest"
        },
        "to": {
          "type": "string",
          "pattern": "^[A-Za-z]{3}$",
          "description": "Currency to convert to"
        },
        "base": {
          "type": "string",
          "default": "EUR",
          "pattern": "^[A-Za-z]{3}$",
          "description": "Base currency (latest, history); for convert the alias of 'from'"
        },
        "date": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
          "description": "YYYY-MM-DD; non-business days use the previous business day. Default: latest day"
        },
        "days": {
          "type": "integer",
          "default": 30,
          "maximum": 365,
          "minimum": 1,
          "description": "history: calendar days ending at 'date' (default the latest day)"
        },
        "from": {
          "type": "string",
          "pattern": "^[A-Za-z]{3}$",
          "description": "Currency to convert from (default EUR)"
        },
        "quote": {
          "type": "string",
          "pattern": "^[A-Za-z]{3}$",
          "description": "Quote currency (history; latest filter; convert alias of 'to')"
        },
        "amount": {
          "type": "number",
          "maximum": 1000000000000,
          "minimum": 0,
          "description": "Amount of the 'from' currency (convert)"
        },
        "quotes": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z]{3}$"
          },
          "maxItems": 40,
          "minItems": 1,
          "description": "Several quote currencies for latest; omit for all",
          "uniqueItems": true
        }
      },
      "additionalProperties": false
    }
    arguments 84 lines
  • dns_lookup unknown never probed

    Look up A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV or PTR records of a public name through the Cloudflare and Google public resolvers. Cost: 1 credit per call. Output: JSON. {name, type, status, records:[{type, value, ttl}], count, resolver, elapsed_ms}

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "all": {
          "type": "boolean",
          "default": false,
          "description": "Query the common set (A, AAAA, CNAME, MX, NS, TXT, SOA, CAA) in one call; 'type' is then ignored"
        },
        "name": {
          "type": "string",
          "maxLength": 253,
          "minLength": 1,
          "description": "Public hostname, e.g. example.com (internationalised names are converted to punycode). For type PTR: an IPv4/IPv6 address or a complete in-addr.arpa / ip6.arpa name."
        },
        "type": {
          "enum": [
            "A",
            "AAAA",
            "MX",
            "TXT",
            "NS",
            "CNAME",
            "SOA",
            "CAA",
            "SRV",
            "PTR"
          ],
          "type": "string",
          "default": "A",
          "description": "Record type"
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • holidays_lookup unknown never probed

    Public holidays of any of about 250 countries and regions for a given year, with optional subdivision, language and category. Cost: 1 credit per call. Output: JSON. {country, year, subdiv, holidays:[{date, name}], count}

    mcp-tool

    {
      "type": "object",
      "required": [
        "country",
        "year"
      ],
      "properties": {
        "year": {
          "type": "integer",
          "maximum": 2100,
          "minimum": 1990
        },
        "subdiv": {
          "type": "string",
          "maxLength": 60,
          "minLength": 1,
          "description": "State / province / region code or name, e.g. BY, Bayern, CA, SCT"
        },
        "country": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "ISO 3166-1 alpha-2 country code, e.g. US, DE, IL"
        },
        "language": {
          "type": "string",
          "pattern": "^[A-Za-z]{2,3}([_-][A-Za-z]{2,4})?$",
          "description": "Language of the holiday names, e.g. de or en_US; default: English where available, else the country's own language"
        },
        "observed": {
          "type": "boolean",
          "default": true,
          "description": "Include substitute days such as \"Christmas Day (observed)\""
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z_]{3,30}$"
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "Holiday categories, default [\"public\"]; e.g. public, bank, school, government, optional, half_day",
          "uniqueItems": true
        }
      },
      "additionalProperties": false
    }
    arguments 47 lines
  • html_to_image unknown never probed

    Render an HTML snippet to a PNG, JPEG or WEBP image at any width, with retina scaling and transparent background. Cost: 3 credits per call. Output: a file (image/png | image/jpeg | image/webp) returned inline, at most 1 MiB. The rendered image

    mcp-tool

    {
      "type": "object",
      "required": [
        "html"
      ],
      "properties": {
        "html": {
          "type": "string",
          "minLength": 1,
          "description": "The HTML document or fragment (UTF-8, up to 2 MB). JavaScript is not executed."
        },
        "width": {
          "type": "integer",
          "default": 1200,
          "maximum": 2560,
          "minimum": 320,
          "description": "Viewport width in CSS px"
        },
        "format": {
          "enum": [
            "png",
            "jpeg",
            "jpg",
            "webp"
          ],
          "type": "string",
          "default": "png"
        },
        "height": {
          "type": "integer",
          "maximum": 16384,
          "minimum": 50,
          "description": "Viewport height in CSS px; omit for a full-page image that fits the content"
        },
        "quality": {
          "type": "integer",
          "default": 90,
          "maximum": 100,
          "minimum": 1,
          "description": "jpeg / webp quality"
        },
        "transparent": {
          "type": "boolean",
          "default": false,
          "description": "Transparent page background (png / webp only)"
        },
        "device_scale_factor": {
          "type": "number",
          "default": 1,
          "maximum": 3,
          "minimum": 1,
          "description": "Pixel density (2 = retina)"
        }
      },
      "additionalProperties": false
    }
    arguments 56 lines
  • html_to_pdf unknown never probed

    Turn an HTML document into a print-ready PDF with page size, margins, orientation and page-numbered header and footer. Cost: 3 credits per call. Output: a file (application/pdf) returned inline, at most 1 MiB. The PDF document

    mcp-tool

    {
      "type": "object",
      "required": [
        "html"
      ],
      "properties": {
        "html": {
          "type": "string",
          "minLength": 1,
          "description": "The HTML document or fragment (UTF-8, up to 2 MB). JavaScript is not executed."
        },
        "scale": {
          "type": "number",
          "default": 1,
          "maximum": 2,
          "minimum": 0.1,
          "description": "Rendering scale"
        },
        "format": {
          "enum": [
            "A4",
            "Letter",
            "Legal",
            "A3",
            "A5"
          ],
          "type": "string",
          "default": "A4",
          "description": "Paper size"
        },
        "landscape": {
          "type": "boolean",
          "default": false
        },
        "margin_mm": {
          "type": "number",
          "default": 15,
          "maximum": 50,
          "minimum": 0,
          "description": "Page margin on all sides, millimetres"
        },
        "footer_text": {
          "type": "string",
          "maxLength": 300,
          "description": "Plain-text page footer; {page} and {pages} are replaced"
        },
        "header_text": {
          "type": "string",
          "maxLength": 300,
          "description": "Plain-text page header; {page} and {pages} are replaced"
        },
        "print_background": {
          "type": "boolean",
          "default": true,
          "description": "Print CSS backgrounds and colours"
        }
      },
      "additionalProperties": false
    }
    arguments 59 lines
  • image_convert unknown never probed

    Convert and resize images between PNG, JPEG, WEBP, GIF, BMP, TIFF and ICO, with quality, fit modes, transparency handling and optional metadata stripping. Cost: 1 credit per call. File input (file): base64 string, data: URI or {"url": "https://..."}. Output: a file (image/png | image/jpeg | image/webp | image/gif | image/bmp | image/tiff | image/x-icon) returned inline, at most 1 MiB. The converted image

    mcp-tool

    {
      "type": "object",
      "required": [
        "file",
        "to"
      ],
      "properties": {
        "to": {
          "enum": [
            "png",
            "jpeg",
            "jpg",
            "webp",
            "gif",
            "bmp",
            "tiff",
            "ico"
          ],
          "type": "string",
          "description": "Target format"
        },
        "fit": {
          "enum": [
            "inside",
            "contain",
            "cover",
            "fill"
          ],
          "type": "string",
          "default": "inside"
        },
        "file": {
          "type": [
            "string",
            "object"
          ],
          "description": "The image: base64 (or data: URI) string, or {\"url\": \"https://...\"}; up to 10 MB"
        },
        "width": {
          "type": "integer",
          "maximum": 8192,
          "minimum": 1,
          "description": "Target width in px"
        },
        "height": {
          "type": "integer",
          "maximum": 8192,
          "minimum": 1,
          "description": "Target height in px"
        },
        "quality": {
          "type": "integer",
          "default": 85,
          "maximum": 100,
          "minimum": 1,
          "description": "jpeg / webp quality (webp 100 = lossless)"
        },
        "background": {
          "type": "string",
          "pattern": "^#[0-9a-fA-F]{6}$",
          "description": "Colour for transparent areas when the target has no alpha, and for contain padding (default white / transparent)"
        },
        "strip_metadata": {
          "type": "boolean",
          "default": true,
          "description": "Drop EXIF / XMP / ICC (colours are converted to sRGB first)"
        }
      },
      "additionalProperties": false
    }
    arguments 70 lines
  • iso_codes unknown never probed

    Look up ISO 3166 country and subdivision codes, ISO 4217 currency codes and ISO 639 language codes by code or name fragment. Cost: 1 credit per call. Output: JSON. {type, query, results:[{alpha_2, alpha_3, numeric, name, ...}], count, total, truncated}

    mcp-tool

    {
      "type": "object",
      "required": [
        "type",
        "query"
      ],
      "properties": {
        "type": {
          "enum": [
            "country",
            "currency",
            "language",
            "subdivision"
          ],
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "default": 10,
          "maximum": 50,
          "minimum": 1
        },
        "query": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "Code or name fragment, case- and accent-insensitive"
        },
        "country": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "Only for type=subdivision: restrict to this country (ISO 3166-1 alpha-2)"
        }
      },
      "additionalProperties": false
    }
    arguments 36 lines
  • json_schema_validate unknown never probed

    Validate a JSON document, or up to 1000 of them, against a JSON Schema (draft 7, 2019-09 or 2020-12) and list every error with its path. Cost: 1 credit per call. Output: JSON. {valid, errors: [{index, path, message, validator}], count}; meta: {draft, instances, truncated?}

    mcp-tool

    {
      "type": "object",
      "required": [
        "schema"
      ],
      "properties": {
        "draft": {
          "enum": [
            "auto",
            "7",
            7,
            "2019-09",
            "2020-12"
          ],
          "default": "auto",
          "description": "JSON Schema draft. auto follows the schema's $schema and defaults to 2020-12."
        },
        "schema": {
          "type": "object",
          "description": "The JSON Schema to validate against."
        },
        "instance": {
          "description": "One JSON value to validate (any type, including null). Use this or instances."
        },
        "instances": {
          "type": "array",
          "maxItems": 1000,
          "minItems": 1,
          "description": "Up to 1000 JSON values validated against the same schema. Use this or instance."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • json_yaml_convert unknown never probed

    Convert text between JSON and YAML with safe parsing, indent, key sorting and minify options, and line-accurate error messages. Cost: 1 credit per call. Output: a file (application/json | application/yaml) returned inline, at most 1 MiB. converted.json or converted.yaml; meta: {from, to}

    mcp-tool

    {
      "type": "object",
      "required": [
        "input"
      ],
      "properties": {
        "to": {
          "enum": [
            "json",
            "yaml"
          ],
          "type": "string",
          "description": "Target format. Default: yaml for JSON input, json for YAML input."
        },
        "from": {
          "enum": [
            "json",
            "yaml",
            "auto"
          ],
          "type": "string",
          "default": "auto",
          "description": "Source format; auto tries JSON first, then YAML."
        },
        "input": {
          "type": "string",
          "description": "The JSON or YAML text to convert (up to 2 MB)."
        },
        "indent": {
          "type": "integer",
          "default": 2,
          "maximum": 8,
          "minimum": 0,
          "description": "Spaces per level. JSON: 0 puts items on their own lines without indentation. YAML: values below 2 are treated as 2."
        },
        "minify": {
          "type": "boolean",
          "default": false,
          "description": "JSON: single line without spaces. YAML: single-line flow style. Overrides indent."
        },
        "sort_keys": {
          "type": "boolean",
          "default": false,
          "description": "Sort object keys alphabetically (default: keep input order)."
        }
      },
      "additionalProperties": false
    }
    arguments 48 lines
  • markdown_render unknown never probed

    Render Markdown to a sanitised HTML page or fragment, or to a PDF, with tables, fenced code, heading anchors, an optional table of contents and a choice of themes. Cost: 1 credit per call. Output: a file (text/html | application/pdf) returned inline, at most 1 MiB. document.html / fragment.html (text/html; charset=utf-8) or document.pdf. meta: {format, theme, title, headings, bytes, pages?}. pdf costs 3 credits, html and fragment 1.

    mcp-tool

    {
      "type": "object",
      "required": [
        "markdown"
      ],
      "properties": {
        "css": {
          "enum": [
            "default",
            "github",
            "plain"
          ],
          "type": "string",
          "description": "Alias of theme"
        },
        "toc": {
          "type": "boolean",
          "default": false,
          "description": "Add a table of contents above the content"
        },
        "theme": {
          "enum": [
            "default",
            "github",
            "plain"
          ],
          "type": "string",
          "default": "default",
          "description": "Built-in stylesheet for html and pdf"
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Page title; default is the first level-1 heading"
        },
        "format": {
          "enum": [
            "html",
            "fragment",
            "pdf"
          ],
          "type": "string",
          "default": "html",
          "description": "html = complete page (1 credit), fragment = content only (1 credit), pdf = A4 document (3 credits)"
        },
        "markdown": {
          "type": "string",
          "description": "The Markdown source (up to 1 MB of text)"
        }
      },
      "additionalProperties": false
    }
    arguments 52 lines
  • pdf_merge unknown never probed

    Merge 2 to 20 PDF files into one document in the order given, optionally keeping their bookmarks. Cost in credits: ceil(total pages / 20), minimum 1. File input (files): base64 string, data: URI or {"url": "https://..."}. Output: a file (application/pdf) returned inline, at most 1 MiB. merged.pdf; meta: {page_count, files}

    mcp-tool

    {
      "type": "object",
      "required": [
        "files"
      ],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "object"
            ],
            "required": [
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "maxLength": 2048
              }
            },
            "description": "A PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}."
          },
          "maxItems": 20,
          "minItems": 2,
          "description": "2 to 20 PDFs in merge order; all together up to 10 MB."
        },
        "keep_bookmarks": {
          "type": "boolean",
          "default": true,
          "description": "Keep the bookmarks (outline) of the input files."
        }
      },
      "additionalProperties": false
    }
    arguments 36 lines
  • pdf_split unknown never probed

    Split a PDF into parts by page ranges such as '1-2,5-' or every N pages, returned as one PDF or a zip of parts. Cost in credits: ceil(pages written / 20), minimum 1. File input (file): base64 string, data: URI or {"url": "https://..."}. Output: a file (application/pdf | application/zip) returned inline, at most 1 MiB. part_01.pdf when there is one part, otherwise split.zip holding part_01.pdf ...; meta: {parts, page_count}

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": [
            "string",
            "object"
          ],
          "required": [
            "url"
          ],
          "properties": {
            "url": {
              "type": "string",
              "maxLength": 2048
            }
          },
          "description": "The PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB."
        },
        "ranges": {
          "type": "string",
          "maxLength": 1000,
          "description": "Comma-separated page ranges, one part each: '1-2,5-' ('5-' runs to the last page)."
        },
        "every_n": {
          "type": "integer",
          "maximum": 100000,
          "minimum": 1,
          "description": "Alternative to ranges: parts of this many pages."
        }
      },
      "additionalProperties": false
    }
    arguments 36 lines
  • pdf_text unknown never probed

    Extract the text of a PDF page by page, with page selection and an optional layout-preserving mode. Cost in credits: ceil(pages extracted / 20), minimum 1. File input (file): base64 string, data: URI or {"url": "https://..."}. Output: JSON. {page_count, pages: [{n, text}], chars}; meta.note when the PDF has no text layer.

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": [
            "string",
            "object"
          ],
          "required": [
            "url"
          ],
          "properties": {
            "url": {
              "type": "string",
              "maxLength": 2048
            }
          },
          "description": "The PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB."
        },
        "pages": {
          "type": "string",
          "maxLength": 1000,
          "description": "Pages to extract, e.g. '1-3,7' or '5-' (default: all pages)."
        },
        "layout": {
          "type": "boolean",
          "default": false,
          "description": "Preserve the visual layout (columns, spacing) instead of reading order."
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • qr_code unknown never probed

    Turn text or a URL into a crisp QR code as PNG or SVG, with size and error-correction control. Cost: 1 credit per call. Output: a file (image/png | image/svg+xml) returned inline, at most 1 MiB. The QR image

    mcp-tool

    {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "bg": {
          "type": "string",
          "default": "#ffffff",
          "pattern": "^#[0-9a-fA-F]{6}$"
        },
        "fg": {
          "type": "string",
          "default": "#000000",
          "pattern": "^#[0-9a-fA-F]{6}$"
        },
        "size": {
          "type": "integer",
          "default": 512,
          "maximum": 2048,
          "minimum": 64,
          "description": "Edge length in px (png)"
        },
        "text": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "description": "Text or URL to encode"
        },
        "format": {
          "enum": [
            "png",
            "svg"
          ],
          "type": "string",
          "default": "png"
        },
        "margin": {
          "type": "integer",
          "default": 2,
          "maximum": 10,
          "minimum": 0,
          "description": "Quiet zone in modules"
        },
        "error_correction": {
          "enum": [
            "L",
            "M",
            "Q",
            "H"
          ],
          "type": "string",
          "default": "M"
        }
      },
      "additionalProperties": false
    }
    arguments 57 lines
  • rdap_lookup unknown never probed

    Look up the public registration record of a domain, IP address or AS number from its registry's RDAP service, without personal contact data. Cost: 1 credit per call. Output: JSON. Normalised registration record: domain, IP network or autonomous system

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Domain name (example.com), IPv4/IPv6 address (1.1.1.1) or AS number (AS15169)"
        },
        "fields": {
          "enum": [
            "compact",
            "full"
          ],
          "type": "string",
          "default": "compact",
          "description": "compact: normalised summary; full: summary plus the registry answer without contact data under 'raw'"
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • screenshot unknown never probed

    Capture a public web page as a PNG, JPEG or WEBP image: any viewport size, full page, retina scaling, optional cookie-banner hiding. Free tier only (credits do not apply to this tool). Output: a file (image/png | image/jpeg | image/webp) returned inline, at most 1 MiB. The screenshot

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "maxLength": 120000,
          "minLength": 1,
          "description": "Public http(s) URL (robots.txt is honoured), or an inline data:text/html URL"
        },
        "width": {
          "type": "integer",
          "default": 1280,
          "maximum": 2560,
          "minimum": 320,
          "description": "Viewport width in CSS px"
        },
        "format": {
          "enum": [
            "png",
            "jpeg",
            "jpg",
            "webp"
          ],
          "type": "string",
          "default": "png"
        },
        "height": {
          "type": "integer",
          "default": 800,
          "maximum": 4000,
          "minimum": 240,
          "description": "Viewport height in CSS px"
        },
        "quality": {
          "type": "integer",
          "default": 90,
          "maximum": 100,
          "minimum": 1,
          "description": "jpeg / webp quality"
        },
        "delay_ms": {
          "type": "integer",
          "default": 0,
          "maximum": 3000,
          "minimum": 0,
          "description": "Extra wait after load, before the shot"
        },
        "full_page": {
          "type": "boolean",
          "default": false,
          "description": "Capture the whole scrollable page (capped at 16384 CSS px / 50 megapixels)"
        },
        "device_scale_factor": {
          "type": "number",
          "default": 1,
          "maximum": 3,
          "minimum": 1,
          "description": "Pixel density (2 = retina)"
        },
        "block_cookie_banners": {
          "type": "boolean",
          "default": false,
          "description": "Hide common cookie-consent dialogs (best effort)"
        }
      },
      "additionalProperties": false
    }
    arguments 70 lines
  • svg_to_png unknown never probed

    Render an SVG document to a PNG at a chosen width, height or scale and background; external files, network references and XML entities are never loaded. Cost: 1 credit per call. File input (file): base64 string, data: URI or {"url": "https://..."}. Output: a file (image/png) returned inline, at most 1 MiB. The rendered PNG

    mcp-tool

    {
      "type": "object",
      "properties": {
        "svg": {
          "type": "string",
          "description": "The SVG markup as text (up to 2 MB). Use `file` instead for a base64 / URL / uploaded .svg or .svgz"
        },
        "file": {
          "type": [
            "string",
            "object"
          ],
          "description": "Alternative to `svg`: an .svg or .svgz file as base64, data: URI or {\"url\": \"https://...\"}"
        },
        "scale": {
          "type": "number",
          "maximum": 16,
          "minimum": 0.05,
          "description": "Multiplier of the SVG's own size (default 1); not combinable with width / height"
        },
        "width": {
          "type": "integer",
          "maximum": 8192,
          "minimum": 1,
          "description": "Output width in px (height follows the aspect ratio unless given)"
        },
        "height": {
          "type": "integer",
          "maximum": 8192,
          "minimum": 1,
          "description": "Output height in px (width follows the aspect ratio unless given)"
        },
        "background": {
          "type": "string",
          "default": "transparent",
          "pattern": "^(transparent|#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?)$",
          "description": "transparent, #rrggbb or #rrggbbaa"
        }
      },
      "additionalProperties": false
    }
    arguments 41 lines
  • tabular_convert unknown never probed

    Convert tables between CSV, TSV, XLSX and JSON with format, delimiter and encoding detection, header control and exact number and date handling. Cost in credits: 1 credit; 2 credits when the output is xlsx. File input (file): base64 string, data: URI or {"url": "https://..."}. Output: a file (text/csv | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | application/json) returned inline, at most 1 MiB. The converted table. meta: {rows, cols, from, to, sheet?, sheets?, encoding?, delimiter?}.

    mcp-tool

    {
      "type": "object",
      "required": [
        "file",
        "to"
      ],
      "properties": {
        "to": {
          "enum": [
            "csv",
            "tsv",
            "xlsx",
            "json"
          ],
          "type": "string",
          "description": "Target format."
        },
        "file": {
          "type": [
            "string",
            "object"
          ],
          "required": [
            "url"
          ],
          "properties": {
            "url": {
              "type": "string",
              "maxLength": 2048
            }
          },
          "description": "The table: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB."
        },
        "from": {
          "enum": [
            "csv",
            "tsv",
            "xlsx",
            "json"
          ],
          "type": "string",
          "description": "Source format. Omit to auto-detect."
        },
        "sheet": {
          "type": [
            "string",
            "integer"
          ],
          "minimum": 0,
          "minLength": 1,
          "description": "xlsx input: sheet name, or 0-based sheet index (default: the first sheet)."
        },
        "header": {
          "type": "boolean",
          "default": true,
          "description": "The first row is a header (becomes JSON keys). false: no header row is read or written, and JSON output is an array of arrays."
        },
        "encoding": {
          "type": "string",
          "default": "utf-8",
          "maxLength": 40,
          "description": "Text encoding of csv/tsv/json input. utf-8 falls back to cp1252; any other value is strict."
        },
        "max_rows": {
          "type": "integer",
          "default": 200000,
          "maximum": 1000000,
          "minimum": 1,
          "description": "Reject inputs with more data rows than this (413) instead of truncating silently."
        },
        "delimiter": {
          "type": "string",
          "maxLength": 1,
          "minLength": 1,
          "description": "csv input: field delimiter (default: detected among , ; tab |)."
        },
        "infer_types": {
          "type": "boolean",
          "default": true,
          "description": "csv/tsv input to json/xlsx output: turn exact numbers (and, for xlsx, ISO dates) and true/false into typed values."
        }
      },
      "additionalProperties": false
    }
    arguments 84 lines
  • timezone_convert unknown never probed

    Convert a date and time between IANA time zones with exact daylight-saving handling, inspect a zone's offset and transitions, or list a country's zones. Cost: 1 credit per call. Output: JSON. convert: {input, output, offset_from, offset_to, dst_from, dst_to, utc, ...}; info: {tz, offset, abbreviation, dst, previous_transition, next_transition}; list: {country, zones, count}

    mcp-tool

    {
      "type": "object",
      "properties": {
        "op": {
          "enum": [
            "convert",
            "info",
            "list"
          ],
          "type": "string",
          "default": "convert"
        },
        "tz": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "info: the zone to describe, an IANA name or a fixed offset (from_tz is accepted as an alias). Required for info."
        },
        "query": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "list: only zones whose name contains this text (case-insensitive), e.g. york or europe/"
        },
        "to_tz": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "convert: target zone, an IANA name or a fixed offset. Required for convert."
        },
        "country": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "list: ISO 3166-1 alpha-2 code, e.g. US. Omit to list every zone."
        },
        "from_tz": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "convert: source zone, an IANA name such as Europe/Berlin or a fixed offset such as +05:30. Required when datetime has no offset."
        },
        "datetime": {
          "type": "string",
          "maxLength": 48,
          "minLength": 8,
          "description": "ISO 8601, e.g. 2026-03-29T01:30:00 (wall clock in from_tz / tz) or 2026-03-29T00:30:00Z / 2026-03-29T01:30:00+01:00 (exact instant). Required for convert and info."
        }
      },
      "additionalProperties": false
    }
    arguments 50 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.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 1d6973a039742c5d.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/1d6973a039742c5d/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/1d6973a039742c5d/badge.svg)](https://brick.blue/agent/1d6973a039742c5d?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

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