
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
- 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.
- 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.
- 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.
- 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 →
list_templatesList 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_templateFetch 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_templateCreate 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_templatePublish 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_dataDry-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…
renderRender 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_renderFetch 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_rendersRecent 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.
usageWhat 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…
upgradeGet 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_portalGet 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…
whoamiThe 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_accountPoint 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_accountUndo `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_keyGet 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_accountTurn 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_documentTurn 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_importThe 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_importAnswer 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_importSave 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/mcpclaude.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.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.