# Galley Render Muse connector

From musedirectory.ai, the independent directory of Meta Muse connectors. Not affiliated with Meta.

## Galley Render

Generate PDFs and images from templates and data: invoices, certificates, reports and cards.

- Record: https://musedirectory.ai/connector/galley-render
- Category: Developer Tools
- Developer: Galley (https://galleyrender.com)
- Muse status: Extra setup. Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
- Health: Working, 1206ms, checked 2026-09-28T08:46:02Z
- Endpoint: https://mcp.galleyrender.com/mcp
- Auth: No account needed; Pricing: unknown
- Screening: Screened, no issues found (2026-09-24T13:56:52Z)
- Source: Found in the official MCP Registry (com.galleyrender/galley-render) https://registry.modelcontextprotocol.io/v0/servers?search=com.galleyrender%2Fgalley-render

Render invoices, certificates, reports, cards and custom documents from HTML templates and JSON data into PDF, PNG, JPG or WebP. Includes a starter library of templates and supports custom template creation with versioning.

Example request: "Generate an invoice PDF from my customer data and send it to them."

How to connect: Not in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use Galley Render to help me. It is a free service with an MCP server at https://mcp.galleyrender.com/mcp. It does not need an API key. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Tools:
- 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, certificate and more) already loaded. Free.
- 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 template is `update_template`, not this. Fre
- 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 the new version starts with a cold cache. `e
- 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 before a batch, or whenever you are assembli
- 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 user. Anything with a `webhook_url`, `async: t
- 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 plan's retention). Past `expires_at` the f
- 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 it before a large batch. Free.
- 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 say what it costs. Nothing is charged, 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 refund — deliberately — so if you are asked 
- 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 authenticated**: `header` (a key on the HTTP connection
- 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* set a header, prefer that: it is per-conne
- 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 this on any machine that is not yours, an
- 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({})` mints the new key and shows it **once**; it re
- 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 person the code.** The link opens a page tha

Screening checks:
- MCP handshake: pass (Answered in 365ms)
- Domain against threat feeds (Cloudflare security DNS): pass (mcp.galleyrender.com, galleyrender.com not flagged)
- Published packages against the OSV malicious-package database: n/a (No npm or PyPI package published)
- Hidden instructions or invisible characters in tool text: pass (16 tools read, nothing found)
- Inputs asking for passwords, card numbers or seed phrases: pass (None found)
- Domain and redirects: pass (Domain registered 8 days ago)
- AI review of purpose and tool behavior: pass (No concerns)
