motionprompts

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

規劃頁面、挑選 GSAP 動效元件,並取得其建立提示詞與組合規則。

AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。

原文描述

Plan pages, pick GSAP motion components and get their build prompts and composition rules.

已驗證Streamable HTTP可網頁執行

概覽

motionprompts 的託管 MCP 服務(motionprompts.dev),由 motionprompts.dev 發布;可選 API 金鑰;Streamable HTTP;14 個工具。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

發布者
motionprompts.dev
端點
motionprompts.dev
最近檢查

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

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

README

motionprompts MCP

[motionprompts: GSAP and WebGL components, each with a live demo and a validated prompt]

An MCP server over a catalog of 259 production-grade GSAP motion components (motionprompts.dev). A curated set of components is free with the full prompt; the rest of the library returns a 12-line preview until you pass a Full Stack key (Authorization: Bearer mpk_..., from motionprompts.dev/account). Plans: motionprompts.dev/pricing. It does not generate animations: it hands you the ones that are already solved and debugged, tells you how to compose them without them fighting each other, and says so plainly when the catalog does not have what you asked for.

What it exposes

ToolWhat for
plan_pageThe information architecture of a page: 9–14 sections with their role, their job, and whether they should move. Deliberately returns no components.
suggest_mechanicsMechanics for one section, filtered by the real facets of its role. Knows how to answer that there is nothing.
suggest_page_treatmentsThe twin of suggest_mechanics for mechanics that belong to the page, not a section slot: smooth scroll, shaped edges between sections, running backgrounds.
get_integration_contractRepairs, mount order and budget for a set of components. It is what stops two entry veils from coexisting, and — given moving_sections — what tells you to your face that the page is under-animated.
plan_imageryImage direction section by section: which shot is needed, with which model (people, objects and landscape are not interchangeable), how to get transparency, and where real logos come from. Returns text: it generates nothing.
get_component_promptThe author's prompt verbatim + the motion-system tokens + the instruction to adapt it yourself.
search_componentsFree-text search with lexical_coverage: reliable for saying "there is nothing here", not for saying "this is the best".
search_components_motionSearch by measured motion metadata (trigger, cluster, easing, duration) instead of by looks.
get_componentMeta, preview, prompt and — where the distribution carries it — source.
list_facets · list_components · list_motion_systems · get_motion_systemVocabulary and tokens.
render_promptDeprecated; use get_component_prompt.

Hosted endpoint — no install

The server runs live at https://motionprompts.dev/mcp (Streamable HTTP, stateless; a Bearer key is optional and unlocks the paid prompts). Add it to Claude Code with one command and you are done:

bash
claude mcp add --transport http motionprompts https://motionprompts.dev/mcp

Discovery manifest: motionprompts.dev/.well-known/mcp.

Local installation

Requires Node 20 or newer. No API key and no environment variables for the free set; the local package carries only the free prompts in full (the paid ones as previews), so for the whole library use the hosted endpoint with your key.

The package is on npm as motionprompts-mcp — no clone needed:

bash
claude mcp add motionprompts -- npx -y motionprompts-mcp

Or from a clone:

bash
git clone https://github.com/VanguardiaAI/motionprompts-mcp.gitcd motionprompts-mcpnpm install

Claude Code

bash
claude mcp add motionprompts -- node /absolute/path/to/motionprompts-mcp/mcp/server.mjs

Claude Desktop and other clients

In the client's JSON configuration:

json
{  "mcpServers": {    "motionprompts": {      "command": "node",      "args": ["/absolute/path/to/motionprompts-mcp/mcp/server.mjs"]    }  }}

Check that it works:

bash
npm run verify      # end-to-end battery over the real MCP protocol

To self-host the HTTP endpoint instead of stdio: npm run start:http (defaults to 127.0.0.1:4478; configure with MCP_HTTP_HOST / MCP_HTTP_PORT).

About API keys: none needed

This server uses no key and cannot spend anyone's money. It reads no environment variables, asks for no secrets, and makes not a single network call: it opens files from disk and returns text. It is a catalog reader.

