{"serverId":"mcp-registry/io.github.dev55acc-ai/motion-menu","tools":[{"name":"check_updates","fixed":{"name":"check_updates","description":"Check whether patterns you already built with have changed. Pass the library version you last built against (from `version` in a previous check_updates or /p/manifest.json) and get back exactly which slugs were added, changed or removed — so you re-pull three patterns instead of all of them. Call with no arguments to read the current version and library counts. Record the version you get back alongside the code you generate.","inputSchema":{"type":"object","properties":{"since":{"type":"string","description":"The library version you built against. Omit to just read the current one."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":176,"tokensAfter":176},{"name":"get_design_digest","fixed":{"name":"get_design_digest","description":"Get the machine-readable Motion Menu quality contract. Call before build_page. It defines anti-generic composition rules, motion lifecycle, responsive requirements, truth constraints, and release verification gates.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"get_kit","fixed":{"name":"get_kit","description":"Get the Motion Menu build kit: the design laws, the one-page act protocol, stack pins, known gotchas, and the full pattern index. Call this FIRST before building a page.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70},{"name":"get_pattern","fixed":{"name":"get_pattern","description":"Get one pattern by number, including its complete transplantable HTML, CSS and JS. Pass framework to get a ready-to-use component wrapper (react .tsx, vue .vue, svelte .svelte, or vanilla .ts).","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"permanent identity, e.g. \"velocity-image-bend\" — preferred"},"number":{"type":"string","description":"pattern number, e.g. \"84\" — a permanent alias for the slug"},"framework":{"enum":["react","vue","svelte","vanilla"],"type":"string","description":"component wrapper format (default: raw HTML/CSS/JS)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"list_patterns","fixed":{"name":"list_patterns","description":"List Motion Menu patterns. Every row is \"number  slug  <role>  [tags]  · title\". ROLE is where the pattern goes on a page (hero, nav, pricing, background, product, form…) — filter by it when you are building a page rather than hunting an effect. The SLUG is the permanent identity — prefer it. Filter by tag (e.g. \"scroll\", \"webgl\", \"seam\", \"commerce\"), by collection slug (e.g. \"seams-handoffs\"), by free-text query, or by legacy section letter. Call with no arguments to see the whole catalogue and","inputSchema":{"type":"object","properties":{"tag":{"type":"string","description":"optional tag, e.g. \"scroll\", \"glsl\", \"commerce\""},"role":{"type":"string","description":"WHERE IT GOES on a page — hero, nav, footer, pricing, background, gallery, product, form, stats, testimonial, cta, content, seam, chrome, type. Start here when building a page."},"query":{"type":"string","description":"optional substring filter on title/description"},"section":{"type":"string","description":"legacy section letter, e.g. \"J\" — tags supersede this"},"collection":{"type":"string","description":"optional collection slug, e.g. \"webgl-3d\""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":332,"tokensAfter":332},{"name":"validate_combination","fixed":{"name":"validate_combination","description":"Check whether a set of patterns work well together. Pass the slugs (or numbers) of patterns you plan to combine on a page and get a compatibility report: overall score, per-pair analysis, style/industry coherence, intensity balance, page-flow coverage, and warnings (duplicate roles, missing positions, too many heavy patterns). Call BEFORE building to catch mismatches early.","inputSchema":{"type":"object","required":["components"],"properties":{"components":{"type":"array","items":{"type":"string"},"maxItems":20,"minItems":2,"description":"Pattern slugs or numbers to validate together"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":179,"tokensAfter":179}],"toolsChanged":6,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}