# Templated (npm · mcp-server-templated)

Generate images, videos and PDFs from templates. Manage templates, folders, uploads and fonts.

- Trust score: 78/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- remote · `mcp.templated.io`: 36/100, [markdown](https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp.md), [page](https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp)
- npm · `mcp-server-templated`: 78/100 (this document), [markdown](https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp-server-templated.md), [page](https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp-server-templated)

## Channel facts

- Registry: `npm`
- Package: `mcp-server-templated`
- Version: `1.7.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 95 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 80/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1962 tokens (~78/item across 25 items; 25 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 51/100
  - Stability check failed: the tool surface changed between 1.6.0 and 1.7.1: 0 tool removals, 1 breaking changes, 0 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### 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.

### Claude

```bash
claude mcp add templated-io-mcp-server-templated -- npx -y mcp-server-templated
```

### Cursor

```json
{
  "mcpServers": {
    "templated-io-mcp-server-templated": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-templated"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "templated-io-mcp-server-templated": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-templated"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add templated-io-mcp-server-templated -- npx -y mcp-server-templated
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "templated-io-mcp-server-templated": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-server-templated"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add templated-io-mcp-server-templated --command npx --arg -y --arg mcp-server-templated
```

### Hermes

```yaml
mcp_servers:
  templated-io-mcp-server-templated:
    command: "npx"
    args: ["-y", "mcp-server-templated"]
```

### Netclaw

```json
{
  "McpServers": {
    "templated-io-mcp-server-templated": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "mcp-server-templated"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add templated-io-mcp-server-templated -t stdio -c npx -a -y mcp-server-templated
```

### Other

```json
{
  "mcpServers": {
    "templated-io-mcp-server-templated": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-templated"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-19 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 45 to 48.

### 2026-09-17 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 38 to 41.

### 2026-09-15 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 31 to 35.

### 2026-09-13 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 25 to 28.

### 2026-09-11 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 18 to 21.

### 2026-09-09 (score 73, +26)

- [security improvement] Malware scan: unverified → pass
- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 0.84

### 2026-09-08 (score 47, −24)

- [security regression] Stability: unverified → fail
- [security regression] Known CVEs: pass → unverified
- [security regression] Malware scan: pass → unverified
- [functional regression] Schema quality: 63 → 78
- [functional regression] Schema quality: 63 → 77
- [functional regression] Dependency health: 0.84 → unverified
- [functional improvement] Stability: unverified → 0.13
- [functional] Package version: 1.6.0 → 1.7.1
- [functional] Package version: 1.6.0 → 1.7.0

### 2026-09-04 (score 71)

First indexed and scored.

## MCP tools (25)

### `create_render` (~365 tokens)

Create a render (image, video, or PDF) from a template. This is the main tool for generating content. Supports formats: jpg, png, webp, pdf, mp4.

Input parameters:

- `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 modifications. Keys are layer names, values are objects with properties like: text, image_url, color, background, hide, animation, etc. The 'animation' property (MP4 only) is an object with: 'i…
- `name` (string): Custom name for the render
- `scale` (number): Scale factor (0.1-2.0)
- `template` (string, required): The template ID to render
- `transparent` (boolean): Make background transparent (PNG only)
- `width` (number): Custom width in pixels (100-5000)

### `get_render` (~34 tokens)

Retrieve a specific render by its ID to get the status and file URL

Input parameters:

- `render_id` (string, required): The render ID

### `list_renders` (~45 tokens)

List all renders in the account

Input parameters:

- `limit` (number): Results per page (default: 25)
- `page` (number): Page number (default: 0)

### `delete_render` (~26 tokens)

Delete a specific render

Input parameters:

- `render_id` (string, required): The render ID to delete

### `merge_renders` (~55 tokens)

Merge multiple PDF renders into a single PDF document

Input parameters:

- `host` (boolean): If true, returns a hosted URL. If false, returns the file directly
- `render_ids` (array, required): Array of render IDs to merge

### `list_templates` (~115 tokens)

List all templates in the account. Use this to find template IDs for rendering.

Input parameters:

- `height` (number): Filter by template height
- `includeLayers` (boolean): Include layer information in response
- `limit` (number): Results per page (default: 25)
- `page` (number): Page number (default: 0)
- `query` (string): Search query to filter templates by name
- `tags` (string): Filter by tags (comma-separated)
- `width` (number): Filter by template width

### `get_template` (~26 tokens)

Retrieve a specific template by ID

Input parameters:

- `template_id` (string, required): The template ID

### `get_template_layers` (~41 tokens)

Get all layers of a template. Use this to understand what layers can be modified when creating a render.

Input parameters:

- `template_id` (string, required): The template ID

### `get_template_pages` (~29 tokens)

Get all pages of a multi-page template

Input parameters:

- `template_id` (string, required): The template ID

### `create_template` (~345 tokens)

Create a new template programmatically with layers. IMPORTANT: Each layer must have a 'layer' field (unique identifier/name), not 'name'. Valid layer types are: 'text', 'image', 'shape', 'rating'. Use 'shape' for rectangles, circles, and other shapes - shapes require an 'html' field with SVG content. For a multi-page or multi-size template (several sizes in one template), pass 'pages' instead of 'layers': each page carries its own width/height and its layers as an object keyed by layer name.

Input parameters:

- `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, required): Template height in pixels
- `layers` (array): Array of layer objects. Each layer MUST have 'layer' (unique name) and 'type' fields.
- `name` (string, required): Template name
- `pages` (array): Pages for multi-page or multi-size templates (e.g. Instagram square, story and X landscape in ONE template, each with its own width/height). Use this INSTEAD of top-level 'layers'. Each page: 'page'…
- `width` (number, required): Template width in pixels

### `update_template` (~397 tokens)

Update an existing template. IMPORTANT: Each layer must have a 'layer' field (unique identifier), not 'name'. Valid types: 'text', 'image', 'shape', 'rating'. For multi-page templates use 'pages': a page name that does not exist yet is ADDED to the template, an existing one has its layers merged (or replaced with replaceLayers). To change page sizes on a multi-size template set width/height per page inside 'pages'; top-level width/height are rejected there because they would resize every page.

Input parameters:

- `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 must have 'layer' (unique name) and 'type' (text/image/shape/rating).
- `name` (string): New template name
- `pages` (array): Pages for multi-page or multi-size templates (e.g. Instagram square, story and X landscape in ONE template, each with its own width/height). Use this INSTEAD of top-level 'layers'. Each page: 'page'…
- `replaceLayers` (boolean): If true, replaces all layers. If false, merges with existing
- `template_id` (string, required): 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')

### `clone_template` (~41 tokens)

Create a copy of an existing template

Input parameters:

- `name` (string): Name for the cloned template
- `template_id` (string, required): The template ID to clone

### `delete_template` (~25 tokens)

Delete a template

Input parameters:

- `template_id` (string, required): The template ID to delete

### `list_template_renders` (~49 tokens)

List all renders created from a specific template

Input parameters:

- `limit` (number): Results per page
- `page` (number): Page number
- `template_id` (string, required): The template ID

### `list_folders` (~35 tokens)

List all folders in the account

Input parameters:

- `limit` (number): Results per page
- `page` (number): Page number

### `create_folder` (~25 tokens)

Create a new folder to organize templates

Input parameters:

- `name` (string, required): Folder name

### `update_folder` (~35 tokens)

Update a folder's name

Input parameters:

- `folder_id` (string, required): The folder ID
- `name` (string, required): New folder name

### `delete_folder` (~25 tokens)

Delete a folder

Input parameters:

- `folder_id` (string, required): The folder ID to delete

### `list_uploads` (~37 tokens)

List all uploaded assets (images, videos)

Input parameters:

- `limit` (number): Results per page
- `page` (number): Page number

### `create_upload` (~40 tokens)

Upload a file from a URL

Input parameters:

- `name` (string): Optional name for the upload
- `url` (string, required): URL of the file to upload

### `delete_upload` (~26 tokens)

Delete an uploaded asset

Input parameters:

- `upload_id` (string, required): The upload ID to delete

### `list_fonts` (~36 tokens)

List all custom fonts uploaded to the account

Input parameters:

- `limit` (number): Results per page
- `page` (number): Page number

### `upload_font` (~51 tokens)

Upload a custom font from a URL

Input parameters:

- `name` (string, required): Font family name
- `url` (string, required): URL of the font file (TTF, OTF, WOFF, WOFF2)

### `delete_font` (~33 tokens)

Delete a custom font

Input parameters:

- `font_name` (string, required): The font family name to delete, as returned by list_fonts

### `get_account` (~26 tokens)

Get the connected account's render usage for the current period (renders used and renders included)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp-server-templated#diagnostics

## Score history

- 2026-09-20: 78
- 2026-09-19: 78
- 2026-09-18: 77
- 2026-09-17: 77
- 2026-09-16: 76
- 2026-09-15: 76
- 2026-09-14: 75
- 2026-09-13: 75
- 2026-09-12: 74
- 2026-09-11: 74
- 2026-09-10: 73
- 2026-09-09: 73
- 2026-09-08: 47
- 2026-09-07: 71
- 2026-09-06: 71
- 2026-09-05: 71
- 2026-09-04: 71

## Common questions

### 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 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 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 1,962 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 20 September 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.

## Links

- npm package: https://www.npmjs.com/package/mcp-server-templated
- Socket report: https://socket.dev/npm/package/mcp-server-templated
- Repository: https://github.com/templated-io/mcp-server-templated
- Website: https://templated.io/
- Changelog RSS feed: https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp-server-templated.xml
- Changelog JSON feed: https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp-server-templated.json
- HTML version of this page: https://verifymcp.io/servers/templated-io-mcp-server-templated/mcp-server-templated