That includes plan_imagery, which talks about image models and transparent backgrounds: it returns text. It is a recipe, not a generator. It names the three models we use ourselves because that is the useful information — which one is for what — but it calls none of them, and the writing and cut-out rules work the same with whatever provider you prefer.

If you came looking for the notice about kie.ai: that key belongs to a separate authoring tool — the one that generated the photography for the example pages — which is not part of this package. It is excluded on purpose, so nothing in here can generate images or bill anyone. If you want photography for your pages, use whatever service you prefer with your own account.

How to use it well

Order matters, and it is the hardest thing to get right:

  1. plan_page first. It returns sections, not components: a page can only be as rich as the list it is composed from, and composing straight from animation mechanics flattens it to five sections. Adjust the list to the actual brief before going on.

  2. suggest_mechanics per section, with avoid to exclude what you already used. Without it you will repeat components: broad roles offer a hundred-plus candidates with tied scores, and reusing the same need string always returns the same first hit.

    avoid is for not repeating yourself, not for animating less. If you discard the #1 because it is taken, take the #2 — they are tied. A section left static because its first candidate was already used is the most expensive failure of this flow, and it was literally an if in the example script.

  3. get_integration_contract with all the slugs at once, before writing a line, and with moving_sections set: it is the coverage audit.

  4. get_component_prompt per component. Re-dress, don't reimplement: change images, copy, palette, typography and element counts, and keep the mechanic. Discard a component only if its MECHANIC does not fit — never on aesthetic taste.

  5. plan_imagery before writing a single image prompt, with the same section list.

Five roles are declared catalog gaps (faq, data, pricing, testimonial, reference): there is nothing for them among the 259 components. But "no component" does not mean "this section stays still": they are three to five sections out of a thirteen-section page, and suggest_mechanics returns for each one a recipe written in the token vocabulary (hand_written_recipe). For everything else, adopt.

Overshoot rather than undershoot

plan_page returns a motion_coverage block with the math done: how many sections should move, which are covered by adopting and which by recipe. One of them ending up with nothing is a defect of the page, not a style decision. The mistake people make is not excess: it is spreading four mechanics across the showy sections and leaving the rest blank. What saves a page from noise is not scarcity of motion — it is everything moving in the same language, and the motion system already takes care of that.

Images are what still gives a generated page away

With architecture and motion solved, what keeps ringing false is the imagery. plan_imagery encodes the three measured defects and their remedy:

  • The image belongs to the industry, not to the section. Competitor test: if the prompt would work unchanged on a competitor's page, it is generic. It must carry a fact that is only true on this page.
  • Nobody appears. People go to nano-banana-2 and only that one: the other two give them a recognizable tint or plainly cannot do faces.
  • Everything is a rectangle with a background. Cut-outs go to gpt-image-2.5 with background: transparent, which returns real alpha (the magenta chroma key is kept only as a fallback for old raws). And they are requested in sheets of six — an invisible 3×2 grid — because a generation costs the same whether it carries one or six. A shot that fails on one detail is retouched image-to-image from its own raw, not re-rolled.

And logos are never generated: they are looked up on Wikimedia (Wikidata → P154 → Commons). No model draws a real logotype without breaking the letters, and a marquee of invented brands reads as fake instantly.

Pages built with it

The source repository contains five complete pages built with this server, each with a README documenting which mechanic was adopted, which was re-dressed and which was discarded and why. Every component in the catalog has a live demo and build notes at motionprompts.dev.

What this distribution does NOT carry

The components' source code. You get the prompts, the metadata, the composition rule engine and the server. You do not get each piece's index.html / script.js / styles.css.

That is not a gap: it is how these are meant to be used. The prompt is the product — a self-sufficient brief that rebuilds the mechanic from scratch and adapts it to your page, instead of pasting someone else's component into it. The example pages were built exactly that way: adopting mechanics and re-dressing them, not copying code.

