Server data from the Official MCP Registry
Launch videos that auto adapt to what you're building, right in your coding agent.
About
Launch videos that auto adapt to what you're building, right in your coding agent.
Remote endpoints: streamable-http: https://cliphou.se/mcp
Security Report
Valid MCP server (2 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
3 tools verified · Open access · No issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Found in Source Code
Found by scanning the linked source code. This listing connects to a hosted endpoint, so none of this runs on your machine: it describes what the server software does where it is hosted.
How to Connect
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"se-cliphou-templates": {
"url": "https://cliphou.se/mcp"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
cliphou.se
cliphou.se is a gallery of AI-generated Remotion and HyperFrames videos. Users can find videos with faceted filters, edit text and colors inline, and keep private starred collections through Google sign-in. Each template is locked to one engine, while the editor, agent handoff, sharing, and export flows use the same contract.
The Firebase-hosted site is at https://cliphouse-app.web.app/. The production domain is https://cliphou.se/ after the Loopia DNS cutover. Pushes to main deploy through keyless GitHub Actions. The previous https://sunmer.github.io/voodoo/ address is retained.
See deployment.md for configuration and the Loopia cutover checklist. See sharing.md for saved video links, rendering, and the pending paid-service activation. See agents.md for agent specs, handoff links, source packages, and template versions.
Run
npm install
npm run dev # http://localhost:5180/voodoo/
npm run studio # Remotion Studio
node scripts/previews.mjs # rebuild gallery posters and MP4 loops in public/previews
npm run previews:hyperframes # rebuild HyperFrames posters and loops
Accounts And Analytics
Use .env.example to configure the public Firebase web settings and GA4 measurement ID. Never put a service-account key or OAuth client secret in a VITE_ variable. Missing configuration leaves browsing and editing available but does not pretend to save bookmarks.
Stars use users/{uid}/bookmarks/{variantId} in Firestore. Rules restrict all access to the account owner and validate the payload. Sign-out clears the visible collection. Existing voodoo: local-storage keys are intentionally retained so the rebrand does not discard edits on the same origin. Local edits cannot automatically transfer from the GitHub Pages origin to cliphou.se.
Analytics loads automatically when configured, without a consent banner. The site sends explicit hash-route page views and a small set of actions, without account IDs or editable text. Disable automatic enhanced measurement on the GA4 web stream to avoid duplicate page views or automatic collection. Review consent obligations before public launch; this configuration is not a compliance guarantee.
Google pop-ups can be blocked inside social apps. The error state permits retrying in a regular browser. Native iPhone sign-in still needs a real-device acceptance test before launch.
Taxonomy
The catalog uses three levels:
- Template: code in
src/videos/<id>/. It sets the scenes, motion, and timing. Its technical facts, such as size, fps, duration, scenes, and motion, are inmeta.ts. - Variant: an entry in
manifest.json. It is a template plus preset text and theme values, plus curated facets: purpose, style, energy, and keywords. Users browse variants. - Remix: a user's edit of a variant. Save keeps a private account draft. Publishing saves an immutable composition and JPEG thumbnail behind a share link; the website animates the saved composition without a rendered MP4.
Facets come from different sources:
| Facet | Source |
|---|---|
| Format, duration, placement | Template size and fps |
| Scenes, motion | Template meta.ts. The timeline reads the same data. |
| Tone (dark or light) | Brightness of the theme background |
| Purpose, style, energy | Curated in manifest.json, using only vocab terms |
Shared Roles
All templates use the text roles in src/videos/vocab.ts: brand, headline, subhead, point1 to point3, and cta. All templates also use the same five theme roles. Because of this, the brand kit can apply one set of values to every video. Each card then shows one static Remotion frame with the user's text, but only while the card is on screen.
Content roles hold text that belongs to one video, so the brand kit never fills them. quote (140 characters) and author (40 characters) are content roles for testimonials. Countdown digits come from the timeline, not from a text role. Image logo upload is not part of the contract yet; Wordmark animates the brand name as text.
Add A Template
HyperFrames templates live in src/hyperframes/<id>/index.html. Use the shared __BASE_CSS__, __BASE_JS__, and __ASSET_BASE__ placeholders, mark editable text with data-text-role and data-var-text, and register the template ID in src/videos/engine.ts. Their source packages are native HyperFrames projects with variables.json; run npx hyperframes check on an extracted package before publishing.
- Generate a composition that reads all text from
props.textswith shared roles, and all color fromprops.theme. - Add
meta.tswith its scenes. Each scene hasfrom,duration,focus, androles. Map the components to scenes in the same order withSceneTrackfromsrc/videos/shared/scenes.tsx. Each role must be visible at its scene's midpoint because inline tests seek there. - Add the schema with
textsSchema([...roles])andthemeSchema, and register the template insrc/videos/registry.tsandsrc/videos/meta.ts. - Add the template and one visible variant to
manifest.json. Keep retired variants with"hidden": trueso existing links still open. Then runnode scripts/previews.mjs. - Mark each editable text group with
data-text-role="headline"(or the matching shared role). Usedisplay: contentson additional wrappers to preserve the composition layout. Tag the copy itself, not decorative labels or whole scenes. - Add the schema to
src/videos/schemas.ts. Runnpm run sourcesto publish its source package and version. Run it again after any template or shared helper change.
Editor
- Mobile uses a screen-filling stage with overlay controls. Landscape compositions fill the phone when it rotates to landscape. The expand button requests native fullscreen and landscape orientation where supported; otherwise it uses the browser viewport. Desktop keeps a contained preview.
- Click or tap visible text to pause and edit that role in place. Confirm to save one undo step, or cancel. Scene buttons expose later text without a separate text panel.
- Theme controls sit below the video. Video details show the original creative brief with a copy action. Related videos and taxonomy are not part of the editor.
- Saved props are validated before loading. Invalid text cannot be committed. Changes remain available after reloading.
- Share replaces the JSON download. Publishing requires Google sign-in; recipients can view without it. Live publishing stays unavailable until the rendering service is configured.
Notes
- Preset gallery cards autoplay muted MP4s when at least 35% visible. Scrolling away or hiding the page unloads them. Reduced-motion settings keep the poster, as does a rejected autoplay request.
- iPhone/iPad live compositions skip costly grain, blur, and selected 3D layers. Exported videos retain the full effects. Browser emulation cannot prove stability on every physical iPhone.
- The gallery shows one preset per template. Retired color presets stay hidden but remain valid for bookmarks, saved drafts, and share links. Flex measures glyph bounds to fit variable-width text.
Verify
npm run build
npm test
npm run test:agent
npm run test:source-render -- stack
npm run test:rules # requires Java 21 on PATH
node scripts/smoke.cjs
node scripts/smoke-ios.cjs
node scripts/smoke-media.cjs
node scripts/smoke-media.cjs --ios
node scripts/smoke-inline.cjs
node scripts/smoke-inline.cjs --ios
node scripts/smoke-editor-layout.cjs
node scripts/smoke-editor-layout.cjs --ios
node scripts/smoke-editor-layout.cjs --mobile
Additional integration checks:
# Run a separate Vite server with VITE_GA_MEASUREMENT_ID=G-TEST123.
URL=http://127.0.0.1:5181/voodoo/ node scripts/smoke-analytics.cjs
# Start local emulators with project demo-cliphouse, then start Vite with
# VITE_FIREBASE_EMULATORS=true and demo Firebase settings.
firebase emulators:start --project demo-cliphouse --only auth,firestore
URL=http://127.0.0.1:5182/voodoo/ node scripts/smoke-sync.cjs
The emulator switch is ignored in production builds. Security tests cover unauthenticated access, cross-account access, payload validation, and owner writes.
Run the browser checks against the dev server, or set URL to the deployed site. Media checks cover viewport autoplay, background cleanup, blocked autoplay, reduced motion, complete editor loops, and Flex text fitting. Screenshots are viewport-sized and written under /tmp/voodoo-*.
Inline checks edit every role in every template and verify undo, redo, and persistence. Layout checks cover mobile rotation, the fullscreen fallback, orientation requests, duplicate text values, and validation. The synthetic keyboard viewport test runs in mobile Chromium because overriding that native property crashes this Mac's WebKit test runner; physical-device keyboard behavior still needs manual confirmation.
Design reference: Adobe's 2026 design trends, including tactile collage and playful typography. Playback reference: WebKit's inline autoplay policies.
Rendering
- Remotion's downloaded headless Chrome hangs on this machine.
remotion.config.tsand the preview script use Playwright's cached headless shell instead. To use another browser, setREMOTION_BROWSER. - Remotion needs a company license above a small team size. See remotion.dev/license.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Worldmonitor
Freeby Koala73 · Developer Tools
Live markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
