{"name":"io.github.bobaba99/motionlint","slug":"bobaba99-motionlint","title":"MotionLint","description":"Catch bad animations before they ship. Deterministic motion audit + vision-LLM design review.","url":"https://mcp.market/server/bobaba99-motionlint","rating":null,"grade":"C","score":55,"certified":false,"status":"active","category":"ai","tags":["ai","media"],"presence":{"score":17,"stars":0,"forks":0,"downloads_week":29,"last_push_at":"2026-07-27T16:09:03.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/bobaba99/motionlint","website":null,"version":"0.2.1","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"motionlint","version":"0.2.1","transport":{"type":"stdio"},"packageArguments":[{"description":"Starts MotionLint in MCP stdio server mode.","value":"mcp","type":"positional"}],"environmentVariables":[{"description":"Anthropic API key for vision-LLM review. Optional — the deterministic audit needs no key, and Ollama, OpenAI or Google can be used instead.","format":"string","isSecret":true,"name":"ANTHROPIC_API_KEY"},{"description":"OpenAI API key for vision-LLM review. Optional.","format":"string","isSecret":true,"name":"OPENAI_API_KEY"},{"description":"Google API key for vision-LLM review. Optional.","format":"string","isSecret":true,"name":"GOOGLE_API_KEY"},{"description":"Override the OpenAI base URL to target an OpenAI-compatible endpoint. Optional.","format":"string","name":"OPENAI_BASE_URL"}]}],"tools":[{"name":"get_latest_report","description":"Return the most recent UX review report content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_flow","description":"Run a scripted user-flow review against a URL. Captures frame bursts after every interaction and asks the vision LLM to grade animation quality, missing transitions, loading-state feedback, choreography, smoothness, and flicker. Use this when the user asks about animations, interaction states, or whether a flow feels good — NOT for static design issues (use review_url for those).","write_action":true,"price_micros":0,"input_schema":null},{"name":"review_routes","description":"Review multiple routes of an application.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_url","description":"Capture and analyze a URL for UI/UX issues using vision AI.","write_action":false,"price_micros":0,"input_schema":null},{"name":"tune_animations","description":"Detect every animation on a page (CSS transitions/keyframes plus Motion One / GSAP / anime.js / @formkit/auto-animate / lottie-web), and write an interactive HTML tuner page where the user can adjust duration/delay/easing live and export a Claude-Code-ready prompt with the parameter changes. Returns the file path of the generated tuner. Use when the user wants to fine-tune existing animation param","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":55,"grade":"C","scanned_at":"2026-09-24T21:40:59.379Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T21:40:59.346Z","components":{"code":{"score":10,"max":25,"notes":["144 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 59 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/capture/dom.js: …hotPage.toString(); const wrapped = new Function(`var __name = (f) => f; return (${src})(…"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: …ew http://localhost:4173 --record\", \"postinstall\": \"node -e \\\"console.error('\\\\n [motionl…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"motionlint","version":"0.2.1","found":true,"license":"MIT","hasInstallScripts":true,"dependencyCount":7,"publishedAt":"2026-07-27T04:01:27.698Z","repositoryUrl":"git+https://github.com/bobaba99/motionlint.git","weeklyDownloads":29}],"repo":{"found":true,"owner":"bobaba99","repo":"motionlint","archived":false,"pushedAt":"2026-07-27T16:09:03Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/53244273?v=4","ownerCreatedAt":"2019-07-24T02:07:08Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/53244273?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":29,"license":"MIT","lastPushAt":"2026-07-27T16:09:03.000Z","score":17}}}},"grade_history":[],"reviews":[]}