Server definition
- Hash
- sha256:7a675ad4c83409274c7230c5a6c25665738e6a31a9c0c29ce285fe3d1c8d2a18
- What it is
- What a remote MCP server returned when asked what it offers: 3 tools
The blob, as servednamed by its sha256
{
"instructions": "SheetRender fills built-in document templates (certificate of completion, letter, donation receipt, job offer letter) from rows of data and returns one PDF per row. The usual order is: list_document_templates, then map the user's columns onto one template's field keys, then render_documents. Call create_continue_link only when the user asks to continue on the SheetRender website, keep the rows, repeat or schedule the job, or have the documents delivered by email.",
"tools": [
{
"description": "Create a link to the template's page on the SheetRender website with the user's rows loaded, so they can be kept as a SheetRender project. Call this only when the user asks to continue on the website, to keep or save the rows, to repeat or schedule the job, or to have the documents delivered by email; do not call it otherwise. Accepts up to 100 rows. The rows are stored until they are loaded into a project or for 7 days, whichever comes first, and the link expires after 7 days.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"rows": {
"description": "The user's rows, keyed by field key, at most 100.",
"items": {
"additionalProperties": {
"anyOf": [
{
"description": "Text. A field's length limit is listed by list_document_templates; 2000 characters when none is given.",
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"description": "One document's values, keyed by the template's field keys.",
"propertyNames": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"template": {
"description": "Template key from list_document_templates.",
"enum": [
"certificate",
"letter",
"donation_receipt",
"job_offer_letter"
],
"type": "string"
},
"title": {
"description": "Optional name for this set of documents, e.g. \"Q3 volunteer certificates\".",
"maxLength": 120,
"type": "string"
}
},
"required": [
"template",
"rows"
],
"type": "object"
},
"name": "create_continue_link",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"continue_url": {
"type": "string"
},
"expires_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rows_saved": {
"type": "number"
}
},
"required": [
"continue_url",
"expires_at",
"rows_saved"
],
"type": "object"
}
},
{
"description": "List the document templates this server can fill from rows of data: certificate of completion, letter, donation receipt and job offer letter. Returns each template's key, name, a one-line description, page size and orientation, and its fields (key, label, whether it is required, an example value, and how the value is printed). Call this first when the user wants PDFs made from a spreadsheet, a table, a CSV or a list of people, so you can map their columns onto a template's field keys before calling render_documents. Takes no arguments.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "list_document_templates",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"templates": {
"items": {
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"fields": {
"items": {
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"example": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"max_bytes": {
"type": "number"
},
"max_chars": {
"type": "number"
},
"max_lines": {
"type": "number"
},
"required": {
"type": "boolean"
}
},
"required": [
"key",
"label",
"required",
"example",
"description",
"max_chars",
"max_bytes"
],
"type": "object"
},
"type": "array"
},
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"orientation": {
"type": "string"
},
"page": {
"type": "string"
}
},
"required": [
"key",
"name",
"description",
"page",
"orientation",
"fields"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"templates"
],
"type": "object"
}
},
{
"description": "Render one PDF per row of data with a built-in template, and return a PNG preview and a PDF download link for each document. Use when the user has a spreadsheet, table, CSV or list and wants a certificate of completion, letter, donation receipt or job offer letter for each row. Get the field keys from list_document_templates, map the user's columns onto them, and pass each row as an object keyed by field key; values must be text, numbers, true/false or null; a text value may hold at most 2000 characters unless list_document_templates gives a different limit for that field. Renders up to 25 rows per call and up to 50 documents per month for each user; the response says how many documents remain this month (or that the month's limit is shared with other users) and when the count resets. Rows missing a required field are reported in missing_fields. Preview and PDF links expire after one hour. This tool only fills the built-in templates; it does not accept HTML or custom designs.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"rows": {
"description": "One object per document, at most 25 per call.",
"items": {
"additionalProperties": {
"anyOf": [
{
"description": "Text. A field's length limit is listed by list_document_templates; 2000 characters when none is given.",
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"description": "One document's values, keyed by the template's field keys.",
"propertyNames": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"type": "object"
},
"maxItems": 25,
"minItems": 1,
"type": "array"
},
"template": {
"description": "Template key from list_document_templates.",
"enum": [
"certificate",
"letter",
"donation_receipt",
"job_offer_letter"
],
"type": "string"
},
"title": {
"description": "Optional name for this set of documents, e.g. \"Q3 volunteer certificates\".",
"maxLength": 120,
"type": "string"
}
},
"required": [
"template",
"rows"
],
"type": "object"
},
"name": "render_documents",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"continue": {
"additionalProperties": false,
"properties": {
"how": {
"type": "string"
}
},
"required": [
"how"
],
"type": "object"
},
"documents": {
"items": {
"additionalProperties": false,
"properties": {
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"pdf_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"preview_png_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"row_index": {
"type": "number"
}
},
"required": [
"row_index",
"label",
"preview_png_url",
"pdf_url"
],
"type": "object"
},
"type": "array"
},
"expires_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"message": {
"type": "string"
},
"missing_fields": {
"items": {
"additionalProperties": false,
"properties": {
"fields": {
"items": {
"type": "string"
},
"type": "array"
},
"row_index": {
"type": "number"
}
},
"required": [
"row_index",
"fields"
],
"type": "object"
},
"type": "array"
},
"rows_received": {
"type": "number"
},
"rows_rendered": {
"type": "number"
},
"status": {
"type": "string"
},
"template": {
"type": "string"
},
"template_name": {
"type": "string"
},
"volume": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"limit": {
"type": "number"
},
"resets_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"scope": {
"enum": [
"subject",
"pool"
],
"type": "string"
},
"used": {
"type": "number"
}
},
"required": [
"used",
"limit",
"resets_at"
],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"template",
"template_name",
"rows_received",
"rows_rendered",
"documents",
"expires_at",
"missing_fields",
"volume",
"continue"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:7a675ad4c83409274c7230c5a6c25665738e6a31a9c0c29ce285fe3d1c8d2a18 | sha256sum