Clipkit

dev.clipkit由 clipkit.dev 發布官方發布者v1.0.0更新於 Oct 24, 2026

MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.

已驗證Streamable HTTP可網頁執行開發者工具媒體與設計

概覽

AI 產生的概覽

Clipkit 把 JSON 影片 schema 包裝成工具,讓助理以程式化方式編排、預覽並匯出影片專案。

可以做什麼
  • 讀取文件與各元素類型的 JSON schema
  • 建立、整份取代、讀取並摘要影片專案的來源 JSON
  • 新增、修改或刪除單一元素(含巢狀元素)並驗證結果
  • 渲染單一畫格為 PNG,方便查看畫面
  • 依場景快速產生宣傳影片,或開啟網頁編輯器並稍後重新載入專案
  • 代管遠端媒體素材,並把音訊轉寫成帶詞級時間碼的字幕
適用情境
適合讓助理在對話中撰寫並反覆調整短片、宣傳片、片頭或資料影片,透過查看畫格檢查成果,最後交付編輯器連結或渲染完成的 MP4。
執行需求
使用 clipkit.dev 遠端端點,或以 npx 執行 npm 套件。可選 CLIPKIT_API_KEY(後台金鑰)讓專案歸屬團隊;CLIPKIT_API_URL 可覆寫主機位址。渲染成片需要該金鑰並消耗額度。
安裝前請注意
專案狀態依工作階段存在記憶體中,匿名專案 7 天後過期,需自行保存 JSON。render_video 為付費操作並消耗額度。ingest_asset 會抓取遠端媒體並代管於 Clipkit,匿名專案有數量與容量限制。API 金鑰以 bearer 權杖方式傳送。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Clipkit,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/dev.clipkit%2Fclipkit/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "clipkit": {
      "type": "http",
      "url": "https://www.clipkit.dev/mcp"
    }
  }
}

README

@clipkit/mcp-server

An MCP server that exposes the Clipkit schema as tools, letting AI agents compose video projects programmatically. The Clipkit schema is the protocol — agents don't speak a custom DSL, they construct schema-valid JSON.

Install + run

bash
npx -y @clipkit/mcp-server

Or wire it into a host like Claude Desktop:

json
{  "mcpServers": {    "clipkit": {      "command": "npx",      "args": ["-y", "@clipkit/mcp-server"],      "env": {        "CLIPKIT_API_URL": "https://clipkit.dev",        "CLIPKIT_API_KEY": "ck_live_…"      }    }  }}

Environment

VarPurpose
CLIPKIT_API_URLHost for create_promo / open_in_editor links. Defaults to https://clipkit.dev. Set to http://localhost:3000 when developing against a local web app.
CLIPKIT_API_KEYOptional dashboard key (ck_live_…, from Settings → API keys). When set, projects are owned by your team (permanent on paid plans) and sent as Authorization: Bearer. Without it, projects are anonymous and expire after 7 days.

Tools

ToolDescription
create_promoFastest path to a designed promo: an ordered list of scenes → composed via the pattern library → returns a shareable editor link.
create_projectReset to a blank source. Optional dimensions, duration, fps, output format.
set_projectReplace the entire source with a validated JSON object. The primary way to build (a composition, or many elements at once).
add_element / edit_element / delete_elementTweak a single element in an existing composition. edit_element merges a partial element (only the keys you pass change).
get_projectReturn the current Clipkit source JSON.
describe_projectPlain-language summary — dimensions, timeline by track, element counts, render-time warnings. Cheaper to read than the full JSON.
validate_projectSchema validation plus render-time warnings even when valid (emoji/non-ASCII dropped by the font atlas, elements past the end, missing duration).
preview_stillRender one frame to a PNG and return it as an image — how a chat-mode agent sees its work. Free + rate-limited.
transcribe_to_captionsTranscribe a media url (or local path) into a word-timestamped caption element. Whisper in-process — no key, no upload.
open_in_editorValidate the current project and return a link that opens it in the Clipkit editor (free).
load_projectRe-import a shared project by share id or editor URL — the round-trip for open_in_editor.
render_videoRender the current project to a finished MP4 in the cloud (paid — consumes credits, needs CLIPKIT_API_KEY).

Every mutation goes through @clipkit/protocol's validator before being applied. Invalid edits return a structured error with the offending path; valid edits are committed atomically.

