motionprompts MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@motionprompts MCPplan a landing page for a new product launch"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
motionprompts MCP
An MCP server over a catalog of 236 production-grade GSAP motion components (motionprompts.dev). 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
Tool | What for |
| The information architecture of a page: 9–14 sections with their role, their job, and whether they should move. Deliberately returns no components. |
| Mechanics for one section, filtered by the real facets of its role. Knows how to answer that there is nothing. |
| The twin of |
| Repairs, mount order and budget for a set of components. It is what stops two entry veils from coexisting, and — given |
| Image 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. |
| The author's prompt verbatim + the motion-system tokens + the instruction to adapt it yourself. |
| Free-text search with |
| Search by measured motion metadata (trigger, cluster, easing, duration) instead of by looks. |
| Meta, preview, prompt and — where the distribution carries it — source. |
| Vocabulary and tokens. |
| Deprecated; use |
Related MCP server: Ultimate GSAP Master MCP Server
Hosted endpoint — no install
The server runs live at https://motionprompts.dev/mcp (Streamable HTTP, stateless, no auth).
Add it to Claude Code with one command and you are done:
claude mcp add --transport http motionprompts https://motionprompts.dev/mcpDiscovery manifest: motionprompts.dev/.well-known/mcp.
Local installation
Requires Node 20 or newer. No API key, no environment variables.
The package is on npm as motionprompts-mcp —
no clone needed:
claude mcp add motionprompts -- npx -y motionprompts-mcpOr from a clone:
git clone https://github.com/VanguardiaAI/motionprompts-mcp.git
cd motionprompts-mcp
npm installClaude Code
claude mcp add motionprompts -- node /absolute/path/to/motionprompts-mcp/mcp/server.mjsClaude Desktop and other clients
In the client's JSON configuration:
{
"mcpServers": {
"motionprompts": {
"command": "node",
"args": ["/absolute/path/to/motionprompts-mcp/mcp/server.mjs"]
}
}
}Check that it works:
npm run verify # end-to-end battery over the real MCP protocolTo 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 magenta 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:
plan_pagefirst. 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.suggest_mechanicsper section, withavoidto exclude what you already used. Without it you will repeat components: broad roles offer a hundred-plus candidates with tied scores, and reusing the sameneedstring always returns the same first hit.avoidis 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 anifin the example script.get_integration_contractwith all the slugs at once, before writing a line, and withmoving_sectionsset: it is the coverage audit.get_component_promptper 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.plan_imagerybefore 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 236 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-2and only that one: the other two give them a recognizable tint or plainly cannot do faces.Everything is a rectangle with a background. No model returns alpha: ask for flat magenta #FF00FF and remove it afterwards. And cut-outs are requested in sheets of six — an invisible 3×2 grid — because a generation costs the same whether it carries one or six.
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.
Available Tools
14 toolsget_componentGet componentA
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 | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Component slug, e.g. "brandappart-sticky-cards". | |
| include | No | Which payloads to return. Default: ["meta","preview","prompt"]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It thoroughly explains what each include payload contains ('meta' full record, 'preview' thumbnail and demo URL, 'prompt' self-contained brief, 'source' actual files plus integration note) and the default combination. This goes beyond a generic fetch and gives the agent a concrete model of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the core purpose, and every sentence adds value. It avoids fluff and repetition, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description does a good job of explaining the return payloads and the 'include' options. It lacks details on edge cases like invalid slugs or error handling, but for a fetch-by-slug tool with moderate complexity, the description covers the essential behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema already describes both parameters, the description adds substantial meaning by detailing the enum values for 'include' and providing the default. For example, it explains that 'prompt' is a self-contained brief to rebuild faithfully and 'source' includes actual files. This enriches the agent's understanding beyond the schema's terse 'Which payloads to return.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Fetch one component by slug,' which is a specific verb+resource that clearly states the tool's function. It distinguishes this from sibling tools that list or search components, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on the 'include' parameter and explicitly advises to add 'source' when the real code is needed. It implies that this tool is for retrieving a known component, but it doesn't explicitly contrast with alternatives like search_components or list_components. No explicit exclusions, but enough guidance for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_component_promptGet a component prompt + motion tokens (no rendering)A
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 | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| motion_system | No | Default: the component's native system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the exact output structure (three blocks), the fact that it returns an instruction to adapt the prompt manually, and specifies the arithmetic preservation rule (recompute chain/sum/ScrollTrigger end). It also states what the replaced tool did wrong, offering deep behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized, with each sentence contributing a distinct purpose (proclamation, output structure, replacement rationale, reference). It is longer than ideal but earns its length through the critical arithmetic detail and forward references.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, output composition, usage recommendation, and subtle calculation instruction, which is robust for a tool with no output schema. It lacks an explicit enumeration of return format fields or error conditions, but the provided information is sufficiently complete for selection and basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds some context for motion_system via 'requested motion system', but the required parameter 'slug' is completely unexplained in both the schema and description. Since schema coverage is only 50%, the description should compensate, but it does not address the required parameter at all, leaving a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('get a build prompt') and clearly states it returns three blocks, defining the tool's scope. It explicitly distinguishes itself from sibling render_prompt by name and by explaining the difference, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description proclaims 'THE way to get a build prompt' and explicitly states it 'Replaces render_prompt', offering a direct when/why to use this tool over a named alternative. It even provides a rationale (render_prompt substituted mechanically and produced contradictory prompts), giving clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integration_contractIntegration contract for a set of componentsA
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 | Required | Description | Default |
|---|---|---|---|
| slugs | Yes | ||
| motion_system | No | ||
| moving_sections | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the tool's behavior in detail: it returns rule violations (hard vs warnings), measured budget dimensions, and an ordered init plan; also notes that every step cites evidence. This is transparent for a read-only analysis tool, though it omits potential side effects like authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and uses an em-dash list to succinctly enumerate key outputs and plan order. No filler words; every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description thoroughly covers return values (violations, warnings, budget, init plan) and even details plan order. However, the input side is incomplete: optional parameters motion_system and moving_sections are not explained, so the agent may not invoke the tool correctly with all parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only moving_sections has a description). The tool description explains 'slugs' (components for a page) but provides no meaning for 'motion_system' or 'moving_sections', leaving agents uncertain about how to fill these optional parameters. The Spanish description for moving_sections adds limited clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (returns) and resource (integration contract) with a defined scope: given slugs for one page. It lists concrete outputs (violations, warnings, budget, init plan) that distinguish it from sibling tools like get_component or suggest_mechanics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: 'Given the slugs you intend to put on ONE page' indicates when to use the tool. It does not explicitly state when not to use it or name alternatives, so it lacks exclusions but provides a clear situational trigger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_motion_systemGet one motion system with its membersB
Full token set of a motion system plus the components that are native to it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | System name, e.g. scrub-lagged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the return content ('full token set' plus 'native components') but does not explicitly state that the operation is read-only, describe any side effects, or explain what a 'token set' means. The term 'full' suggests complete data, but the behavior beyond that is opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence (fragment) that is efficient and gets to the point. It is front-loaded with the core outcome ('full token set'). However, it lacks a verb and relies on the title for the action, making it slightly less self-contained, but it earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (one parameter, no output schema, no annotations), the description provides the essential return information. Yet it leaves ambiguity around 'token set' and 'native components,' which are not defined. The absence of an output schema makes this a gap, though the low complexity keeps the overall completeness barely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter ('name') with a clear description ('System name, e.g. scrub-lagged.'), covering 100% of parameters. The tool description adds no additional meaning for this parameter. With high schema coverage, the baseline is 3, and there is no extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title clearly states 'Get one motion system with its members,' which provides the verb and resource. The description adds specificity: 'Full token set of a motion system plus the components that are native to it.' This distinguishes it from list_motion_systems (plural) and get_component (single component), though it doesn't explicitly name these siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or criteria for choosing it over sibling tools like search_components_motion or get_component. The only signal is the word 'one,' which implies single-item retrieval, but this is not actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_componentsList componentsA
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items (default: all). | |
| offset | No | Skip N items (pagination). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the read-only nature via 'browse' and specifies the return format as a compact list of listed fields. It doesn't elaborate on pagination defaults, but the schema covers that, and the description adds useful context about output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and output fields, then a crisp usage guideline. Every phrase adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional pagination parameters and no output schema, the description covers the purpose, the specific fields returned, and the usage context. It is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit and offset are already fully documented. The description does not add further parameter-specific meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses the whole catalog as a compact list and enumerates the exact fields returned. It also distinguishes itself from search_components by noting the difference in use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('overview or when a brief is vague') and when to use an alternative ('use search_components when you have a specific brief'). This is strong guidance with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_facetsList facetsA
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly indicates a read operation ('Return') and describes the output (filter vocabulary with counts). It also behaviorally frames the tool as a lookup/priming step, which is valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and content. Every word earns its place; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete given the tool's simplicity: no params, no output schema. It explains both the returned data and the intended workflow context, leaving no ambiguity for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description needs no parameter explanations. Per the rubric, a baseline of 4 applies for 0 params, and the description still adds value by explaining the output structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the filter vocabulary (mood, useCase, level, perfCost, category, deps) with counts, using a specific verb ('Return') and resource. It distinguishes itself from siblings like search_components by explicitly mentioning what it contributes to that workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Call this first to learn the exact values search_components accepts.' This tells the agent to invoke this tool before search_components, implying it is a prerequisite and alternative usage is clearly scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_motion_systemsList motion systemsA
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It discloses that systems are derived from measured inventory, not invented, and specifies the exact count (8). Unlike a mutation tool, no side effects are relevant, but it could add detail about return structure or pagination; however, for a simple list, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. The first sentence front-loads the core purpose and data origin; the second provides actionable usage guidance. Every phrase earns its place, maintaining brevity while delivering essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is fully complete: it states what is listed, the provenance of the data, and the precise workflow for use. No output format is necessary since the inventory is known (8 items). The tool is simple, and this description covers all needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty schema, so the baseline is 4. The description compensates by explaining the purpose and how to use the output, even though there are no parameters to document. It adds value by framing the list as a selection step for page composition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool lists the 8 motion systems of the library, identifying the resource (motion systems) and the action (list). It distinguishes from sibling 'get_motion_system' by emphasizing that this is the complete set and should be used first. The mention of token sets and measured inventory adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear when-to-use guidance: 'Use this FIRST when composing a page' and instructs to pick one system to render components coherently. This implies alternatives like get_motion_system for deeper details and indicates the tool's role in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_imageryDirección de imagen de una página, sección a secciónA
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 (fondo magenta plano y quitado después, porque ningún modelo devuelve alfa), 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 | Required | Description | Default |
|---|---|---|---|
| brief | No | El mismo brief que le diste a plan_page. | |
| palette | No | La paleta ya fijada: las tomas obedecen al diseño, no al revés. | |
| sections | No | Las secciones de plan_page, tal cual. Sin esto sólo se devuelven las reglas generales. | |
| archetype | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavior: it returns text, makes no network calls, uses no keys, and does not generate images. It also reveals specific details like the magenta-background alpha workaround and Wikimedia as the logo source, going beyond basic metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, front-loading the core purpose before listing details. While longer than average, every sentence adds value, covering rationale, outputs, and exclusions. The structure is logical, though it could be slightly trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a planning tool with no output schema, the description fully explains what it returns and when to call it. It also covers prerequisites (after plan_page), the scope (sections needed), and its limitations (text-only, no network). The sibling context is handled well by explicitly positioning it in the sequence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions already cover 75% of parameters with meaningful context (e.g., 'brief' references plan_page, 'sections' explains that without it only general rules are returned). The description reinforces the workflow but does not directly mention the 'archetype' parameter, which lacks a schema description, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: it returns per-section image needs, model routing (people ≠ objects ≠ landscape), transparency recipes, cutout sheets, and logo sources. It uses specific verbs like 'devuelve' (returns) and distinguishes itself from siblings by emphasizing it does NOT generate images and provides text output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow guidance is given: 'Llámala DESPUÉS de plan_page y ANTES de escribir un solo prompt de imagen' (call it AFTER plan_page and BEFORE writing any image prompt). It also clarifies what it does not do (no network calls, no keys, no image generation), which helps rule out inappropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_pagePlan a page's information architecture from a briefA
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 | Required | Description | Default |
|---|---|---|---|
| brief | Yes | e.g. 'tostaduría de café de especialidad', 'agencia de software a medida'. | |
| archetype | No | Fuerza el patrón de arquitectura en vez de detectarlo del brief. Uno de: agency, restaurant, product-brand, saas, portfolio, event, editorial | |
| reference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the fixed 10-14 section count, the deliberate omission of components and the reasoning, the inclusion of a motion system and tokens, and the critical constraint that the reference biases but never derives motion. It also explains the downstream workflow. This is thorough and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with the primary output and then provides necessary exclusions, reasoning, and parameter caveats. Every sentence carries information, and the density is justified by the tool's complexity. A slightly tighter structure could group the reference behavior, but it remains readable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description does an excellent job of conveying what the tool returns (sections with roles, content needs, motion system), what it intentionally omits (components), and how to proceed afterward. It also covers the optional reference's role. This is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description adds substantial meaning to the `reference` parameter (static art direction, biasing motion, not deriving motion), which the schema only lists as an object without explaining its effect. The `brief` and `archetype` are partially covered by schema and enum; the description adds no new detail for archetype but doesn't need to. Overall, it compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pairing ('Returns the SECTIONS a page of this kind needs') and clearly distinguishes this planning action from component lookups by explicitly stating it returns NO components. It also names the companion tool (suggest_mechanics) and clarifies the motion system output, making the tool's purpose unmistakable among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit sequencing guidance: 'Ask for mechanics afterwards, one section at a time, with suggest_mechanics.' It also tells the agent when NOT to use this tool (for component selection) by explaining that components are deliberately excluded, and when to rely on this tool instead of search (for catalog-uncovered roles). This is clear usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_prompt[DEPRECATED — use get_component_prompt] Render a prompt by mechanical substitutionA
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 | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Component slug. | |
| system | No | Motion system name. Default: the component's native system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses the substitution limitations, the behavior for components with zero substitutable values, the fact that structural values are never substituted and are listed under 'Valores no parametrizables', and the default behavior when `system` is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than typical but front-loaded with the deprecation warning and each sentence provides meaningful context. However, some historical details (e.g., 'judged 11/30', 'DECISIONS.md D15') are not essential for invocation and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description fully covers what the tool returns, its edge cases, and defaults. It explains both the normal substitution behavior and the no-op behavior for inapplicable components, making the tool's behavior predictable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds semantic value by explaining the `system` parameter's default ('Omit `system` to use the component's native one') and clarifying what substitution applies to. This goes beyond the bare schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states clearly that the tool is deprecated in favor of get_component_prompt, and explains its intended operation: 'Returns the component's build prompt with its motion tokens (ease/duration/stagger) replaced by the chosen motion system's values.' This gives a specific verb, resource, and distinguishes it from the sibling get_component_prompt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly directs users to the alternative: 'DEPRECATED in favour of get_component_prompt.' It also explains why mechanical substitution is unsuitable for this corpus, providing clear guidance on when this tool should not be used and that components with no substitutable values will return the prompt unchanged.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_componentsSearch componentsA
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 | Required | Description | Default |
|---|---|---|---|
| deps | No | Require these runtime deps (e.g. ["three"], ["lenis"]). AND semantics. | |
| mood | No | Aesthetic filter. One of: minimal, elegant, luxury, editorial, bold, playful, corporate, retro, futuristic, experimental, cinematic, brutalist, organic, technical | |
| level | No | page (owns the whole page/scroll) | section (a block) | widget (small embeddable). | |
| limit | No | Max results (default 12). | |
| query | No | Free-text brief or component name/alias. Spanish or English; accent-insensitive. | |
| useCase | No | 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, product-showcase, marquee, team-section, cta, contact | |
| category | No | Animation-family filter (e.g. scroll, cards, menu, 3d-webgl). | |
| mobileSafe | No | If true, only components that degrade well on touch/small screens. | |
| maxPerfCost | No | Cap runtime weight: light | medium | heavy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses behavioral traits: returns a ranked, compact list with a 'why' per hit, and allows browsing purely by filters when query is empty. It does not mention rate limits, authentication, or read-only status, but the described behavior is adequate for a search operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the main purpose, and includes practical examples and usage guidance. Every sentence earns its place: the first states purpose and output, the second explains how to use filters and the next step. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 9 parameters but no output schema, the description covers the essential workflow: how to formulate the search, what to expect in the result (ranked list with why), and the follow-up action (get_component). It lacks details on pagination or error handling, but the parameter schema is rich and the description is sufficient for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters (100% coverage), so baseline is 3. The description adds value beyond the schema by explaining how to combine the query with facet filters, and provides examples of natural-language inputs. It also clarifies that query is optional ('Leave query empty to browse purely by filters'), which is not explicit in the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and clearly identifies the resource ('components'). It distinguishes itself from siblings by focusing on natural-language briefs or name/alias search, with examples ('un hero elegante...') and a ranked compact list with a 'why' field, which is unique among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: combine the free-text query with facet filters to narrow results, and then call get_component on the chosen slug. It also states the behavior when query is left empty ('browse purely by filters'). However, it does not explicitly mention when not to use this tool or directly contrast it with alternatives like list_components.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_components_motionSearch components by measured motion metadataA
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 | Required | Description | Default |
|---|---|---|---|
| libs | No | Todas deben estar presentes. | |
| limit | No | ||
| trigger | No | ||
| category | No | ||
| complexity | No | ||
| motion_system | No | ||
| max_complexity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It reveals that the tool filters on measured motion metadata rather than prose, and it clarifies the semantic difference between category (appearance) and trigger/cluster (movement). However, it does not disclose how multiple filters combine (AND/OR), whether results are ranked, or what output format to expect. This is a moderate level of transparency for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, immediately front-loaded with the core behavior. The first sentence is a crisp definition; the second adds crucial usage context without redundancy. Every part earns its place, and it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, no annotations, and low schema coverage, the description should provide more context about filter combination logic, output shape, and what 'CAPA-1 motion block' means. The description gives good high-level guidance but leaves practical operational details unaddressed. It is not fully sufficient for an agent to invoke the tool confidently without further assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (libs), so the description must compensate. It names several key parameters (trigger, libs, complexity, motion_system, category) and clarifies the meaning of trigger versus category. However, it introduces 'cluster' as a concept not present in the schema, potentially confusing agents. It does not detail limit, max_complexity, or motion_system semantics, though field names are somewhat self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Filters') and resource ('components') with a clear scope: 'by the CAPA-1 motion block (trigger, libs, complexity, motion system) rather than by prose.' It also distinguishes itself from the sibling tool search_components by explaining the look-vs-move distinction. The title reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides guidance: 'Prefer this over search_components when composing a page' and gives a concrete example of why the two tools disagree ('slider label alone splits across 3 opposite physics'). This effectively tells the agent when to use this tool instead of the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_mechanicsMechanics for ONE section, by its roleA
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 | Required | Description | Default |
|---|---|---|---|
| need | No | What this section must do, in prose. e.g. 'the roast curve draws itself as you scroll'. | |
| role | 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 | |
| avoid | No | 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. NOTE: `avoid` is for not repeating yourself, NOT for animating less — if you drop the #1 because it is taken, take the #2; never leave the section still. | |
| limit | No | Max candidates (default 5). | |
| adopted | No | 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 this the tool is blind to the page you are building and the clash only surfaces at get_integration_contract, after you wrote the code. | |
| motion_system | No | The page's system; ranks compatible components first and is echoed back when there is nothing to adopt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It transparently explains the internal logic: 'filtered first by the catalog facets that actually correspond to the role, then ranked by the free-text need.' It also discloses a key behavioral trait: the ability to return 'NOTHING' for a role rather than returning a false positive. This goes beyond a simple 'returns suggestions' and is genuinely informative, though it doesn't cover every edge case or output detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is slightly verbose but each sentence adds value. It front-loads the core function, then provides a crucial differentiator ('Crucially, it can answer that the catalog has NOTHING'), and ends with actionable guidance for the 'none' verdict. The examples (counters, pricing tables, etc.) are helpful but could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema) and its role in the planning workflow, the description covers the essential context: purpose, usage context, and alternative behavior. It mentions the 'adopted' parameter indirectly through the contrast with get_integration_contract, and it explains what to do on 'none.' It doesn't detail the return schema, but that is fine since no output schema exists. Overall, it's a well-rounded description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for all 6 parameters, covering 100% of them. The description adds a little by connecting 'section role' and 'what that section has to do' to the role and need parameters, but it doesn't elaborate on the other parameters, and the schema already does that heavy lifting. A score of 3 is the baseline for high schema coverage, and the description adds marginal value above it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Given a section role from plan_page and what that section has to do, returns ranked candidate components.' It uses a specific verb ('returns'), names the resource ('candidate components'), and explains the filtering and ranking process. It also distinguishes itself from search_components by highlighting its ability to return a 'none' verdict, which is a unique capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: 'Prefer this over search_components when building a planned page.' It also explains when search_components is insufficient and provides an alternative action for when the verdict is 'none': 'write the section from the motion system tokens.' This clearly outlines when to use the tool and what to do in a specific outcome.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_page_treatmentsMechanics that apply to the PAGE, not to a sectionA
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 | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Treatment kind. One of: scroll-suave, frontera-de-seccion, fondo-continuo, cursor, transicion-de-ruta | |
| need | No | What it has to do, in prose. Only reorders within the kind's pool. | |
| avoid | No | Slugs to exclude. | |
| limit | No | Max candidates (default 5). | |
| motion_system | No | The page's system; echoed back when there is nothing to adopt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It reveals that some kinds return a 'not-a-component' verdict instead of a candidate list, that treatments add on top without consuming sections, and that they compete for capabilities like scroll owner and document height. This goes beyond basic description to expose important edge-case behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but every sentence provides valuable context: purpose, historical rationale, behavioral exceptions, and integration guidance. It is front-loaded with the key distinction from suggest_mechanics. Slightly verbose due to the historical aside, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description covers purpose, scope, behavior, and integration requirements comprehensively. It explains the conceptual model (page vs section), constraints (not consuming sections, not counting toward motion_coverage), and special output types. An agent has enough information to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all parameters. The description adds some high-level context (e.g., scroll-suave is a decision rather than a component), but it does not need to explain parameters since the schema already does. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is 'The twin of suggest_mechanics for the family that does not fill a section slot' and lists concrete page-level treatments (smooth scroll, shaped edge, page background, custom cursor, route transitions). This clearly identifies the tool's function and differentiates it from the sibling suggest_mechanics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling tool as an alternative and clarifies the scope (page-level vs section-level). It also provides specific guidance: 'A treatment does NOT consume a section and does NOT count toward motion_coverage' and advises passing adopted treatments to get_integration_contract, giving the agent concrete when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v1.0.0- First observed
get_component - First observed
get_component_prompt - First observed
get_integration_contract - First observed
get_motion_system - First observed
list_components - First observed
list_facets - First observed
list_motion_systems - First observed
plan_imagery - First observed
plan_page - First observed
render_prompt - First observed
search_components - First observed
search_components_motion - First observed
suggest_mechanics - First observed
suggest_page_treatments
TDQS
Scored across 14 tools
Most tools have clearly distinct purposes, with specific guidance on when to use each. The main ambiguity is between search_components and search_components_motion, though the descriptions clarify the difference, and render_prompt still exists despite being deprecated.
Tool names mostly follow a verb_noun pattern (list_, get_, search_, suggest_, plan_). Minor deviations include search_components_motion (modifier at end) and get_component_prompt vs render_prompt, but overall the pattern is predictable enough.
14 tools is on the upper edge of a reasonable count for this domain. Each tool serves a distinct role in the workflow, though the presence of a deprecated tool (render_prompt) adds unnecessary clutter.
The toolset covers the full pipeline: page planning, component discovery, motion systems, prompt generation, integration contracts, and imagery planning. No obvious gaps exist for the intended purpose of building motion-rich pages from the component library.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI editor to build, animate & export layered short-form video projects via one tool catalog.
AI-powered design and management for Webflow Sites
Build and run visual creative-production workflows from your AI agent.
- AnimGenOAuthcom.animgen
Create AI animations and export transparent sprite sheets, alpha video, frames, and game assets.
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive GSAP animation generation tool that offers AI-driven intent analysis, full API coverage, and production-ready animation modes, helping developers quickly create high-performance animations.61Apache 2.0
- AlicenseBqualityCmaintenanceEnables AI models to generate production-ready, 60fps-optimized GSAP animation code from natural language requests. It provides expert-level tools for creating complex sequences, debugging performance issues, and setting up GSAP within modern web frameworks.64754MIT
- FlicenseAqualityDmaintenanceA static code generation server for GSAP animations. It provides 18 tools to generate tween, timeline, easing, plugin effects (ScrollTrigger, SplitText, MorphSVG, etc.), and developer utilities without any GSAP runtime dependency.18-
- AlicenseAqualityAmaintenanceEnables LLMs to generate safe, accessible scroll-driven web animations by translating natural language requests into validated JSON specs, then compiling them into GSAP or WAAPI/CSS code with built-in reduced-motion and pause controls.5108MIT