# Templated [Health: Active]

**Category:** 🎥 Multimedia Process  
**Repository:** https://github.com/templated-io/mcp-server-templated  
**GitHub Stars:** 3  
**npm Downloads (last month):** 563  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/templated

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

## Tools
Capabilities this server exposes over MCP:

- **create_render** — 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).
- **get_render** — 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.
- **list_renders** — 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.
- **delete_render** — 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.
- **merge_renders** — 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.
- **list_templates** — 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.
- **get_template** — 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.
- **get_template_layers** — 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.
- **get_template_pages** — 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.
- **create_template** — 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.
- **update_template** — 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.
- **clone_template** — 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.
- **delete_template** — 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.
- **list_template_renders** — 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.
- **list_folders** — 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.
- **create_folder** — 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.
- **update_folder** — Rename a folder. Use this when the user wants to change a folder's name. Returns the updated folder.
- **delete_folder** — 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.
- **list_uploads** — 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.
- **create_upload** — 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
- **delete_upload** — 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.
- **list_fonts** — 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.
- **upload_font** — 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
- **delete_font** — 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.
- **get_account** — 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.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

**Requires environment variables:** `TEMPLATED_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What Templated does

The Templated MCP server connects an MCP-compatible assistant with a Templated account. It provides operations for rendering visual and document outputs, inspecting and maintaining templates, organizing folders, managing uploaded assets, and checking render usage.

The Templated MCP server can create JPG, PNG, WebP, MP4, and PDF outputs from an existing template. Render operations include retrieving details, listing account renders, deleting renders, and combining multiple PDF renders into one. Template operations cover searching and listing templates, inspecting layers and pages, creating or updating templates, cloning templates, deleting templates, and viewing renders associated with a template.

## How it works — Templated MCP server

An MCP client sends tool calls to the server, which uses the Templated API for the requested account operation. A render can reference a template and provide layer changes, such as replacement text or an image URL, along with output settings such as format or transparency. Multi-page and multi-size templates are represented through pages; single-page templates can be created with layers.

The hosted endpoint is `https://mcp.templated.io/mcp`. Interactive connections can authenticate through OAuth 2.1, including connections from Claude, ChatGPT, Cursor, and Claude Code. Automation can pass an API key in the URL query string or as a bearer token. The local process communicates over stdio by default, and the project also documents running it in HTTP mode.

## Setup and configuration

For the hosted option, add the remote MCP URL to a supported client and complete the Templated sign-in flow. For automation, use the endpoint with `?apiKey=YOUR_API_KEY` and configure the client without OAuth.

The local option requires Node.js 18 or newer. Run the package with `npx mcp-server-templated`, install it globally with npm, or build the repository and start its compiled entry point. Set `TEMPLATED_API_KEY` in the local client's environment. The documented Claude Desktop and Cursor configurations use the `npx` command and this variable. HTTP mode can be started with a `PORT` value and then accessed through the local `/mcp` endpoint with an API key.

## Tools and capabilities

- Create, inspect, list, delete, and merge renders.
- List, inspect, create, update, clone, and delete templates.
- Inspect template layers and multi-page template pages.
- List, create, rename, and delete folders.
- List and delete uploads, and create uploads from file URLs.
- List, upload, and delete custom fonts.
- Retrieve render usage for the current account period.

## Limitations and notes

The server operates on the Templated account associated with the OAuth session or API key. API-key connections can support automation and multi-tenant scoping through `folderId` or `externalId`, as documented by the project. Local operation requires Node.js 18 or newer, while the hosted option avoids local installation. The available actions are limited to the Templated API capabilities exposed by the listed tools; the material does not describe general-purpose image or video editing outside template-based rendering.

_Full upstream README: https://allmcps.com/mcp/templated/readme_

