Skip to main content
Glama
sheetrender

@sheetrender/mcp

Official
by sheetrender

@sheetrender/mcp

MCP-сервер для SheetRender — дайте вашему ИИ-ассистенту возможность рендерить PDF из HTML-шаблонов и данных электронных таблиц.

Настройка

Получите API-ключ на sheetrender.com → Настройки → API-ключи, затем добавьте его в конфигурацию вашего MCP-клиента:

{
  "mcpServers": {
    "sheetrender": {
      "command": "npx",
      "args": ["-y", "@sheetrender/mcp"],
      "env": { "SHEETRENDER_API_KEY": "sr_live_..." }
    }
  }
}

Переменная SHEETRENDER_API_URL также считывается, по умолчанию — https://sheetrender.com. Задавайте её только для указания на self-hosted или staging-экземпляр.

Related MCP server: Dokmatiq DocGen

Инструменты

render_pdf

Рендерит один PDF из предоставленного вами HTML.

Аргумент

Тип

html

string

обязательный — полный HTML-документ. CSS должен быть встроен в тег <style>; внешние таблицы стилей, шрифты и скрипты не загружаются.

data

object

необязательный — ключи становятся переменными Jinja, поэтому {"total": "42.00"} делает {{ total }} доступным в HTML.

page_settings

object

необязательный — см. ниже.

Возвращает путь к сохранённому PDF и его размер. Если размер меньше 512 КБ, файл также прикрепляется инлайн как ресурс base64, поэтому клиенты, отображающие вложения, показывают сам документ.

Действуют два ограничения сервера. HTML размером более 2 МБ отклоняется — учитывается и то, что вы отправляете, и документ после подстановки data, поэтому шаблон, разворачивающий большой набор данных, может пересечь границу, даже если написанная вами разметка — нет. На бесплатном тарифе каждый отрендеренный PDF содержит нижний колонтитул «Made with SheetRender» — как из render_pdf, так и из render_template; на платных тарифах его нет.

list_templates

Аргументов нет. Возвращает имя каждого сохранённого шаблона, его идентификатор и дату последнего обновления. Вызывайте его, чтобы превратить упомянутое пользователем имя шаблона в идентификатор, который ожидают другие инструменты.

render_template

Рендерит один PDF из шаблона, уже сохранённого в аккаунте.

Аргумент

Тип

template_id

string

обязательный — из list_templates.

data

object

обязательный — значения одной строки как переменные Jinja.

page_settings

object

необязательный. Если его опустить, будет использована сохранённая настройка страницы шаблона; передача значения переопределяет её для этого рендера.

Возвращает то же, что и render_pdf.

create_batch_job

Ставит в очередь фоновую задачу, которая рендерит по одному PDF на каждую строку набора данных, уже загруженного в проект. Этот сервер не умеет загружать электронные таблицы.

Аргумент

Тип

template_id

string

обязательный — из list_templates.

dataset_id

string

обязательный — набор данных в том же проекте, что и шаблон.

filename_template

string

необязательный — шаблон имени выходного файла, например invoice-{{ invoice_no }}.

group_by

string

необязательный — колонка для группировки строк; для каждого уникального значения создаётся один многостраничный PDF.

Возвращает идентификатор задачи, который нужно опрашивать через get_job. Обратите внимание: filename_template и group_by сохраняются в шаблоне и проекте соответственно, поэтому они также меняют значения по умолчанию для последующих запусков.

Если сервер выпущен до появления публичного пакетного эндпоинта, инструмент сообщает, что пакетные задачи недоступны, а не завершается с непонятной ошибкой.

get_job

Принимает job_id. Возвращает статус, количество обработанных строк и строк с ошибками, а после перехода задачи в состояние succeeded, partial, failed или cancelled — идентификатор и имя файла каждого отрендеренного документа. Список документов остаётся пустым, пока задача находится в состоянии queued, retry_queued или running. Именно эти идентификаторы документов принимает get_document.

get_document

Принимает document_id и скачивает этот отдельный отрендеренный PDF. Идентификаторы берутся из get_job по завершённому пакету; получить их иначе невозможно. Возвращает то же, что и render_pdf — путь, размер и встроенный blob размером менее 512 КБ.

Для всего пакета объединённый PDF и ZIP в веб-приложении удобнее, чем поочерёдная загрузка каждого документа.

page_settings

Общие для обоих инструментов рендеринга, все поля необязательные:

{
  "page_size": "a4",
  "orientation": "portrait",
  "margins": { "top": 15, "right": 15, "bottom": 15, "left": 15 }
}

page_size указывается в нижнем регистре — a3, a4, a5, letter, legal или tabloid. Поля задаются обычными числами в миллиметрах, а не CSS-длинами.

Отрендеренные PDF записываются в системную временную директорию. Ошибки API — неверный ключ, отсутствующий шаблон, превышение лимита запросов — возвращаются как ошибки инструмента с сообщением самого сервера.

Публичный API допускает 120 запросов в минуту на один API-ключ. При превышении возвращается код 429, и инструмент сообщает, что достигнут лимит запросов и следует повторить позже. Создание пакетных задач учитывается отдельно и с более строгими ограничениями.

Разработка

Устанавливать node/npm на хост-машине не требуется — scripts/dev.sh install, scripts/dev.sh deno task build.

Лицензия MIT.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Generate PDF/DOCX/XLSX/PPTX from templates+JSON. Convert Office/HTML/MD to PDF. Universal templating

  • Fill existing fillable, flat and scanned PDF forms from structured data; save reusable templates

  • Turn a description into a shareable, editable PDF — invoices, certificates, reports, resumes.

View all MCP Connectors

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