Templated
NPM · MCP-SERVER-TEMPLATED · 2 COMPONENTS
Generate images, videos and PDFs from templates. Manage templates, folders, uploads and fonts.
Available components
Last scanned (3 hours ago)
Scores higher than 72% of npm servers
Category Design and Media
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 27 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability83
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3630 tokens (~139/item across 26 items; 25 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
- Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (8% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 4 Nov 26 −4
- Security disclosure: fail → unverified ▼ functional
- Stability: pass → 0.70 functional
- 29 Oct 26 0
- Stability: 0.97 → pass security
- 28 Oct 26 0
- Stability: pass → 0.97 functional
- 27 Oct 26 0
- Security disclosure: unverified → fail ▼ functional
- 26 Oct 26 0
- Security disclosure: fail → unverified ▼ functional
- 24 Oct 26 0
- Security disclosure: unverified → fail ▼ functional
- 23 Oct 26 0
- Security disclosure: fail → unverified ▼ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/mcp-server-templated@1.9.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
clone_template ~81
Copy a template, with all its layers and pages, into a new template in the same account. Use this to make a variation without changing the original. Returns the copy, which keeps the original's name unless 'name' is given.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Name for the cloned template |
| template_id | string | yes | The template ID to clone |
No output schema declared.
No examples provided.
create_folder ~49
Create a folder to organize templates in the connected Templated account. Use this when the user wants to group templates. Returns the new folder with its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Folder name |
No output schema declared.
No examples provided.
create_render ~581
Render a Templated template into an image (JPG, PNG or WebP), a PDF or an MP4 video, with new text, images and colors in its layers. Use this when the user wants a finished design from one of their templates, such as a social media post, banner, OG image, certificate or invoice. Templated fills the saved template with the exact values given: this is template rendering, not AI image generation. Pass the template ID and 'layers' keyed by the layer names from get_template_layers; names the template doesn't have are rejected before anything is rendered. Multi-page templates render every page, or only the pages listed in 'pages'. Each output counts toward the account's render usage. Returns the render with its file URL (one render per page for multi-page templates).
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Background color in hex format (e.g., #FF0000) |
| cmyk | boolean | – | Use CMYK color mode (PDF only) |
| duration | number | – | Video duration in milliseconds (MP4 only, max 90000) |
| flatten | boolean | – | Flatten PDF for print-ready documents |
| format | string | – | Output format. Default: jpg |
| fps | number | – | Frames per second (MP4 only, 1-60) |
| height | number | – | Custom height in pixels (100-5000) |
| layers | object | – | Layer values keyed by layer name, e.g. { "title": { "text": "Hello" }, "photo": { "image_url": "https://..." } }. Each value can set text, image_url, color, background, hide and other layer propertie… |
| name | string | – | Custom name for the render |
| pages | array | – | For multi-page templates: the pages to render, each with its own layer values. Each item has 'page' (a page name from get_template_pages) and 'layers' keyed by layer name, like the top-level 'layers'… |
| scale | number | – | Scale factor (0.1-2.0) |
| template | string | yes | The template ID to render (from list_templates) |
| transparent | boolean | – | Make background transparent (PNG only) |
| width | number | – | Custom width in pixels (100-5000) |
| Name | Type | Req | Description |
|---|---|---|---|
| editorUrl | string | – | Link to edit the template in the Templated editor |
| format | string | – | jpg, png, webp, pdf or mp4 |
| height | number | – | – |
| id | string | – | – |
| name | string | – | – |
| page | string | – | Page name, for multi-page templates |
| renders | array | – | Present when the call produced several renders (one per page); single renders put their fields at the top level |
| status | string | yes | completed, pending or failed; for several renders, pending while any of them is |
| templateId | string | – | – |
| templateName | string | – | – |
| url | string | – | File URL |
| width | number | – | – |
No examples provided.
create_template ~367
Create a new template in the connected Templated account from layers, for example a social media post, banner, OG image, certificate or invoice. Use this when none of the existing templates fits or the account has no templates yet. Each layer has a unique name in 'layer' and a 'type': text, image, shape or rating. Shape layers draw rectangles, circles and other shapes from SVG content in 'html'. For a multi-page or multi-size template (several sizes in one template), pass 'pages' in place of 'layers'. Returns the new template; its ID can be rendered right away with create_render.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Template background color (e.g., '#ffffff', 'rgb(255,255,255)', 'transparent') |
| duration | number | – | Default video duration in milliseconds for MP4 renders (e.g., 5000 for 5 seconds). Used as fallback when no duration is specified at render time. |
| height | number | yes | Template height in pixels |
| layers | array | – | Layers of a single-page template. Each layer object has 'layer' (its unique name, later used as the key in create_render) and 'type'. |
| name | string | yes | Template name |
| pages | array | – | Pages for a multi-page or multi-size template (for example an Instagram square, a story and an X landscape version in one template, each with its own width and height). Used in place of top-level 'la… |
| width | number | yes | Template width in pixels |
No output schema declared.
No examples provided.
create_upload ~109
Upload an image (JPG, PNG, WebP or SVG, up to 10 MB) from a public URL to the connected Templated account. Use this to keep an image in the account's assets for templates and renders. Returns the upload; its 'path' is the URL to use as image_url. API reference: https://templated.io/docs
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Optional name for the upload |
| url | string | yes | Public URL of the image to upload |
No output schema declared.
No examples provided.
delete_folder ~65
Delete a folder from the connected Templated account. The templates inside it are not deleted: they move out of the folder to the top level of the account. Use this when the user asks to remove a folder.
| Name | Type | Req | Description |
|---|---|---|---|
| folder_id | string | yes | The folder ID to delete |
No output schema declared.
No examples provided.
delete_font ~77
Permanently delete a custom font from the connected Templated account by family name, including every file uploaded under that name. Templates that use it fall back to another font in later renders. Use this when the user asks to remove a font.
| Name | Type | Req | Description |
|---|---|---|---|
| font_name | string | yes | The font family name to delete, as returned by list_fonts |
No output schema declared.
No examples provided.
delete_render ~63
Permanently delete a render from the connected Templated account; it can't be restored. Use this when the user asks to remove a render. Takes the render ID from list_renders and returns a confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| render_id | string | yes | The render ID to delete |
No output schema declared.
No examples provided.
delete_template ~62
Permanently delete a template from the connected Templated account; it can't be restored or rendered afterwards. Renders already created from it are kept. Use this when the user asks to delete a template.
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | The template ID to delete |
No output schema declared.
No examples provided.
delete_upload ~60
Permanently delete an uploaded image from the connected Templated account; it can't be restored. Use this when the user asks to remove an upload. Takes the upload ID from list_uploads.
| Name | Type | Req | Description |
|---|---|---|---|
| upload_id | string | yes | The upload ID to delete |
No output schema declared.
No examples provided.
get_account ~54
Get the connected Templated account's render usage for the current period: renders used (apiUsage), renders included (apiQuota) and the percentage used. Use this to check how many renders are left before a large batch.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_render ~51
Get one render by ID with its status, format, size and file URL. Use this to check whether a render has finished or to find its URL again.
| Name | Type | Req | Description |
|---|---|---|---|
| render_id | string | yes | The render ID |
| Name | Type | Req | Description |
|---|---|---|---|
| editorUrl | string | – | Link to edit the template in the Templated editor |
| format | string | – | jpg, png, webp, pdf or mp4 |
| height | number | – | – |
| id | string | – | – |
| name | string | – | – |
| page | string | – | Page name, for multi-page templates |
| renders | array | – | Present when the call produced several renders (one per page); single renders put their fields at the top level |
| status | string | yes | completed, pending or failed; for several renders, pending while any of them is |
| templateId | string | – | – |
| templateName | string | – | – |
| url | string | – | File URL |
| width | number | – | – |
No examples provided.
get_template ~64
Get one template's details by ID: name, size, background, thumbnail, tags, folder, and layer and page counts. Use this to check a template's size or settings; get_template_layers returns its editable layers.
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | The template ID |
No output schema declared.
No examples provided.
get_template_layers ~84
List a template's layers with their names, types and current values (text, image_url, colors, fonts, position and size). Use this before create_render: the layer names are the keys create_render accepts in 'layers'. Covers every page of a multi-page template; get_template_pages groups the layers by page.
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | The template ID |
No output schema declared.
No examples provided.
get_template_pages ~73
List the pages of a multi-page or multi-size template, each with its name, width, height and layers keyed by layer name. Use this to render specific pages with create_render ('pages') or to edit pages with update_template, which accepts the same shape.
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | The template ID |
No output schema declared.
No examples provided.
list_folders ~100
List the folders in the connected Templated account with the number of templates in each, 25 per page by default (max 100). Use this to find a folder ID for update_folder or delete_folder. Returns the folders plus total and hasMore.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Results per page (default: 25, max: 100) |
| page | number | – | Page number, starting at 0 (default: 0) |
No output schema declared.
No examples provided.
list_fonts ~173
List the custom fonts uploaded to the connected Templated account, 25 per page by default (max 100). Templates can also use any Google Font by family name: set include_google_fonts to true to list those too, and query to search by name. Use this to choose a font_family for create_template or update_template, or to find the name for delete_font. Returns the font names plus total and hasMore.
| Name | Type | Req | Description |
|---|---|---|---|
| include_google_fonts | boolean | – | Also list the Google Fonts available to every template (default: false) |
| limit | number | – | Results per page (default: 25, max: 100) |
| page | number | – | Page number, starting at 0 (default: 0) |
| query | string | – | Only fonts whose name contains this text (case-insensitive) |
No output schema declared.
No examples provided.
list_renders ~111
List the renders in the connected Templated account, newest first, 25 per page by default (max 100). Use this to find a render's ID or file URL, for example to merge PDFs with merge_renders. Returns each render's id, url, status, format, size and template.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Results per page (default: 25, max: 100) |
| page | number | – | Page number, starting at 0 (default: 0) |
No output schema declared.
No examples provided.
list_template_renders ~101
List the renders created from one template, 25 per page by default (max 100). Use this to find earlier outputs of a template. Returns each render's id, url, status and format.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Results per page (default: 25, max: 100) |
| page | number | – | Page number, starting at 0 (default: 0) |
| template_id | string | yes | The template ID |
No output schema declared.
No examples provided.
list_templates ~200
List the templates in the connected Templated account, 25 per page by default (max 100), optionally filtered by name (query), size (width, height) or tags. Use this first to find the template ID for create_render, get_template_layers or update_template. Returns each template's id, name, size, thumbnail, folder, and layer and page counts.
| Name | Type | Req | Description |
|---|---|---|---|
| height | number | – | Filter by template height |
| includeLayers | boolean | – | Include each template's layers (a much larger response; get_template_layers reads one template's layers) |
| limit | number | – | Results per page (default: 25, max: 100) |
| page | number | – | Page number, starting at 0 (default: 0) |
| query | string | – | Search query to filter templates by name |
| tags | string | – | Filter by tags (comma-separated) |
| width | number | – | Filter by template width |
No output schema declared.
No examples provided.
list_uploads ~112
List the images uploaded to the connected Templated account, 25 per page by default (max 100). Use this to reuse an uploaded image: its 'path' is a URL that can be set as image_url on an image layer. Returns each upload's id, name, type, size and path.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Results per page (default: 25, max: 100) |
| page | number | – | Page number, starting at 0 (default: 0) |
No output schema declared.
No examples provided.
merge_renders ~139
Merge several renders into one PDF, in the order given, for example one certificate or invoice per recipient. Image renders become PDF pages. Use this after creating the individual renders. Each merge counts toward the account's render usage. Returns the URL of the merged PDF. With host set to false the PDF itself is returned inline instead, which only works for PDFs up to 100 KB.
| Name | Type | Req | Description |
|---|---|---|---|
| host | boolean | – | true (default): return a URL to the merged PDF. false: return the PDF inline as an embedded file, for PDFs up to 100 KB. |
| render_ids | array | yes | Render IDs to merge, in page order |
No output schema declared.
No examples provided.
update_folder ~51
Rename a folder. Use this when the user wants to change a folder's name. Returns the updated folder.
| Name | Type | Req | Description |
|---|---|---|---|
| folder_id | string | yes | The folder ID |
| name | string | yes | New folder name |
No output schema declared.
No examples provided.
update_template ~471
Change an existing template: name, description, size, background, default video duration, layers or pages. Use this to edit a design, resize it, or add sizes to a multi-size template. Layers are matched by their 'layer' name: an existing layer is updated in place and a new name is added. Top-level 'layers' apply to the first page; 'pages' reaches the others. With replaceLayers true, layers missing from the request are deleted. To move a layer, send both x and y (a missing coordinate is set to 0). In 'pages', a page name that doesn't exist yet is added and an existing page has its layers updated. On a multi-size template, set width and height per page inside 'pages'; top-level width and height are rejected there because they would resize every page. Returns the updated template.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Template background color |
| description | string | – | New template description |
| duration | number | – | Default video duration in milliseconds for MP4 renders (e.g., 5000 for 5 seconds) |
| height | number | – | New height in pixels. Applies to every page; rejected on multi-size templates (use per-page height inside 'pages') |
| layers | array | – | Layer definitions. Each has 'layer' (its unique name) and 'type' (text, image, shape or rating). |
| name | string | – | New template name |
| pages | array | – | Pages for a multi-page or multi-size template (for example an Instagram square, a story and an X landscape version in one template, each with its own width and height). Used in place of top-level 'la… |
| replaceLayers | boolean | – | true: delete the layers (on the pages being updated) that are missing from the request. false (default): keep them. |
| template_id | string | yes | The template ID to update |
| width | number | – | New width in pixels. Applies to every page; rejected on multi-size templates (use per-page width inside 'pages') |
No output schema declared.
No examples provided.
upload_font ~115
Upload a custom font file (TTF, OTF, WOFF or WOFF2) from a public URL to the connected Templated account under the given family name. Use this when a design needs a font that isn't a Google Font; templates then use it as font_family. Returns the font. API reference: https://templated.io/docs
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Font family name |
| url | string | yes | URL of the font file (TTF, OTF, WOFF, WOFF2) |
No output schema declared.
No examples provided.
How do I install the Templated MCP server?
Templated runs locally as an npm package, launched with npx -y mcp-server-templated. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · mcp-server-templated
claude mcp add templated-io-mcp-server-templated -- npx -y mcp-server-templated
What is the Templated MCP server?
Templated is an MCP server listed in the public MCP registry as io.github.templated-io/mcp-server-templated. Generate images, videos and PDFs from templates. Manage templates, folders, uploads and fonts. This page covers its npm package (mcp-server-templated).
Is the Templated MCP server safe to use?
Templated scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Templated MCP server expose?
Templated exposes 25 tools: create_render, get_render, list_renders, delete_render, merge_renders, and 20 more. Their descriptions and schemas cost roughly 3,413 tokens of context every time the server is loaded.
Is the Templated MCP server still maintained?
Templated is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Templated MCP server under?
Templated declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.