MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
| Endpoint | https://www.clipkit.dev/mcp (streamable-http) |
|---|---|
| Registry version | 1.0.0 |
| Now | 15 tools · grade C (77) · pin ts_5090bee342042eab9f64416bf72f80f2 · protocol 2025-06-18 |
| First / last listed | 2026-11-13 00:45 UTC / 2026-11-13 00:45 UTC |
| Grade over time | 2026-11-13: C (77), 15 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: read_docs get_schema create_project get_project describe_project set_project add_element edit_element delete_element validate_project preview_still create_promo open_in_editor ingest_asset load_project
read_docs | Return a canonical Clipkit doc as text. topic "card" = the ~8KB compact authoring card — the recommended context for authoring; "pattern-lighting" = the shine/neon/glow technique rigs; "pattern-data-viz" / "pattern-cinematic-ui" / "pattern-ui-screencast" / "pattern-promo-teaser" = ~4-5KB pattern cards (proven idioms: count-ups and bar rows; product hero shots with camera rigs; faked app UI with ty params: topic |
get_schema | Return the authoritative JSON Schema for a Clipkit Source — exact field names, types, and enums, generated from the protocol. Call with no argument for the full Source schema, or with element_type (e.g. "text", "shape", "particles") for just that element's fields (much smaller). Use this when authoring with set_project / add_element so you never guess a field. params: element_type |
create_project | Create a new, blank Clipkit project with the given dimensions and duration, and return its project_id. Defaults: 1920×1080, 10 seconds, 30 fps, output_format "mp4". Call this first when starting a new video. Pass an existing project_id to reset that project to blank; omit it to start a fresh project (note the returned id for subsequent tools). params: width, height, duration, frame_rate, output_format, background_color, output_dither, project_id |
get_project | Return the full current Clipkit source as JSON. Use this to inspect the project, pass it to a render pipeline, or compose follow-up edits. params: project_id |
describe_project | Return a compact, human-readable summary of the current project — dimensions, fps, duration, an element breakdown by type, a per-track timeline (paint order low→high), and render-time warnings. Much cheaper to read than get_project's full JSON; use it to orient yourself or sanity-check structure without dumping the whole source. params: project_id |
set_project | Replace the entire project with the given source JSON, returning its project_id. This is the PRIMARY way to build: use it to create a composition or to add/change many elements at once. (To tweak a single element in an existing project, use edit_element / add_element / delete_element instead.) REVISION RULE: if you are iterating on a video that already exists in this conversation — the user asked params: source*, project_id |
add_element | Append a single element to an existing project — a TWEAK, e.g. dropping in one more caption or shape. By default it is added at the top level; pass parent_id to add it INTO a group (nested). The element is any valid schema element: video, image, text, shape, audio, group, caption, or particles. To create a composition or add several elements at once, build the JSON and use set_project instead. The params: element*, parent_id, project_id |
edit_element | Change fields on the element with the given id by merging in a partial element — only the keys you include change. The id may be any element ANYWHERE in the tree, including one nested inside a group (or its mask). Pass a whole nested value (e.g. a new `keyframe_animations` array) to replace that key; set a key to null to remove it. This is for TWEAKING an existing composition. To create a composit params: id*, patch*, project_id |
delete_element | Delete the element with the given id, anywhere in the tree (including one nested inside a group or its mask) — a tweak to an existing composition. (The project must keep at least one top-level element.) params: id*, project_id |
validate_project | Run the @clipkit/protocol validator against the current project AND surface render-time warnings even when the JSON is valid — things that pass the schema but the runtime will silently drop or clip: emoji / non-ASCII text (the runtime font atlas is ASCII-only), elements that run past the composition end, a missing top-level duration. Run it before you share or render the project. For a fuller time params: project_id |
preview_still | Render a single frame of the current project to a PNG and return it as an image you can look at. This is how you check your work — in chat there is no other way to see what a composition actually looks like. Use it liberally: after composing, after edits, and at different times to inspect motion. Stills are FREE (credits are only spent by render_video). Pass `time` (seconds) to choose the frame; d params: time, project_id |
create_promo | Assemble a designed-looking promo/intro/product/data video from the Clipkit pattern library: give an ordered list of SCENES and the words, and it bakes in the camera, glass, lighting, motion blur, timing, and layout, then returns an editor link. This is a FAST option when a conventional promo structure fits — it is NOT the only way to make a video and NOT a default; for anything specific or origin params: scenes*, theme, motion_blur, width, height, project_id |
open_in_editor | Validate the current project and create a link that opens it in the Clipkit web editor, where the user can preview and refine it. This shares the PROJECT (nothing is rendered — that's render_video). Use after composing or editing. Returns a URL. params: project_id |
ingest_asset | Fetch a remote media URL (image/video/audio) and HOST it on Clipkit, returning a stable asset_url to put in an element's `url`. Use this so the project's media survives — the original link may rot, be private, or block hotlinking. Anonymous projects allow up to 5 hosted assets / 100 MB total / 50 MB per file; when the limit is hit, tell the user to open the project (open_in_editor) and sign in to params: url*, filename, project_id |
load_project | Import a previously shared project as the current project, by its share id or its editor URL (e.g. https://clipkit.dev/editor?id=…), returning its project_id. Use this to continue working on a project the user opened in the editor or shared earlier — the round-trip for open_in_editor. Pass an existing project_id to load into that project; omit it to load into a new one. params: id_or_url*, project_id |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.