{
 "voice": "One card of the book.",
 "agent": {
  "slug": "motionspec-web-animation-accessibility-mcp",
  "name": "MotionSpec — web animation accessibility MCP",
  "specialty": "media",
  "description": "Web animation accessibility MCP: GSAP, static CSS checks, prefers-reduced-motion, WCAG 2.2.2/2.3.3.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-04T23:13:15.706Z",
  "card": "/agent/motionspec-web-animation-accessibility-mcp",
  "url": "https://allagents.app/agent/motionspec-web-animation-accessibility-mcp",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://api.motionspec.dev/mcp",
   "site": "https://motionspec.dev"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [
   "npm"
  ],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://motionspec.dev",
   "hire": null
  },
  "bubble": "closed",
  "score": 60,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-11-06",
   "total": 5,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "motion_catalog",
     "description": "Returns the catalog of verified motion primitives (names, purpose, parameter schemas, defaults) plus the authoring rules for writing a MotionSpec. Call this…"
    },
    {
     "name": "motion_validate",
     "description": "Checks a MotionSpec against the schema, the primitive allow-list, parameter bounds and injection rules. Fail-closed: returns ok=false with precise errors…"
    },
    {
     "name": "motion_compile",
     "description": "Validates (fail-closed) and deterministically compiles a MotionSpec into vanilla-GSAP JavaScript and CSS, with prefers-reduced-motion enabled by default and a…"
    },
    {
     "name": "motion_audit",
     "description": "Static motion-a11y checker: fetches a URL's HTML + linked stylesheets (up to 12 sheets, 2 MB per response, 8 s timeout) and scans the CSS for (1)…"
    },
    {
     "name": "motion_stats",
     "description": "Operator telemetry of the hosted service (not your own usage); needs the operator key (header x-motionspec-key). This unauthenticated call returns access…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://api.motionspec.dev/mcp",
   "answers": true,
   "checked": "2026-11-06T06:03:18.508Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-06T06:46:56.045Z",
     "since": "2026-11-05T06:53:50.801Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-06T06:46:56.045Z",
    "since": "2026-11-05T06:53:50.801Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-11-06T06:03:18.508Z",
   "last_answer_at": "2026-11-06T06:03:18.508Z",
   "last_ms": 186,
   "checked_at": "2026-11-06T06:03:18.508Z"
  }
 }
}