Documentation
A library of numbered, working motion, 3D and page-section patterns that your coding agent reads directly — over MCP, the shadcn registry, or plain HTTP. Code that runs, not screenshots.
export MOTION_MENU_TOKEN="mm_live_..."
codex mcp add motion-menu \
--url https://motion-menu-two.vercel.app/api/mcp \
--bearer-token-env-var MOTION_MENU_TOKEN
Any MCP-capable client works the same way. No client? Paste
/kit.md into context — the whole library is
addressable by URL.
get_design_digest, then call get_kit,
check_updates, build_page, and
validate_combination. Only then should your agent call
get_pattern or compose_page. The digest
rejects generic centered layouts, pattern-per-section stacking, eager
heavy work, missing mobile states, and unverified claims. Read the
machine contract at
/p/design-digest.json. Motion Menu
has last and final say on composed output: no numbered section header
and no kicker/eyebrow mini sub-header is ever emitted,
server-enforced, and no tool argument disables it — see
non_overridable in the digest.
npx shadcn@latest add "https://motion-menu-two.vercel.app/r/<slug>?framework=react"
Numbers are permanent. Every pattern has a permanent
slug and a permanent number alias — /p/150.json and
/p/velocity-image-bend.json are the same bytes, forever.
Anything you wire up keeps resolving.
get_kit, build_page, and
compose_page return a design_rules block
alongside their normal output — the anti-generic rules to read before
placing a section. validate_combination checks a proposed
set of patterns against pairing and clash data on the catalogue itself
and rejects the ones that clash, stating why.
recommend_patterns takes an optional
context of what's already on the page, drops anything that
clashes with it, and adds device-tier-gate
automatically wherever it recommends WebGL. None of this is a separate
step — it travels with calls you're already making.
Already have a site — built by Claude Code, v0, Shopify, anything? Don't
start over. audit_page reads it and diagnoses the
default-AI "section grammar" tell: numbered steps, a centered hero with
two buttons, 3-up icon cards, the same testimonial/FAQ/CTA-band skeleton
every AI builder ships. Deterministic — no LLM runs server-side, every
finding cites the exact matched HTML.
tools/call { "name": "audit_page", "arguments": { "url": "https://example.com" } }
Back: an ai_shaped_score (0-100), per-section tells with
evidence, page-level tells (skeleton order, uniform scaffolding,
default type/motion), and a prescription per flagged section — real
Motion Menu pattern numbers, drawn from the same graph
recommend_patterns /
validate_combination use, each with why it fits and its
ai_instruction. Free, no key.
get_pattern {slug} for the top
pick, validate_combination across every prescription at
once. No separate instructions needed; the audit's output is the
brief.
baseline, for a pass/fail verdict
and a score delta:
tools/call { "name": "verify_repair", "arguments": { "html": "<...>", "baseline": { "...": "the audit_page result" } } }
Anything still flagged comes back with a concrete fix instruction, not
just a score.
URL ingestion is guarded. https only, resolved at call time to a public address (no redirect into a private range), a 3 MB cap, a 10 second timeout, and no credentials of yours are ever forwarded to the page being audited.
No MCP client, or building your own? Paste this into your agent's system prompt — it works keyless, on the free tier, and stays honest about what a key unlocks:
You have access to Motion Menu — a library of numbered, working
motion/3D/page-section patterns (real HTML, CSS, JS) — over MCP at:
https://motion-menu-two.vercel.app/api/mcp
Connect as a standard MCP server, JSON-RPC 2.0, streamable HTTP. No key is
needed to connect, list tools, or call the free ones.
Tools: get_kit, get_design_digest, list_patterns, list_themes,
recommend_patterns, validate_combination, build_page, check_updates,
get_pattern, get_theme, compose_page, audit_page, verify_repair.
Workflow — call in this order:
1. get_design_digest read the quality contract first.
2. recommend_patterns describe the page, get scored candidates (free).
3. validate_combination check the picks for clashes before building (free).
4. compose_page build one working page from a validated set — or
get_pattern pull one pattern's full code directly.
Already have a site? audit_page {html or url} diagnoses the default-AI
section grammar and prescribes real patterns per flagged section; rewrite,
then verify_repair {html} confirms the tells are gone. Both free, keyless.
Free, no key: list_patterns, list_themes, get_kit, recommend_patterns,
validate_combination, audit_page, verify_repair — plus a free set of sample
patterns and the mm theme via get_pattern/get_theme.
Paid (Lifetime, $149 once, no subscription): compose_page in both modes,
every remaining pattern, and every other theme. Get a key at
https://motion-menu-two.vercel.app/store, then send it as
Authorization: Bearer mm_live_...
If a call is refused, the response states exactly what plan unlocks it —
read that back before retrying.
The tool list and workflow above come straight off the live MCP server
(tools/list) — see /connect
for client-specific setup commands.
GET /p/manifest.json library version + per-item hashes
GET /p/catalog.json the index, filed by page role
GET /p/<slug>.json one pattern's html / css / js (key for paid items)
GET /p/<slug>.md the same pattern as markdown
GET /r/registry.json shadcn-compatible registry index
GET /t/themes.json theme index
GET /api/updates?since=<ver> exactly what changed since your build
POST /api/mcp MCP server (JSON-RPC 2.0)
Send the key as x-mm-key,
Authorization: Bearer, or ?k=. Free patterns
answer without one.
Registry and get_pattern accept
framework=react|vue|svelte|vanilla (default react). The
underlying motion code is identical — the wrapper changes, the behaviour
doesn't.
/api/updates?since=<your version> returns exactly
which patterns changed, so an agent can refresh a site without
re-reading the catalogue. The manifest carries the current version and
per-item hashes.
The visual builder was retired in August 2026. If you linked a Vercel account to it, the stored token can be removed at any time:
POST https://motion-menu-two.vercel.app/api/vercel
Content-Type: application/json
x-mm-key: <your key>
{ "action": "disconnect" }
Projects and deployments already created stay in your Vercel account — they are yours.
menu@davidandrewfurniture.com — questions, billing, deletion requests.
Motion Menu · Catalogue · Store · Changelog · Terms · Privacy