Skip to content

cliphou.se release videos

by cliphou.se · remote · no sign-in to list tools · v1.6.2 · published by se.cliphou

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

Changes · 4

6 tools: 4 change things and 2 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http templates https://cliphou.se/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "build_edit_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "build_edit_link" says "edit": a word for a change.

    What this check looks for
  • The server marks "render_preview" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "render_preview" says "preview": a word for reading.

    What this check looks for
  • The server marks "render_previews" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "render_previews" says "preview": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

6 tools

Changes things 4Claude Code: ask
  • render_previewRender a poster image of a template filled with the user's props, in a few seconds, and return it with the editor link.1 finding

    Why it is in this group

    • The name "render_preview" says "preview": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "render_preview" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "render_preview" says "preview": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • render_previewsRender 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.1 finding

    Why it is in this group

    • The name "render_previews" says "preview": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "render_previews" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "render_previews" says "preview": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 2Claude Code: allow
  • get_template_specGet 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.No findings

    Why it is in this group

    • The name "get_template_spec" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • search_templatesFind marketing video templates for a product, project, or announcement.No findings

    Why it is in this group

    • The name "search_templates" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.6.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http templates https://cliphou.se/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__templates__search_templates",
      "mcp__templates__get_template_spec"
    ],
    "ask": [
      "mcp__templates__upload_logo",
      "mcp__templates__build_edit_link",
      "mcp__templates__render_preview",
      "mcp__templates__render_previews"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as templates. Review it before you use it.