cliphou.se release videos

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

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
96%
命名の品質
100%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,339トークン数(ツール定義)
~3.0 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.83%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "templates": {
      "url": "https://cliphou.se/mcp"
    }
  }
}

リモートエンドポイント

https://cliphou.se/mcpstreamable-http

できること

ツール一覧

ツール(6)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟡upload_logo(svg, data)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "svg": {
      "description": "The logo as SVG text.",
      "type": "string",
      "maxLength": 1000000
    },
    "data": {
      "description": "The logo file as base64, or as a data: URL.",
      "type": "string",
      "maxLength": 1400000
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_templates(query, goal, aspect, maxSeconds, music, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Short product or style description, for example \"developer tool\" or \"minimal logo\".",
      "type": "string",
      "maxLength": 200
    },
    "goal": {
      "description": "Marketing goal. One of: launch-product (Launch a product), announce-feature (Announce a feature), share-update (Share an update), grow-waitlist (Grow a waitlist), announce-integration (Announce an integration), announce-pricing (Announce pricing), celebrate-milestone (Celebrate a milestone), share-social-proof (Share social proof), promote-event (Promote an event), introduce-brand (Introduce a brand), run-promotion (Run a promotion), hire-team (Hire for the team).",
      "type": "string",
      "enum": [
        "launch-product",
        "announce-feature",
        "share-update",
        "grow-waitlist",
        "announce-integration",
        "announce-pricing",
        "celebrate-milestone",
        "share-social-proof",
        "promote-event",
        "introduce-brand",
        "run-promotion",
        "hire-team"
      ]
    },
    "aspect": {
      "description": "Only when the destination implies it: 9:16 vertical (Reels, TikTok, Shorts), 16:9 (YouTube, web), 1:1 or 4:5 (feeds).",
      "type": "string",
      "enum": [
        "16:9",
        "9:16",
        "4:5",
        "1:1"
      ]
    },
    "maxSeconds": {
      "description": "Maximum video length in seconds.",
      "type": "integer",
      "minimum": 1,
      "maximum": 600
    },
    "music": {
      "description": "true for beat-synced templates with a generated soundtrack, false for silent ones.",
      "type": "boolean"
    },
    "purpose": {
      "description": "Exact catalog purpose, for example \"Product launch\".",
      "type": "string",
      "maxLength": 60
    },
    "engine": {
      "description": "Advanced source-package filter. Omit unless the user explicitly asks for an engine.",
      "type": "string",
      "enum": [
        "remotion",
        "hyperframes"
      ]
    },
    "limit": {
      "description": "Maximum results, default 6.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_template_spec(variantId, searchId)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "variantId": {
      "type": "string",
      "pattern": "^[a-z0-9-]{1,100}$",
      "description": "Template id from search_templates."
    },
    "searchId": {
      "description": "The searchId returned by search_templates. Pass it through so picks can be measured.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,40}$"
    }
  },
  "required": [
    "variantId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢build_edit_link(variantId, props, templateVersion, searchId)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "variantId": {
      "type": "string",
      "pattern": "^[a-z0-9-]{1,100}$",
      "description": "Template id."
    },
    "props": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The full props object from get_template_spec with edited texts, theme, and media."
    },
    "templateVersion": {
      "description": "Only for older template versions. Usually omit.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "searchId": {
      "description": "The searchId returned by search_templates. Pass it through so picks can be measured.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,40}$"
    }
  },
  "required": [
    "variantId",
    "props"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢render_preview(variantId, props, templateVersion, searchId)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "variantId": {
      "type": "string",
      "pattern": "^[a-z0-9-]{1,100}$",
      "description": "Template id."
    },
    "props": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The full props object from get_template_spec with edited texts, theme, and media."
    },
    "templateVersion": {
      "description": "Only for older template versions. Usually omit.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "searchId": {
      "description": "The searchId returned by search_templates. Pass it through so picks can be measured.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,40}$"
    }
  },
  "required": [
    "variantId",
    "props"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢render_previews(variantIds, brand, loop, searchId)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "variantIds": {
      "minItems": 1,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-z0-9-]{1,100}$"
      },
      "description": "Template ids from search_templates."
    },
    "brand": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60,
          "description": "Product or company name."
        },
        "headline": {
          "description": "The hook: a pain, question, number, or benefit, as short as possible.",
          "type": "string",
          "maxLength": 120
        },
        "subhead": {
          "description": "One sentence: who it is for and what it solves.",
          "type": "string",
          "maxLength": 200
        },
        "points": {
          "description": "2-3 benefits backed by real features or facts, short phrases.",
          "maxItems": 6,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 80
          }
        },
        "cta": {
          "description": "Call to action, for example \"Start free\".",
          "type": "string",
          "maxLength": 60
        },
        "date": {
          "description": "Launch or availability date, only if the project states one.",
          "type": "string",
          "maxLength": 40
        },
        "logo": {
          "description": "The logo object from upload_logo. Templates with a logo slot show it in place of the brand name.",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "ratio": {
              "type": "number",
              "minimum": 0.2,
              "maximum": 8
            },
            "mono": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "ratio",
            "mono"
          ]
        },
        "theme": {
          "description": "Brand colors as #RRGGBB. Keep good contrast between foreground and background.",
          "type": "object",
          "properties": {
            "background": {
              "type": "string",
              "pattern": "^#[a-fA-F0-9]{6}$"
            },
            "surface": {
              "type": "string",
              "pattern": "^#[a-fA-F0-9]{6}$"
            },
            "foreground": {
              "type": "string",
              "pattern": "^#[a-fA-F0-9]{6}$"
            },
            "accent": {
              "type": "string",
              "pattern": "^#[a-fA-F0-9]{6}$"
            },
            "accent2": {
              "type": "string",
              "pattern": "^#[a-fA-F0-9]{6}$"
            }
          }
        }
      },
      "required": [
        "name"
      ],
      "description": "The product facts from the user's project. Never invent numbers."
    },
    "loop": {
      "description": "\"start\" returns the posters now and starts 4-second animated loops in the background. true waits for the loops and returns them as video.",
      "anyOf": [
        {
          "type": "string",
          "const": "start"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "searchId": {
      "description": "The searchId returned by search_templates. Pass it through so picks can be measured.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,40}$"
    }
  },
  "required": [
    "variantIds",
    "brand"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 6 件