# Motion Menu

> 597 motion/3D UI patterns as ready HTML/CSS/JS, served over MCP. The entire library is free.

- name: io.github.dev55acc-ai/motion-menu
- version: 16.0.0
- connection class: R0 (autonomous)
- trust: 77/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.dev55acc-ai%2Fmotion-menu
- tools: https://api.protogrid.dev/v1/servers/io.github.dev55acc-ai%2Fmotion-menu/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "motion-menu": {
      "type": "http",
      "url": "https://www.motionmenu.ca/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 45
- drivers: +website +reachable +uptime-100% ~updated-49d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_patterns (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); recommend_patterns (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); build_page (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 2,147 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 2,147 tokens to load them all
- tool set hash: 45e13955b500a89f806f85e11c9ac37d
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.dev55acc-ai/motion-menu.svg)](https://protogrid.dev/servers/io.github.dev55acc-ai/motion-menu)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://www.motionmenu.ca/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (11)

- `audit_page`: Audit an EXISTING page (yours or a client's — any AI builder, any stack) for the default-AI "section grammar" tell: numbered steps, a centered hero with two buttons, 3-up icon cards, a testimonial/FAQ/CTA-band skeleton repeating unchanged. Deterministic, no LLM — every finding cites the exact matched HTML. Returns an ai_shaped_score (0-100), per-section tells with evidence, page-level tells (skeleton order, uniform scaffolding, default type/motion), and prescriptions: real Motion Menu patterns to replace each flagged section, drawn from the same graph recommend_patterns/validate_combination use, plus the exact next tool calls to fetch and validate them. FREE, no key required.
- `build_page`: Design a complete page from intent. Returns an act map — 5–7 acts in page order, each with a purpose, recommended patterns (by slug), and a density rating (loud/quiet). Follows the one-page protocol: density wave pacing, one GL spectacle, 12–18 viewport-heights. Feed the result straight to get_pattern to retrieve the code. Returns metadata only — no pattern bodies.
- `check_updates`: 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.
- `get_design_digest`: 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.
- `get_kit`: 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.
- `get_pattern`: 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).
- `list_patterns`: 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 its tag vocabulary.
- `propose_directions`: Turn a business/page brief into three deliberately different design genomes before choosing components. Each direction defines layout grammar, typography, imagery, motion physics, density rhythm, and explicit avoid rules. Pass a returned direction_id into build_page with the same brief and seed.
- `recommend_patterns`: Intent-aware pattern recommendations. Describe what you are building — industry, style, mood, technical needs — and get scored results with reasons and compatibility suggestions. Returns metadata only (number, slug, title, role, score, reason, compatible_with). Call get_pattern to retrieve the actual code for any recommendation.
- `validate_combination`: 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.
- `verify_repair`: Re-audit a page you just rewrote from audit_page's prescriptions and get a pass/fail verdict: fresh ai_shaped_score, the delta from the prior audit (pass baseline_score or the whole prior audit_page result as `baseline`), and any tells STILL present, each with a concrete fix instruction. FREE, no key required.