get_component with include: ['source'] says so explicitly and returns the live demo and the prompt URL instead. Everything else — search_components, plan_page, suggest_mechanics, get_integration_contract, get_component_prompt — works the same.

License

PolyForm Noncommercial 1.0.0 with mandatory attribution. Noncommercial use allowed; commercial use requires a separate license. Any permitted use must keep the notice and visibly credit motionprompts.dev. See LICENSE.

It is not an OSI-approved license, so npm and GitHub will flag it as non-standard. If you are going to rely on it for anything serious, have a lawyer read it: I am not one.

來源:README.md,提交 d6b96ee

工具

14

search_components

Search components

Find the components that best fit a natural-language brief (e.g. "un hero elegante para una marca de lujo", "cartas apiladas al hacer scroll") or a name/alias. Returns a ranked, compact list with a `why` for each hit. Combine the free-text `query` with facet filters to narrow. Then call get_component on the chosen slug. Leave `query` empty to browse purely by filters.

輸入參數depsmoodlevellimitqueryuseCasecategorymobileSafemaxPerfCost

get_component

Get component

Fetch one component by slug. `include` controls the payload: 'meta' (full catalog record), 'preview' (thumbnail + live demo URL), 'prompt' (a self-contained brief to REBUILD it faithfully), 'source' (the actual index.html/styles.css/script.js to copy, plus an integration note). Default: meta + preview + prompt. Add 'source' when you want the real code.

輸入參數slug必填include

list_facets

List facets

Return the filter vocabulary (mood, useCase, level, perfCost, category, deps) with how many components carry each value. Call this first to learn the exact values search_components accepts.

無需輸入參數。

list_components

List components

Browse the whole catalog as a compact list (slug, title, useWhen, mood, useCase, level, perfCost). Use for an overview or when a brief is vague; use search_components when you have a specific brief.

輸入參數limitoffset

list_motion_systems

List motion systems

The 8 motion systems of the library: token sets (ease/duration/stagger/lenis) derived from the measured inventory, not invented. Use this FIRST when composing a page: pick one system and render every component's prompt with it so the page moves coherently.

無需輸入參數。

get_motion_system

Get one motion system with its members

Full token set of a motion system plus the components that are native to it.

輸入參數name必填

search_components_motion

Search components by measured motion metadata

Filters by the CAPA-1 motion block (trigger, libs, complexity, motion system) rather than by prose. Prefer this over search_components when composing a page: `category` describes how a component LOOKS, `trigger`/`cluster` describe how it MOVES, and they disagree — the `slider` label alone splits across 3 opposite physics.

輸入參數libslimittriggercategorycomplexitymotion_systemmax_complexity

get_integration_contract

Integration contract for a set of components

Given the slugs you intend to put on ONE page, returns: rule violations (hard, invalidate the page), warnings, the measured budget (JS gzip / assets / scroll corridor), and an ordered init plan — single Lenis instance, CustomEase registration, entry veil first, one ScrollTrigger.refresh() at the end, WebGL loop gating. Every step cites the evidence it comes from.

輸入參數slugs必填motion_systemmoving_sections

plan_imagery

Dirección de imagen de una página, sección a sección

Qué imagen necesita cada sección, CON QUÉ MODELO se hace y cómo se redacta el prompt. Con la arquitectura y el movimiento resueltos, lo que sigue delatando una página generada son las imágenes: genéricas del sector en vez de específicas de la sección, sin una sola persona, y todas rectángulos con fondo. Esta tool devuelve el enrutado por modelo (personas ≠ objetos ≠ paisaje: no son intercambiables), la receta de transparencia (alfa real de gpt-image-2.5 con `background: transparent`, ya sin magenta), la del retoque con referencia (image-to-image para corregir un detalle sin volver a tirar el dado), la de las hojas de seis recortes por generación, y de dónde salen los logotipos reales (Wikimedia, nunca generados). NO genera imágenes, no usa ninguna clave y no hace ninguna llamada de red: devuelve texto. Llámala DESPUÉS de plan_page y ANTES de escribir un solo prompt de imagen.

