protogrid

Search / dev.motionprompts/motionprompts

motionprompts

R0· no sign-in

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

v1.1.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality73new
Trust96of 100
Uptime, 30 days100%
Latency p50482 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "motionprompts": {
      "type": "http",
      "url": "https://motionprompts.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${MOTIONPROMPTS_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http motionprompts https://motionprompts.dev/mcp --header "Authorization: Bearer ${MOTIONPROMPTS_TOKEN}"
[mcp_servers.motionprompts]
url = "https://motionprompts.dev/mcp"
bearer_token_env_var = "MOTIONPROMPTS_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "motionprompts": {
      "type": "remote",
      "url": "https://motionprompts.dev/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:MOTIONPROMPTS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "motionprompts": {
      "type": "http",
      "url": "https://motionprompts.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${MOTIONPROMPTS_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=motionprompts&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbW90aW9ucHJvbXB0cy5kZXYvbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7TU9USU9OUFJPTVBUU19UT0tFTn0ifX0%3D"
}
{
  "servers": {
    "motionprompts": {
      "type": "http",
      "url": "https://motionprompts.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${MOTIONPROMPTS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "motionprompts": {
      "httpUrl": "https://motionprompts.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${MOTIONPROMPTS_TOKEN}"
      }
    }
  }
}
extensions:
  "motionprompts":
    enabled: true
    name: "motionprompts"
    type: streamable_http
    uri: "https://motionprompts.dev/mcp"
    headers:
      "Authorization": "Bearer ${MOTIONPROMPTS_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${MOTIONPROMPTS_TOKEN}. The registry never accepts secret values.

Quality 73 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_component (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_motion_systems (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_motion_system (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 3,873 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 0 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledependencies not resolved yet

14 tools, about 3,873 tokens to load them all · tool set e32e63cf0ee1 · checked 2026-10-20 12:13 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 96 / 100

provenance85
liveness100
freshness100
hygiene100

+repository +dns-namespace +website +reachable +uptime-100% +updated-0d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] npmnot resolved yet; dependencies are read once a day

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://motionprompts.dev/mcp streamable-httpnoneyes100%482 ms2025-11-252026-10-20
packageregistryversionruntimesecrets
motionprompts-mcpnpm1.1.1–

Tools (14)

get_componentFetch 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.
get_component_promptTHE 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.
get_integration_contractGiven 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.
get_motion_systemFull token set of a motion system plus the components that are native to it.
list_componentsBrowse 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.
list_facetsReturn 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_motion_systemsThe 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.
plan_imageryQué 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.
plan_pageReturns 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.
render_promptDEPRECATED 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.
search_componentsFind 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.
search_components_motionFilters 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.
suggest_mechanicsGiven 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.
suggest_page_treatmentsThe 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "dev.motionprompts/motionprompts",
  "icons": [
    {
      "src": "https://motionprompts.dev/icon-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "motionprompts",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://motionprompts.dev/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional. 'Bearer mpk_...' from motionprompts.dev/account unlocks the full prompts of the paid catalog."
        }
      ]
    }
  ],
  "version": "1.1.1",
  "packages": [
    {
      "version": "1.1.1",
      "transport": {
        "type": "stdio"
      },
      "identifier": "motionprompts-mcp",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org"
    }
  ],
  "repository": {
    "id": "1317536311",
    "url": "https://github.com/VanguardiaAI/motionprompts-mcp",
    "source": "github"
  },
  "websiteUrl": "https://motionprompts.dev/developers/",
  "description": "Plan pages, pick GSAP motion components and get their build prompts and composition rules."
}