Skip to content
Galley Render logo

Galley Render MCP server

Which MCP servers are Galley Render's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-24

← Back to Galley Render

Whose server it is
  • Registry namecom.galleyrender/galley-renderverified in the MCP registry

The registry name sits under galleyrender.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-24
  • Stateanswerschecked 2026-10-24
  • Tools20
  • Server calls itselfgalley-render
  • Server version0.2.0
  • Protocol version2025-06-18

On 2026-10-24 the server answered initialize and tools/list without a sign-in. First answer in 119 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.
  • Checked on 4 of the 7 days it takes to judge reliability.

Once connected

  • For "Generate an invoice PDF when an order is paid", the likely first call is list_templates.
  • create_template, update_template, create_account change data without a sign-in: anyone with the address can call them.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 4, the first on 2026-10-24
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 4 so far
  • Answeredmeasuring4 of the 7 daily checks it takes to print a share
  • Median first answer137 ms
  • Space in an agent's context≈ 9,926 tokensthe definitions of all its tools (20), which an agent carries on every turn
  • Tool definitionsA · 97 of 100
  • Typed results0 of 20 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a type: in 4 of 20

What an agent can do with it

  • can do · Generate an invoice PDF when an order is paid
  • not sure · Create one event ticket per name on a list
  • not sure · Turn meeting notes into formatted minutes PDFs

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: create_template, update_template, create_account

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers20 tools · read 2026-10-24
  • list_templates

    List the templates on this account, with their latest version number. Start here: rendering needs a template, and this says which ones exist. A brand-new trial account starts with the starter library (invoice, quote, receipt, og-card…

  • get_template

    Fetch one template version: its JSON Schema, its default render options, an example payload and its HTML source. Read the schema before rendering — it is the contract for the `data` argument. Free.

  • create_template

    Create a new template at version 1 from an HTML document with Liquid expressions, plus a JSON Schema for its data. Use this when nothing in list_templates fits. The name must be free on this account — publishing a change to an existing…

  • update_template

    Publish a new immutable version of an existing template. Versions are never edited in place: `invoice@2` keeps rendering exactly as it did, and anything pinned to it is unaffected. Renders cached against the old version stay valid, and…

  • validate_data

    Dry-run a `data` payload against a template's JSON Schema and get back exactly the errors a render would raise — field path, expected type, what was received and a value that would be accepted. Costs nothing and renders nothing. Use it…

  • render

    Render a template plus a JSON payload into a PDF, PNG or JPG and return a signed URL. This is the one tool most calls need. Small jobs finish inside the call and come back `status: "succeeded"` with a `url` you can hand straight to a…

  • get_render

    Fetch a render by id: its status, and a freshly signed URL once it has succeeded. Use it to poll a queued render, or to re-sign a URL that has expired — signed URLs last an hour, the stored file lasts until the render's `expires_at` (the…

  • list_renders

    Recent renders on this account, newest first, with status, template version and a signed URL for each that succeeded. Useful for finding a render whose id you lost, or checking what a batch did. Free.

  • usage

    What this account has spent this period and what is left: renders, billable units by format, cost, the free-tier allowance, the monthly spend cap and — on a keyless trial — how much of the trial's 10 PDF pages or 10 images remains. Check…

  • upgrade

    Get a Stripe Checkout link for a paid plan, for a human to open. **This tool cannot subscribe anybody.** It returns a `url`; a person has to open it and enter a card on Stripe's own page. Hand the URL to the human you are working for and…

  • billing_portal

    Get a link to the Stripe customer portal, for a human to open: change plan, update the card, download invoices, or cancel. This is the only way any of those happen. Galley's API cannot change or cancel a subscription and cannot issue a…

  • whoami

    The account this connection is acting on: its id, its plan, how many PDF pages or images its trial or free tier has left (`renders_remaining`, one per page or image), and — the part no other tool answers — **how this request…

  • link_account

    Point this MCP client at an account you already have, so header-less calls from it stop spending the keyless trial. **This is for clients that cannot set HTTP headers** — Claude.ai custom connectors and ChatGPT apps. If your client *can*…

  • unlink_account

    Undo `link_account`. The binding is deleted and the key that was minted for this client is revoked, so the client can no longer reach the account. Your own API key is untouched — this disconnects a client, it does not close an account. Do…

  • rotate_key

    Get a fresh API key for the account this connection is already acting on — the answer to a key that has been lost, leaked, pasted into a chat window, or left on a machine that is not yours. **Two calls, on purpose.** `rotate_key({})`…

  • create_account

    Turn the keyless trial into a real account and get a permanent API key. Call it once with an email. A link is mailed to that address and the tool returns `status: "pending_verification"` with a four-character `request_code`. **Tell the…

  • import_document

    Turn a document the person already sends — their invoice, letterhead, minutes, a form — into a Galley template that reproduces its look, with a JSON Schema you can fill. PDF only (exported from the program that made it, not a scan), up to…

  • get_import

    The state of a document import and what to do next (`next_step`). Poll it after import_document and after answer_import. - `awaiting_answers`: up to three questions, each with its options, the recommended one, and its evidence — the words…

  • answer_import

    Answer the questions get_import shows on an import in `awaiting_answers`. Each answer is one of its question's option values — nothing else is accepted — plus `path`, a lowercase dotted field name such as `payment_terms`, when the answer…

  • save_import

    Save a `ready` import as a template on this account, once the person has seen the preview and says it is right. Returns the template's ref (`name@1`), its fields, and how to render it. `name` defaults to the one import_document was given…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "galley-render": {
      "type": "http",
      "url": "https://mcp.galleyrender.com/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http galleyrender https://mcp.galleyrender.com/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://mcp.galleyrender.com/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.