Skip to main content
Glama
sheetrender

@sheetrender/mcp

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SHEETRENDER_API_KEYYesYour SheetRender API key (sr_live_...). Create one at sheetrender.com under Settings -> API keys.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
render_pdfA

SheetRender turns HTML templates plus spreadsheet rows into rendered PDFs. This tool renders a single PDF from HTML you supply and returns the path to the saved file.

Use it for one-off documents — an invoice, a report, a certificate — where you are writing the markup yourself. Use render_template instead when the user already has a saved template.

html must be a complete HTML document (, , ) with all CSS inline in a tag: external stylesheets, fonts and scripts are not fetched. Use @page and mm/cm units for print layout.

data keys become Jinja template variables, so passing {"total": "42.00"} lets the HTML say {{ total }}. Jinja loops and conditionals work too. Omit data if the HTML has no placeholders.

Two server limits to plan for: HTML over 2 MB is rejected, measured both on what you send and on the result after data is substituted in, so keep large tables paginated rather than emitting one enormous document; and accounts on the free plan get a "Made with SheetRender" footer added to every PDF, which is expected, not a bug — mention it if the user seems surprised.

Returns the temp-file path and size; PDFs under 512 KB are also attached inline.

list_templatesA

SheetRender turns HTML templates plus spreadsheet rows into rendered PDFs. This tool lists the templates saved in the user's account, with the id each one needs.

Call it first whenever the user refers to a template by name ("render the invoice template") so you can map that name to an id for render_template or create_batch_job. Takes no arguments.

render_templateA

SheetRender turns HTML templates plus spreadsheet rows into rendered PDFs. This tool renders one PDF from a template already saved in the user's account and returns the path to the saved file.

Use it when the user wants a document in their existing design. Get template_id from list_templates. Use render_pdf instead when you are writing the HTML yourself.

data supplies one row's worth of values: each key becomes a Jinja variable in the template's HTML. To render a PDF for every row of a spreadsheet, use create_batch_job rather than calling this repeatedly.

Omit page_settings to keep the template's own saved page setup — passing it overrides that for this render only.

Free-plan accounts get a "Made with SheetRender" footer on the PDF, same as render_pdf — expected, not a bug.

Returns the temp-file path and size; PDFs under 512 KB are also attached inline.

create_batch_jobA

SheetRender turns HTML templates plus spreadsheet rows into rendered PDFs. This tool queues a batch job that renders one PDF per row of an uploaded dataset, and returns the job id.

Use it when the user wants many documents at once — "an invoice for every row", "one letter per employee". The dataset must already be uploaded to the SheetRender project; this tool cannot upload spreadsheets. Rendering happens in the background: poll get_job with the returned id to see progress and collect document ids.

filename_template and group_by are saved onto the template/project, so they change the defaults for later runs, not just this one. Only pass them when the user asked to change how output is named or grouped.

get_jobA

SheetRender turns HTML templates plus spreadsheet rows into rendered PDFs. This tool reports the progress of a batch job started by create_batch_job.

Returns the status, rows done/failed, and — once the job reaches a finished state ("succeeded", "partial", "failed" or "cancelled") — the id and filename of every rendered document. The document list is empty while the job is still in "queued", "retry_queued" or "running", so poll again after a short wait rather than assuming zero documents.

Pass those document ids to get_document to download the individual PDFs.

get_documentA

SheetRender turns HTML templates plus spreadsheet rows into rendered PDFs. This tool downloads one PDF produced by a batch job and returns the path to the saved file.

document_id comes from get_job on a finished batch — that is the only place these ids appear, so call get_job first and take an id from its document list. A document id is not a template id or a job id.

Use it to fetch a specific output the user asked about, or to spot-check a batch. Fetching every document of a large batch one at a time is slow; point the user at the SheetRender web app for the merged PDF or ZIP instead.

Returns the temp-file path and size; PDFs under 512 KB are also attached inline.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sheetrender/sheetrender-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server