motionprompts
REMOTE · MOTIONPROMPTS.DEV · 2 COMPONENTS
Plan pages, pick GSAP motion components and get their build prompts and composition rules.
Available components
Last scanned (14 hours ago)
Scores higher than 59% of remote servers
Reachable. Last reached 23 Oct 2026.
Category Design and Media
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 14 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability82
- 96% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 13396 tokens (~48/item across 274 items; 14 tools + 260 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage92
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 76% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 20 Oct 26 67
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 23 Oct 2026 · Probed https://motionprompts.dev/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=motionprompts.dev | CN=YE2,O=Let's Encrypt,C=US | 10 Sept 2026 | 9 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 674830064faf899aeae4fa1219a4841d596 |
| SANs: motionprompts.dev, www.motionprompts.dev | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of motionprompts.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| motionprompts.dev. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://motionprompts.dev/mcp | Verified | 200 | |
| http (plaintext) | http://motionprompts.dev/mcp | HTTPS enforced | 301 | https://motionprompts.dev/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_component Get component ~135
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include | array | – | Which payloads to return. Default: ["meta","preview","prompt"]. |
| slug | string | yes | Component slug, e.g. "brandappart-sticky-cards". |
No output schema declared.
No examples provided.
get_component_prompt Get a component prompt + motion tokens (no rendering) ~155
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.
| Name | Type | Req | Description |
|---|---|---|---|
| motion_system | string | – | Default: the component's native system. |
| slug | string | yes | – |
No output schema declared.
No examples provided.
get_integration_contract Integration contract for a set of components ~151
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.
| Name | Type | Req | Description |
|---|---|---|---|
| motion_system | string | – | – |
| moving_sections | – | – | Las secciones que DEBEN moverse (plan_page → motion_coverage.must_move), o cuántas son. Con esto el contrato audita la cobertura y te dice si te has quedado corto. |
| slugs | array | yes | – |
No output schema declared.
No examples provided.
get_motion_system Get one motion system with its members ~42
Full token set of a motion system plus the components that are native to it.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | System name, e.g. scrub-lagged. |
No output schema declared.
No examples provided.
list_components List components ~80
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max items (default: all). |
| offset | integer | – | Skip N items (pagination). |
No output schema declared.
No examples provided.
list_facets List facets ~49
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_motion_systems List motion systems ~66
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
plan_imagery Dirección de imagen de una página, sección a sección ~301
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.
| Name | Type | Req | Description |
|---|---|---|---|
| archetype | string | – | – |
| brief | string | – | El mismo brief que le diste a plan_page. |
| palette | array | – | La paleta ya fijada: las tomas obedecen al diseño, no al revés. |
| sections | array | – | Las secciones de plan_page, tal cual. Sin esto sólo se devuelven las reglas generales. |
No output schema declared.
No examples provided.
plan_page Plan a page's information architecture from a brief ~233
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.
| Name | Type | Req | Description |
|---|---|---|---|
| archetype | string | – | Fuerza el patrón de arquitectura en vez de detectarlo del brief. Uno de: agency, restaurant, product-brand, saas, portfolio, event, editorial |
| brief | string | yes | e.g. 'tostaduría de café de especialidad', 'agencia de software a medida'. |
| reference | object | – | – |
No output schema declared.
No examples provided.
render_prompt [DEPRECATED — use get_component_prompt] Render a prompt by mechanical substitution ~240
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.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Component slug. |
| system | string | – | Motion system name. Default: the component's native system. |
No output schema declared.
No examples provided.
search_components Search components ~361
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | array | – | Animation-family filter (e.g. scroll, cards, menu, 3d-webgl). |
| deps | array | – | Require these runtime deps (e.g. ["three"], ["lenis"]). AND semantics. |
| level | array | – | page (owns the whole page/scroll) | section (a block) | widget (small embeddable). |
| limit | integer | – | Max results (default 12). |
| maxPerfCost | string | – | Cap runtime weight: light | medium | heavy. |
| mobileSafe | boolean | – | If true, only components that degrade well on touch/small screens. |
| mood | array | – | Aesthetic filter. One of: minimal, elegant, luxury, editorial, bold, playful, corporate, retro, futuristic, experimental, cinematic, brutalist, organic, technical |
| query | string | – | Free-text brief or component name/alias. Spanish or English; accent-insensitive. |
| useCase | array | – | Page-role filter. One of: hero, preloader, page-transition, navigation, footer, gallery, slider, card-deck, scroll-story, image-reveal, text-reveal, hover-interaction, cursor-effect, logo, background… |
No output schema declared.
No examples provided.
search_components_motion Search components by measured motion metadata ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| complexity | integer | – | – |
| libs | array | – | Todas deben estar presentes. |
| limit | integer | – | – |
| max_complexity | integer | – | – |
| motion_system | string | – | – |
| trigger | string | – | – |
No output schema declared.
No examples provided.
suggest_mechanics Mechanics for ONE section, by its role ~436
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.
| Name | Type | Req | Description |
|---|---|---|---|
| adopted | array | – | What you have ALREADY adopted on THIS page. Candidates that would invalidate the page alongside them come back with `composes_with_adopted: false`, the reason in `collision`, and sorted last. Without… |
| avoid | array | – | Slugs to exclude — pass everything you already used on OTHER pages. Wide roles offer 100+ candidates whose top scores are statistically tied, so without this you will keep adopting the same handful.… |
| limit | integer | – | Max candidates (default 5). |
| motion_system | string | – | The page's system; ranks compatible components first and is echoed back when there is nothing to adopt. |
| need | string | – | What this section must do, in prose. e.g. 'the roast curve draws itself as you scroll'. |
| role | string | yes | Section role from plan_page. One of: entry, chrome, hero, proof, thesis, feature, collection, process, signature, context, explainer, people, cta, footer, data, pricing, testimonial, faq, reference |
No output schema declared.
No examples provided.
suggest_page_treatments Mechanics that apply to the PAGE, not to a section ~280
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.
| Name | Type | Req | Description |
|---|---|---|---|
| avoid | array | – | Slugs to exclude. |
| kind | string | yes | Treatment kind. One of: scroll-suave, frontera-de-seccion, fondo-continuo, cursor, transicion-de-ruta |
| limit | integer | – | Max candidates (default 5). |
| motion_system | string | – | The page's system; echoed back when there is nothing to adopt. |
| need | string | – | What it has to do, in prose. Only reorders within the kind's pool. |
No output schema declared.
No examples provided.
How do I install the motionprompts MCP server?
motionprompts is a hosted endpoint at https://motionprompts.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · motionprompts.dev
claude mcp add --transport http dev-motionprompts-motionprompts 'https://motionprompts.dev/mcp'
What is the motionprompts MCP server?
motionprompts is an MCP server listed in the public MCP registry as dev.motionprompts/motionprompts. Plan pages, pick GSAP motion components and get their build prompts and composition rules. This page covers its hosted endpoint (https://motionprompts.dev/mcp).
Is the motionprompts MCP server safe to use?
motionprompts scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the motionprompts MCP server expose?
motionprompts exposes 14 tools: search_components, get_component, list_facets, list_components, list_motion_systems, and 9 more. Their descriptions and schemas cost roughly 2,668 tokens of context every time the server is loaded.
Does the motionprompts MCP server require authentication?
No. We connected to motionprompts without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the motionprompts MCP server still maintained?
motionprompts is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.