MostlyRender integration
MostlyRender renders templates designed in its editor into PNG, JPEG, WebP or PDF files and screenshots public web pages. Fill a template's named layers per call, render up to 50 files in one request or merge them into one multi-page PDF, mint signed render URLs for img and og:image tags, publish template versions, run generators that render one template for many rows (up to 1,000 per job) with per-row MostlyQR codes, manifests and zip or merged-PDF outputs, and queue cloud video renders of animated QR designs. Every render, screenshot and batch item counts as one render: the Free plan stops at 100 a month (HTTP 402) while paid plans keep rendering and bill overage per 1,000; video renders bill output-seconds and minted QR codes are billed per active member. Not exposed: CSV and image-zip dataset uploads (they need a file upload to a signed URL; send rows inline instead), the keyless signed render-by-URL route (create_signed_url returns those URLs), and the motion-template import used by MostlyQR. Authentication is an API key created in the MostlyRender app under Settings, API keys (mr_live_ for production, mr_test_ for testing), sent as a Bearer token.
Say what should happen.
The workflow builds itself.
What you can do with MostlyRender
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Generator, 5 operations
archive_generatorArchive generatorDELETEAgents: ask firstArchives a generator (never hard-deleted): running jobs are cancelled (unrendered rows are not billed) and its MostlyQR Batch QR is archived, so its codes redirect to the batch's archive page.create_generatorCreate generatorPOSTAgents: ask firstCreates a generator: a published template pinned to a version, a mapping from your row columns to its params, and the formats rendered per row. Feed rows with submit_generator_job (dry run first). qr_policy mints billed QR codes.get_generatorGet generatorGETAgents: ask firstReturns one generator: template, pinned version, mapping, row key, outputs, QR policy, webhook, aggregate settings, status, item count and whether a newer MostlyQR style is available.list_generatorsList generatorsGETAgents: ask firstLists the workspace's generators, newest first, optionally filtered by status (active, paused, archived): template, pinned version, mapping, outputs, QR policy, webhook, status and item count.update_generatorUpdate generatorPATCHAgents: ask firstChanges a generator's name, mapping, row key, outputs, QR policy, webhook URL, status (active or paused) or pinned version; fields left out keep their value. Moving the version re-renders nothing until a rerender job.
Generator job, 5 operations
cancel_generator_jobCancel generator jobPOSTAgents: ask firstCancels a generator job: dispatching stops, in-flight chunks finish, and unrendered items become cancelled and are not billed. Returns the job.get_generator_jobGet generator jobGETAgents: ask firstReturns a generator job's status (creating, queued, running, cancelling, finalizing, done, done_with_errors, failed or cancelled), item counts, progress and, once finished, its files. Use it to poll a job.list_generator_jobsList generator jobsGETAgents: ask firstLists a generator's recent jobs, newest first, with status, item counts, progress, reserved renders and, once finished, their files (signed manifest, zip and merged PDF links).retry_generator_jobRetry generator jobPOSTAgents: ask firstRe-queues only the failed items of a generator job, reserving their renders again (billed). Fails with 409 when nothing failed and 402 when the plan has too few renders left. Returns the job.submit_generator_jobSubmit generator jobPOSTAgents: ask firstUpserts rows (up to 1,000) into a generator and renders those that changed, billed per row and format; dry_run=true validates, previews and prices without rendering. Poll get_generator_job with the returned id.
Generator item, 4 operations
delete_generator_itemDelete generator itemDELETEAgents: ask firstRemoves one row from a generator; its MostlyQR code is retired and then redirects to the batch's archive page.get_generator_itemGet generator itemGETAgents: ask firstReturns one generator item by row key: its params, status, output URLs per format, MostlyQR code, card URL and error. Row values may be personal data.list_generator_itemsList generator itemsGETAgents: ask firstLists a generator's items (one per row), optionally by status (queued, done, failed, cancelled), up to 200 per page: row key, params, output URLs, QR code and error. Row values may be personal data.update_generator_itemUpdate generator itemPATCHAgents: ask firstUpserts one generator row, either a source row passed through the mapping or template params directly; it re-renders (billed) only if the params changed and keeps its QR code. Returns the item and the job.
Video render, 3 operations
cancel_video_renderCancel video renderDELETEAgents: ask firstCancels a queued or running video render; cancelled renders are not charged. A finished render is returned unchanged.create_video_renderCreate video renderPOSTAgents: ask firstQueues a cloud video render of an animated QR design, billed in output-seconds (Pro, Scale, pay-as-you-go). Send confirm=true or a max_cents cap: with neither it starts nothing and fails with 409. Poll get_video_render.get_video_renderGet video renderGETAgents: ask firstReturns a video render's status (queued, running, done, failed or cancelled), progress and quote and, once done, the verified result and a signed download URL valid for 1 hour (call again for a fresh one).
Render, 2 operations
render_batchRender batchPOSTAgents: ask firstRenders up to 50 files in one call, each billed as one render: one template plus items (one modifications object each), or a renders list naming a template per entry. merge=true returns one multi-page PDF instead.render_templateRender templatePOSTAgents: ask firstRenders a template to a PNG, JPEG, WebP or PDF file and returns its id and public URL; counts as one render (billed past the plan allowance). With async, webhookUrl or notifyEmail it returns a job id for get_render.
Template, 2 operations
list_templatesList templatesGETAgents: ask firstLists the account's templates, most recently updated first (up to 200): id, name, width, height and engine (layers, html or motion). Pass an id as template to render_template; get_template_params lists its fields.publish_templatePublish templatePOSTAgents: ask firstPublishes a template: snapshots its draft (or a spec you pass) as the next immutable version, which later renders use unless they pin a version. This changes what later renders of the template produce.
Template version, 2 operations
get_template_versionGet template versionGETAgents: ask firstReturns one immutable published version of a template, including its full spec (the template design) and the params snapshotted with it.list_template_versionsList template versionsGETAgents: ask firstLists a template's published versions, newest first: version number, spec_hash, published_at and published_by (metadata only). get_template_version returns one version's spec and params.
Account, 1 operation
get_accountGet accountGETAgents: ask firstReturns the MostlyRender account behind the API key: its plan, plus the owner's email and display name (personal data). Use it to check that the key works.
Generator manifest, 1 operation
get_generator_manifestGet generator manifestGETAgents: ask firstReturns a signed, time-limited download URL for a generator's latest manifest (csv or jsonl), every item by row key, refreshed whenever a job finishes. 409 until a first job has finished.
Generator style, 1 operation
adopt_generator_styleAdopt generator stylePOSTAgents: ask firstPins a generator to the current (or a given) MostlyQR style version and returns what re-rendering would cost; dry_run=true only prices it. Re-render afterwards with submit_generator_job and rerender=true (billed).
Job manifest, 1 operation
get_generator_job_manifestGet generator job manifestGETAgents: ask firstReturns a signed, time-limited download URL for a finished job's manifest (csv or jsonl): one row per item with status, errors, QR serial and short URL and one URL per output format. 409 until the job finishes.
Qr batch, 1 operation
list_mostlyqr_batchesList mostlyqr batchesGETAgents: ask firstLists the account's MostlyQR People & events batches (id, name, rule, status, member count, style version), to attach one to a generator through qr_policy batch.id. Fails with 409 until the MostlyQR Terms are accepted.
Render job, 1 operation
get_renderGet renderGETAgents: ask firstReturns an async render or screenshot job's status (queued, processing, done or error) and, once done, the file's id and public URL. Pass the job id that render_template or capture_screenshot returned with async.
Screenshot, 1 operation
capture_screenshotCapture screenshotPOSTAgents: ask firstCaptures a public web page as a PNG, JPEG, WebP or PDF file and returns its public URL; counts as one render and is never cached. Private and internal hosts are refused. Async mode returns a job id for get_render.
Signed url, 1 operation
create_signed_urlCreate signed urlPOSTAgents: ask firstReturns a signed URL that renders a template with the given modifications, for img, og:image or email. Anyone holding it can load that one image without a key until it expires; its first load counts as one render, repeats come from cache.
Template layer, 1 operation
add_template_layerAdd template layerPOSTAgents: ask firstAppends one layer to a layers-engine template; this changes the template. The layer name becomes a render parameter. Fails with 409 when a layer of that name exists, 404 for an unknown template.
Template param, 1 operation
get_template_paramsGet template paramsGETAgents: ask firstLists the fields a template accepts (key, type, required, default...): its declared params, or for a template that declares none, its layer names and placeholder variables. Use the keys as modifications in render_template.
Use MostlyRender from Claude Code, Cursor or Codex
Connect MostlyRender in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its MostlyRender operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect MostlyRender
- Create your workspace
Sign up free. Nothing to install.
- Connect MostlyRender once
Add your MostlyRender connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
MostlyRender integration FAQ
What can you do with the MostlyRender integration?
LiveContext exposes 33 operations on MostlyRender, covering generator, generator job, generator item and video render.
