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.
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.
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.