# cliphou.se release videos

> Turns every release into a social video. Finds the selling points, picks the angle, writes the copy.

- name: se.cliphou/templates
- version: 1.6.2
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 81/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/se.cliphou%2Ftemplates
- tools: https://api.protogrid.dev/v1/servers/se.cliphou%2Ftemplates/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "templates": {
      "type": "http",
      "url": "https://cliphou.se/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-1d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 81/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 3 of 6 tools declare all four hints; missing: search_templates (destructiveHint, idempotentHint); get_template_spec (destructiveHint, idempotentHint); build_edit_link (destructiveHint, idempotentHint)
- pass `tools.token_cost`: about 2,769 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 6 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 2,769 tokens to load them all
- tool set hash: 9f3afdcc4af48ca4552d76e75ff9103b
- tools last changed: 2026-10-18T00:26:10.270Z
- badge: [![protogrid quality](https://protogrid.dev/badge/se.cliphou/templates.svg)](https://protogrid.dev/servers/se.cliphou/templates)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-18 `search_templates` changed (description, inputSchema)
  - before: Find marketing video templates for a product, project, or announcement. Prefer a marketing goal, then add a short product or style query. Returns a searchId and results with id, title, goals, aspect, length, preview MP4, poster image, and editor URL. Engine details appear only when the engine filter is used.
  - after: Find marketing video templates for a product, project, or announcement. Prefer a marketing goal and, when project facts support it, a release moment; then add a short product or style query. Returns a searchId, the selected moment, detectedMoments hints, and results with id, title, goals, moments, aspect, length, preview MP4, poster image, and editor URL. Engine details appear only when the engine filter is used.
- 2026-10-17 `render_previews` changed (description)
  - before: Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results. Animated loops (4-second animated WebP of each tailored template) take two calls. First call with loop: "start": it returns the posters as fast as without loops and starts the loops in the background. Show the posters. Then call again with the same arguments and loop: true: it waits for the loops and returns video (the loop URL) per template. A loop still rendering has video: null and videoPending: true; call once more to get it. Show each loop as an image (Markdown ![title](video)) where the host renders images, so the options animate.
  - after: Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results. shortened lists brand texts that were cut to fit a field ({role, from, to, max}); rewrite them for that field after the pick. Animated loops (4-second animated WebP of each tailored template) take two calls. First call with loop: "start": it returns the posters as fast as without loops and starts the loops in the background. Show the posters. Then call again with the same arguments and loop: true: it waits for the loops and returns video (the loop URL) per template. A loop still rendering has video: null and videoPending: true; call once more to get it. Show each loop as an image (Markdown ![title](video)) where the host renders images, so the options animate.
- 2026-10-17 `render_preview` changed (description, inputSchema)
  - before: Render a poster image of a template filled with the user's props, in a few seconds, and return it with the editor link. Call after get_template_spec once the props are filled, and show the image to the user. Invalid props return an error that names the field to fix. If rendering is unavailable, poster is null and the editor link still works. video is reserved for a short animated preview and is null for now.
  - after: Render a poster image of a template filled with the user's props, in a few seconds, and return it with the editor link. Call after get_template_spec once the props are filled, and show the image to the user. Invalid props return an error that names the field to fix. If rendering is unavailable, poster is null and the editor link still works. With loop: true it also waits for a 4-second animated WebP loop of these props and returns it as video. A loop still rendering has video: null and videoPending: true; call again with the same props to get it. loop: "start" returns the poster now and starts the loop in the background. Show the loop as an image (Markdown ![title](video)) where the host renders images.
- 2026-10-17 `render_previews` changed (inputSchema)
- 2026-10-17 `upload_logo` added
  - Upload the product's logo once, then pass the returned logo object as brand.logo to render_previews, or as props.logo in templates that support a logo (their spec lists editableFields.logo). Templates with a logo show it wherever they show the brand name; the brand text stays as its alt text. Send an SVG as text in svg, or a PNG, JPEG, WebP, or SVG file as base64 in data. Up to 1 MB. Prefer the project's SVG logo (for example public/logo.svg) or a PNG with a transparent background. mono: true draws the logo in the template's text color, which keeps it readable on any theme; it needs a transparent background.
- 2026-10-16 `render_previews` changed (inputSchema)
- 2026-10-16 `search_templates` changed (description, inputSchema) **meaning changed**
  - before: Find motion graphics video templates (launch videos, promos, intros, social reels, logo reveals, teasers) in the free cliphou.se catalog. Returns a searchId and results with id, title, aspect, length in seconds, preview MP4, poster image, and editor URL. Use this first when the user wants a video for a product, project, or announcement.
  - after: Find marketing video templates for a product, project, or announcement. Prefer a marketing goal, then add a short product or style query. Returns a searchId and results with id, title, goals, aspect, length, preview MP4, poster image, and editor URL. Engine details appear only when the engine filter is used.
- 2026-10-16 `render_previews` changed (description, inputSchema)
  - before: Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results. With loop: true, each result also has video: the URL of a 4-second animated WebP loop of the tailored template (null if it was not ready in time), and the call takes longer. Show the loop as an image (Markdown ![title](video)) where the host renders images, so the options animate.
  - after: Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results. Animated loops (4-second animated WebP of each tailored template) take two calls. First call with loop: "start": it returns the posters as fast as without loops and starts the loops in the background. Show the posters. Then call again with the same arguments and loop: true: it waits for the loops and returns video (the loop URL) per template. A loop still rendering has video: null and videoPending: true; call once more to get it. Show each loop as an image (Markdown ![title](video)) where the host renders images, so the options animate.
- 2026-10-16 `render_previews` changed (description, inputSchema)
  - before: Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results.
  - after: Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results. With loop: true, each result also has video: the URL of a 4-second animated WebP loop of the tailored template (null if it was not ready in time), and the call takes longer. Show the loop as an image (Markdown ![title](video)) where the host renders images, so the options animate.
- 2026-10-15 `render_previews` added
  - Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results.

Full history: https://api.protogrid.dev/v1/servers/se.cliphou%2Ftemplates/changes

## Remotes

- https://cliphou.se/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (6)

- `build_edit_link`: Validate filled-in props for a template and return a cliphou.se link that opens a live, editable preview of the customized video. The user can export the MP4 there. Invalid props return an error that names the field to fix.
- `get_template_spec`: Get the editable fields of one template: current props, text roles with maxLength, theme colors, scenes, format, JSON Schema, and the source package for local rendering. Call before build_edit_link and start from the returned props.
- `render_preview`: Render a poster image of a template filled with the user's props, in a few seconds, and return it with the editor link. Call after get_template_spec once the props are filled, and show the image to the user. Invalid props return an error that names the field to fix. If rendering is unavailable, poster is null and the editor link still works.
With loop: true it also waits for a 4-second animated WebP loop of these props and returns it as video. A loop still rendering has video: null and videoPending: true; call again with the same props to get it. loop: "start" returns the poster now and starts the loop in the background. Show the loop as an image (Markdown ![title](video)) where the host renders images.
- `render_previews`: Render posters of up to 4 templates at once, each filled with one brand description, so the user picks from options that already show their product. The server maps the brand onto each template's text fields and shortens text to fit. Returns, per template: id, title, poster URL (null if it was not ready in time), editor link, the tailored props to start from after the pick, and keptSample: text fields that still hold the template's sample text (fill them with real facts after the pick). Inline images follow the text, in the same order as the results.
shortened lists brand texts that were cut to fit a field ({role, from, to, max}); rewrite them for that field after the pick.
Animated loops (4-second animated WebP of each tailored template) take two calls. First call with loop: "start": it returns the posters as fast as without loops and starts the loops in the background. Show the posters. Then call again with the same arguments and loop: true: it waits for the loops and returns video (the loop URL) per template. A loop still rendering has video: null and videoPending: true; call once more to get it. Show each loop as an image (Markdown ![title](video)) where the host renders images, so the options animate.
- `search_templates`: Find marketing video templates for a product, project, or announcement. Prefer a marketing goal and, when project facts support it, a release moment; then add a short product or style query. Returns a searchId, the selected moment, detectedMoments hints, and results with id, title, goals, moments, aspect, length, preview MP4, poster image, and editor URL. Engine details appear only when the engine filter is used.
- `upload_logo`: Upload the product's logo once, then pass the returned logo object as brand.logo to render_previews, or as props.logo in templates that support a logo (their spec lists editableFields.logo). Templates with a logo show it wherever they show the brand name; the brand text stays as its alt text. Send an SVG as text in svg, or a PNG, JPEG, WebP, or SVG file as base64 in data. Up to 1 MB. Prefer the project's SVG logo (for example public/logo.svg) or a PNG with a transparent background. mono: true draws the logo in the template's text color, which keeps it readable on any theme; it needs a transparent background.