Workflow

  1. Compose — create_promo for a designed video, or write a full source JSON and call set_project.
  2. See — preview_still to look at a frame; validate_project / describe_project for a structural read-back. Loop: edit → preview_still → fix.
  3. Tweak — add_element / edit_element / delete_element for single-element changes to a large composition.
  4. Deliver — open_in_editor for a free editor link (and load_project to re-import it later), or render_video for a finished MP4.

State

State is in-memory per server session. Each MCP connection gets a fresh project. There is no persistence; agents that want to save a project should call get_project and store the JSON externally.

Schema reference

See @clipkit/protocol for the full element type catalog (video, image, text, shape, audio, composition, caption) and their fields.

來源:packages/mcp-server/README.md,提交 dcc26e5

工具

15

read_docs

Read the Clipkit authoring 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 typing/cursor/clicks) — load ONE alongside the card when the brief matches its archetype; "agents" = the full authoring guide (fetch only when the card doesn't cover a need); "protocol" = the formal field spec; "brand" = brand reference. (Same docs offered as MCP resources, exposed as a tool so you can read them directly — resources are not always model-readable.)

輸入參數topic

get_schema

Get the Clipkit JSON Schema (exact fields)

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.

輸入參數element_type

create_project

Create a new Clipkit 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).

輸入參數widthheightdurationframe_rateproject_idoutput_ditheroutput_formatbackground_color

get_project

Get the current Clipkit project JSON

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.

輸入參數project_id

describe_project

Describe the current project in plain language

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.

輸入參數project_id

set_project

Replace the entire Clipkit 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 for changes, you are fixing your own work — you MUST pass its project_id so the project is updated in place and keeps one editor link and its version history. Omitting project_id creates a NEW, unrelated project and strands the old one; only omit for a genuinely different video. The input is validated against the @clipkit/protocol before being accepted; invalid inputs return an error. Shape: { width, height, duration, frame_rate, output_format, background_color?, defaults? (house easing, e.g. a spring), fonts?, camera?, lights?, elements:[…] }; every element has a `type` plus base fields (id, layer, x, y, width, height, time, duration, opacity, rotation, animations, keyframe_animations) and type-specific fields. CKP/1.1: keyframe easings accept a spring object {type:"spring", duration?, bounce?}; channels take stagger {each, from, ease, split, seed} to spread across text units / set copies / group children; groups take layout {direction, gap, align} (stack — no hand-computed positions); text takes a count-up {expr, format}. For exact field names + types call get_schema (optionally with an element_type) — the runtime ignores unrecognized keys, and this tool flags any it does not recognize.

輸入參數source必填project_id

add_element

Add an element to the current project

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 new element is validated as part of the project as a whole before being added. Call get_schema(element_type) for the exact per-type fields; unrecognized keys are flagged.

輸入參數element必填parent_idproject_id

edit_element

Tweak one existing element (merge changed fields)

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 composition or change many elements at once, edit the JSON and call set_project instead. The result is re-validated before being accepted.

輸入參數id必填patch必填project_id

delete_element

Delete one element by id

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.)

輸入參數id必填project_id

validate_project

Validate the current project (schema + render-time warnings)

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 timeline read-back, use describe_project.

輸入參數project_id

preview_still

Render one frame of the current project so you can SEE it

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; defaults to 0.

輸入參數timeproject_id

create_promo

Compose a designed promo from prebuilt scenes (one fast option)

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 original, author the JSON yourself and call set_project (the full creative range). When you do use this, MIX scene types to fit the brief and vary the structure — a video can be a single kinetic headline, three title cards, a showcase montage, or a data explainer; you do NOT need a hero or a cta. Scene types: hero (glass-orb logo reveal: wordmark, tagline?), kinetic (letter-fly headline: text, subtitle?), showcase (a screenshot tilted in 3D: screenshot URL), title (full-frame title card: headline, kicker?, subtitle?), cta (closing card with a glass button: wordmark, tagline?, cta), stats (hero numbers: stats[{label,current,previous?}], title?), bars (bar chart: bars[{label,value,previous?}], title?), ranking (top-N list: items[{label,value}], title?), pie (pie cards: cards[{label,value,total,previous?}], title?). The data scenes (stats/bars/ranking/pie) look best with theme "mux".

輸入參數themewidthheightscenes必填project_idmotion_blur

open_in_editor

Create a shareable link that opens the current project in the 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.

輸入參數project_id

ingest_asset

Host a remote image/video/audio so a project can use it

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 add more. Requires project_id.

輸入參數url必填filenameproject_id

load_project

Load a shared project back into the session

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.

輸入參數id_or_url必填project_id

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分