輸入參數briefpalettesectionsarchetype

plan_page

Plan a page's information architecture from a brief

Returns the SECTIONS a page of this kind needs — 10 to 14 of them, each with a role, what it has to accomplish, what content it needs, and whether it should move — plus a motion system and its tokens. It returns NO components on purpose: a page can only be as rich as the list it is composed from, and composing from animation mechanics caps every page at five sections. Ask for mechanics afterwards, one section at a time, with suggest_mechanics. It also names the roles the catalog cannot cover, so you write those from the system tokens instead of adopting the least-bad search hit. An optional `reference` contributes STATIC art direction and biases the motion system — motion is NEVER derived from the reference.

輸入參數brief必填archetypereference

suggest_mechanics

Mechanics for ONE section, by its role

Given a section role from plan_page and what that section has to do, returns ranked candidate components — filtered first by the catalog facets that actually correspond to the role, then ranked by the free-text need. Prefer this over search_components when building a planned page. Crucially, it can answer that the catalog has NOTHING for a role (counters, progress bars, pricing tables, FAQ accordions, data tables) instead of returning the least-bad hit dressed up as an answer — search_components cannot tell you that, and its top result for 'accordion' is a horizontal image gallery. When the verdict is `none`, write the section from the motion system tokens; that is a legitimate outcome, not a failure.

輸入參數needrole必填avoidlimitadoptedmotion_system

suggest_page_treatments

Mechanics that apply to the PAGE, not to a section

The twin of suggest_mechanics for the family that does not fill a section slot: smooth scroll, the shaped edge BETWEEN two stacked sections, a background that runs behind the whole page, a custom cursor, route transitions. These were unreachable from the planner because the whole model assumed a mechanic occupies one slot in `sections` — which is why a page could be planned end to end and still butt every section together with a straight line. A treatment does NOT consume a section and does NOT count toward motion_coverage; it adds on top. Some kinds are decisions rather than components (`scroll-suave`) and come back with verdict `not-a-component` instead of a fake candidate list. Still pass whatever you adopt to get_integration_contract: treatments compete for the same capabilities (scroll owner, document height) as any other component.

輸入參數kind必填needavoidlimitmotion_system

get_component_prompt

Get a component prompt + motion tokens (no rendering)

THE way to get a build prompt. Returns three blocks: (a) the standalone prompt VERBATIM, untouched; (b) the tokens of the requested motion system; (c) an explicit instruction telling you to adapt (a) to (b) YOURSELF, preserving arithmetic relationships — if a duration holds up a sum, a chained sequence or a ScrollTrigger `end`, recompute the whole set, never a lone value. Replaces render_prompt, which substituted mechanically and produced prompts whose prose contradicted their code (11/30 in judged evaluation). See DECISIONS.md D15 and D18.

輸入參數slug必填motion_system

render_prompt

[DEPRECATED — use get_component_prompt] Render a prompt by mechanical substitution

DEPRECATED in favour of get_component_prompt. Mechanical substitution does not fit this corpus: the prompts narrate their own numbers in prose, so replacing only the code values makes prose and code specify different components (judged 11/30). Coverage is deliberately narrow: 164 of 219 components have ZERO substitutable values because their prompts narrate their own numbers in prose ('over 4s', 'durations are 1'), and substituting those would make prose and code contradict each other. For those components this returns the prompt unchanged. See DECISIONS.md D15. Returns the component's build prompt with its motion tokens (ease/duration/stagger) replaced by the chosen motion system's values, so several components share one timing language. Values that are STRUCTURAL to the effect (elastic overshoot, loop cadence, scrub linearity, shader/physics constants) are never substituted — they come back listed under 'Valores no parametrizables'. Omit `system` to use the component's native one.

輸入參數slug必填system

版本歷史

1
  1. v1.1.1最新Oct 20, 2026

評分

已滿足適用檢查項的 90%

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

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

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Motionprompts 整合