Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "search_templates"
⟨7 unchanged words⟩ , 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 ⟨13 unchanged words⟩
⟨150 unchanged words⟩ "minimum":1,"type":"integer"},"moment":{"description":"Release moment backed by project facts. Filters and ranks templates for it. One of: most-requested-feature (Most-requested feature shipped), generally-available (Available to everyone), limit-raised (A limit was raised or removed), faster (Something got faster), manual-step-removed (A manual step disappeared), integration-live (An integration went live), pricing-changed (Pricing changed), reliability-fix (A reliability fix landed), new-language-or-region (New language or region), new-platform (New platform), free-resource (Free tool or resource released), milestone (A real milestone was reached).","enum":["most-requested-feature","generally-available","limit-raised","faster","manual-step-removed","integration-live","pricing-changed","reliability-fix","new-language-or-region","new-platform","free-resource","milestone"],"type":"string"},"music":{"description":"true for beat-synced templates ⟨48 unchanged words⟩
Changed the definition of "render_preview" and "render_previews"
⟨54 unchanged words⟩ is null and the editor link still works. Withvideoloop:istruereservedit also waits for ashort4-second animatedpreviewWebP loop of these props andisreturns it as video. A loop still rendering has video: nullforand
Added "upload_logo"; changed the definition of "render_previews" (5 tools before, 6 now)
⟨47 unchanged words⟩ :"string"},"headline":{"description":"MainThemessagehook: a pain, question, number, or benefit, as short as possible.","maxLength":120,"type":"string"},"logo":{"description":"The logo object from upload_logo. Templates with a logo slot show it in place of the brand name.","properties":{"id":{"pattern":"^[a-f0-9]{64}$","type":"string"},"mono":{"type":"boolean"},"ratio":{"maximum":8,"minimum":0.2,"type":"number"}},"required":["id","ratio","mono"],"type":"object"},"name":{"description":"Product or company name. ⟨5 unchanged words⟩ string"},"points":{"description":"2-3 benefits backed by real features or facts, short phrases.","items ⟨7 unchanged words⟩ array"},"subhead":{"description":"Onesupportingsentence:sentence.
Changed the definition of "render_previews" and "search_templates"
⟨91 unchanged words⟩ text, in the same order as the results. AnimatedWithloopsloop:(4-secondtrue,animated WebP of eachresulttailoredalsotemplate)hastakevideotwo calls. First call with loop: "start": it returns theURL
Certificate recorded, valid to 2027-01-12
Authorization not required
Changed the definition of "render_previews"
⟨91 unchanged words⟩ 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 ) where the host renders images, so the options animate.
⟨156 unchanged words⟩ ["name"],"type":"object"},"loop":{"description":"true to also render a 4-second animated WebP loop of each template. Slower; posters still come back if a loop is not ready.","type":"boolean"},"searchId":{"description":"The searchId returned by ⟨43 unchanged words⟩
Added "render_previews" (4 tools before, 5 now)
Render tailored 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.
Added "render_preview"; changed the definition of "build_edit_link", "get_template_spec" and "search_templates" (3 tools before, 4 now)
⟨21 unchanged words⟩ :"string"},"type":"object"},"searchId":{"description":"The searchId returned by search_templates. Pass it through so picks can be measured.","pattern":"^[A-Za-z0-9_-]{8,40}$","type":"string"},"templateVersion":{"description":"Only for older template ⟨26 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"searchId":{"description":"The searchId returned by search_templates. Pass it through so picks can be measured.","pattern":"^[A-Za-z0-9_-]{8,40}$","type":"string"},"variantId":{"description":"Template id from search_templates. ⟨12 unchanged words⟩
Changed the definition of "build_edit_link", "get_template_spec" and "search_templates"
before
—after
Build editor linkValidateeditedfilled-in props for a template and return a cliphou.se link that opens a live, editable preview of theeditcustomizedinvideo. The user can export thebrowserMP4editor.there. Invalid props return an error that names the field to fix.
Unknown → Live
First tool surface recorded: 3 tools (server version 1.0.0)
https://cliphou.se/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 13 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"loop":{"anyOf":[{"const":"start","type":"string"},{"type":"boolean"}],"description":"true waits for a 4-second animated loop of these props and returns it as video. \"start\" only starts it."},"props":{"additionalProperties":{},"description":" ⟨72 unchanged words⟩
⟨92 unchanged words⟩ , 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 ⟨86 unchanged words⟩
Upload brand 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 transpa…
⟨157 unchanged words⟩ ,"type":"object"},"loop":{"anyOf":[{"const":"start","type":"string"},{"type":"boolean"}],"description":"true\"start\"toreturnsalsotherenderpostersanow4-secondandanimatedstartsWebP4-secondloopanimatedofloopseachintemplate.theSlower;background.posterstruestillwaitscomeforbacktheifloopsaandloopreturnsisthemnotasready.","type":"booleanvideo."},"searchId":{"description":"The searchId ⟨45 unchanged words⟩
Findmotion graphicsmarketing video templates(launchforvideos,apromosproduct,introsproject,socialorreels,announcement.logoPreferrevealsa marketing goal,teasers)theninaddtheafreeshortcliphou.seproductcatalog.or style query. Returns a searchId and results with id, title, goals, aspect, lengthin seconds, preview MP4, poster image, and editor URL.UseEnginethisdetailsfirstappear only when theuser wants a video for a product,engineproject,filterorisannouncement.used.
⟨39 unchanged words⟩ :"string"},"engine":{"description":"RenderingAdvancedenginesource-packageoffilter. Omit unless thesourceuserpackage.explicitlyUsuallyasksomit.for an engine.","enum":["remotion","hyperframes"],"type":"string"},"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).","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"],"type":"string"},"limit":{"description":"Maximum results, default ⟨50 unchanged words⟩ string"},"query":{"description":"Shortdescriptionproduct
⟨13 unchanged words⟩ teasers) in the free cliphou.se catalog. Returns a searchId and results with id, title, aspect, length in seconds, ⟨22 unchanged words⟩
Render personalized 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. video is reserved for a short animated preview and is null for now.
⟨4 unchanged words⟩ ":{"props":{"additionalProperties":{},"description":"The full props object from get_template_spec with edited texts, theme, and media.","propertyNames":{"type":"string"},"type":"object"},"templateVersion":{"description":"Only for older template versions. Usually omit.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"variantId":{"description":"Template id.","pattern":"^[a-z0-9-]{1,100}$" ⟨7 unchanged words⟩
before
—after
Get template specGet theagenteditablespecfieldsforof one template:editablecurrent props, text rolesandwithlimitsmaxLength, theme colors, scenes, format, JSON Schema, and the sourcepackage.package for local rendering. Call before build_edit_link and start from the returned props.
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"variantId":{"description":"Template id from search_templates.","pattern":"^[a-z0-9-]{1,100}$", ⟨6 unchanged words⟩
before
—after
Search video templatesSearch the cliphou.seFind motion graphicstemplatevideo templates (launch videos, promos, intros, social reels, logo reveals, teasers) in the free cliphou.se catalog. Returnstemplateid,idstitle,specaspect,URLslength in seconds, preview MP4, poster image, and editorURLs.URL. Use this first when the user wants a video for a product, project, or announcement.
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"aspect":{"description":"Only when the destination implies it: 9:16 vertical (Reels, TikTok, Shorts), 16:9 (YouTube, web), 1:1 or 4:5 (feeds).","enum":["16:9","9:16","4:5","1:1"],"type":"string"},"engine":{"description":"Rendering engine of the source package. Usually omit.","enum":["remotion","hyperframes"],"type":"string"},"limit":{"description":"Maximum results, default 6.","maximum":20,"minimum":1,"type":"integer"},"maxSeconds":{"description":"Maximum video length in seconds.","maximum":600,"minimum":1,"type":"integer"},"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\".","maxLength":60,"type":"string"},"query":{"description":"Short description of the video, for example \"saas product launch\" or \"logo intro\".","maxLength":200,"type":"string"}},"type":"object"}