AI assistants (MCP)
MintRender is a remote MCP server at https://mintrender.com/mcp. An AI assistant can list your templates, render images and PDFs, store images from links and make draft templates for you.
Connect
With sign-in (OAuth). Add a custom connector with the URL https://mintrender.com/mcp. The assistant opens MintRender. Sign in, pick a workspace (only workspaces where you are an owner or an editor), and press Allow. To disconnect it, open Account, Connected apps and press Revoke.
With an API key. For clients that take headers:
{ "mcpServers": { "mintrender": { "url": "https://mintrender.com/mcp", "headers": { "Authorization": "Bearer mr_live_…" } } }}A test key (mr_test_…) works here too. Its files have a watermark and cost nothing.
The tools
Each tool calls the same API route as your own code, with the same checks, credits and errors.
list_templates List templates
Lists the workspace's templates with their sizes and params (the names `render` takes in `data`, with their types and defaults). Call this first.
No inputs.
Reads only.
get_template Get a template
One template: its params, sizes and published versions. Example: {"template": "tpl_3k2jQ8xLm0P4nB7vR2sT"}
| Input | Type | About |
|---|---|---|
template | string | Required. Template id (tpl_…) |
Reads only.
render Render a template
Renders the template's published version with `data` (param name → value) and gives the file URLs; for images up to 1 MB also the image. 1 image or PDF page = 1 credit; the same template and data again is free. Example: {"template": "tpl_3k2j…", "data": {"title": "Ten ways to sell more"}, "format": "png"}
| Input | Type | About |
|---|---|---|
template | string | Required. Template id (tpl_…) |
data | object | Param values; a value is text, an image URL, a colour, or an object of properties |
format | png, jpg, webp, svg, pdf | Default: "png". |
sizes | array | Sizes to make (default ["main"]) |
version | integer | A published version (default: the newest) |
Spends credits or adds a draft or an asset. It never changes or deletes existing work.
render_status Render status
The status and files of a render or job. Example: {"id": "rnd_9x7Lm2Qp8sT4vB0nC6kR"}
| Input | Type | About |
|---|---|---|
id | string | Required. Render id (rnd_…) |
Reads only.
upload_asset_from_url Upload an image from a URL
Fetches a public image (PNG, JPEG, GIF, WebP, SVG) or CSV and stores it; use the answer's `src` (asset:…) in data or a template. Example: {"url": "https://example.com/logo.png"}
| Input | Type | About |
|---|---|---|
url | string | Required. |
name | string |
Spends credits or adds a draft or an asset. It never changes or deletes existing work.
generate_template Make a template from a description
Designs a new draft template from a short description and a size; the user opens it in the editor and publishes it. It never publishes by itself. Example: {"description": "an OG image for a cooking blog, dark, big title, logo bottom left", "size": "1200x630"}
| Input | Type | About |
|---|---|---|
description | string | Required. At most 500 characters. |
size | string | WIDTHxHEIGHT, like 1200x630 Default: "1200x630". |
Spends credits or adds a draft or an asset. It never changes or deletes existing work.
What the tools give back
- Each result has a short text for the assistant and the API's JSON answer as structured content.
renderalso gives the image itself when the first file is a PNG, JPEG or WebP of at most 1 MB, so the assistant can show it.- A sync render that would take long (a PDF over 10 pages, or more than 5 sizes) comes back as a job. The assistant checks it with
render_status. - An error comes back as a tool error with the API's message and the field it is about.
Credits and limits
A connection charges the chosen workspace like an API key. Renders made through MCP count as the source mcp in renders.by_source of GET /v1/usage. The rate limits of the plan apply to each connection, as they do to each key. See Credits and Limits.
What a connection cannot do
A connection made with sign-in works only on the MCP server. Its tokens are refused by every other route. It cannot read or change API keys, billing, members or webhooks, and it cannot publish templates. Templates it makes are drafts. You check and publish them in the editor.
Server details
| Thing | Value |
|---|---|
| Transport | Streamable HTTP. One JSON-RPC message per POST, one JSON answer. No server-sent events and no sessions. GET answers 405. |
| Protocol versions | 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 |
| Auth | An API key, or an OAuth access token (mr_oat_…). Without one, the 401 answer has WWW-Authenticate with resource_metadata. |
| OAuth discovery | /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server |
| OAuth clients | Client ID Metadata Documents, or Dynamic Client Registration at /oauth/register. Public clients only, PKCE with S256, one scope: mcp. |
| Tokens | Access tokens last 1 hour. Refresh tokens last 30 days and change on each use. A refresh token used twice ends the connection. |
| Origin | Requests without an Origin header (servers, command-line tools) are allowed. Browsers must come from our site or an allowed MCP client (by default claude.ai and claude.com). Others get 403 origin. |
Support: write to support@mintrender.com with the request id from the error.
Seen MintRender used for content that breaks our terms? Report it. Questions about the API: support@mintrender.com, with the request id.