原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

MotionLint

作者:bobaba99版本 0.2.1i★ –i在你的电脑上运行
注册名称io.github.bobaba99/motionlint

安装

概览

作者提供的说明(英文原文)

Catch bad animations before they ship. Deterministic motion audit + vision-LLM design review.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 设计、图片与音频
  • 你需要填写:ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY, OPENAI_BASE_URL

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "motionlint": {
      "command": "npx",
      "args": [
        "-y",
        "motionlint",
        "mcp"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value",
        "GOOGLE_API_KEY": "your-value",
        "OPENAI_BASE_URL": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add motionlint --env ANTHROPIC_API_KEY=your-value --env OPENAI_API_KEY=your-value --env GOOGLE_API_KEY=your-value --env OPENAI_BASE_URL=your-value -- npx -y motionlint mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "motionlint": {
      "command": "npx",
      "args": [
        "-y",
        "motionlint",
        "mcp"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value",
        "GOOGLE_API_KEY": "your-value",
        "OPENAI_BASE_URL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "motionlint": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "motionlint",
        "mcp"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value",
        "GOOGLE_API_KEY": "your-value",
        "OPENAI_BASE_URL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • ANTHROPIC_API_KEY 机密 env
    Anthropic API key for vision-LLM review. Optional — the deterministic audit needs no key, and Ollama, OpenAI or Google can be used instead.
  • OPENAI_API_KEY 机密 env
    OpenAI API key for vision-LLM review. Optional.
  • GOOGLE_API_KEY 机密 env
    Google API key for vision-LLM review. Optional.
  • OPENAI_BASE_URL env
    Override the OpenAI base URL to target an OpenAI-compatible endpoint. Optional.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 bobaba99 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“设计、图片与音频”中的其他服务器比较i

  • 星标数多于此分类中其他 2189 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2189 个服务器的 18% 更新
  • 基础检查结果等于或优于此分类中其他 2189 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

MotionLint 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.2.1)于3个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Figma Context MCP, Claude Real Video, Figma MCP Server

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Figma Context MCP

作者:GLips

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

在你的电脑上运行★ 16,165MIT5个月前更新
安装

Claude Real Video

作者:HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

在你的电脑上运行★ 2,284MIT2个月前更新
安装

Figma MCP Server

作者:figma

The Figma MCP server brings Figma design context directly into your AI workflow.

在云端运行★ 2,15213个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

MotionLint

Score any page's animation quality in one command. No API key, no config.

npx motionlint audit http://localhost:3000 --open

Deterministic — measured from the live page, no LLM involved. One-time prerequisite: npx playwright install chromium .

MotionLint measures the motion your app actually ships — durations, easing curves, stagger intervals, exit timing, reduced-motion support — and scores it against a published set of animation standards. Ease-in on a dropdown, a 600ms modal, a card that scales from 0, hover motion that fires on touch: all caught, all with the measured value and a concrete fix.

The audit is free and offline. Add an API key and MotionLint also does vision-LLM design review — multi-viewport screenshots and 50ms frame bursts of real user journeys, judged by a model and handed back to your coding agent as ranked findings. It runs as an MCP server inside Claude Code and Cursor.

Why this exists

AI coding agents read JSX, HTML, and CSS — they're blind to what the user actually sees, clicks, and watches animate. Rules in a prompt tell the agent what *should* happen; nothing checks what *did*. Modals that should slide in just pop; loading states get omitted; focus rings disappear. Code review can't catch any of this before merge, because none of it is visible in the diff.

MotionLint closes that loop: it measures the running app and feeds the verdict back.

How it's different

MotionLintVisual regression tools (Percy, Chromatic, Playwright snapshots)AI design generators (v0, Galileo, Claude Design, Stitch)
Deterministic motion audit13 checks, measured from the live page — no API key, $0✗✗
Multi-viewport UX reviewranked findings across 12 dimensionspixel diffs onlygenerates new layouts from prompts
Animation review50ms frame bursts via CDP screencast → contact sheet → LLM✗✗
Live animation tuningShadow-DOM previews + sliders + Claude Code export✗generates new motion, doesn't tune what's there
Native MCP server✓ stdio MCP for Claude Code / Cursor✗varies
CI gate✓ SARIF + exit codes for code scanning✓ image diff thresholds✗
Validated quality100% recall on a 24-fixture stress test, across 5 frontier modelsn/an/a

The conceptual gap MotionLint closes: visual-regression tools catch what *changed* but not whether the new pixels are *good*; AI design tools generate from scratch but don't review what's already running. MotionLint reviews live behavior with a vision LLM and feeds the verdict back into the coding loop.

Start here — no API key needed

npx playwright install chromium          # one-time per machine (~300MB)

npx motionlint audit http://localhost:3000 --open

That's the whole setup for the audit. It's deterministic, runs offline, costs nothing, and works on any URL you can load — your dev server, a staging deploy, or someone else's site. Requires Node 18+.

The rules it checks are published in docs/STANDARDS.md — read them before you install anything.

Then: LLM design review

Set one API key (ANTHROPIC_API_KEY, OPENAI_API_KEY, or GOOGLE_API_KEY — or run Ollama locally for free) and three more commands unlock:

npm install -g motionlint

Multi-viewport UX review of a page → ranked findings across 12 dimensions.

motionlint review http://localhost:3000

Animation review of a scripted user journey → frame contact sheet + report.

motionlint flow --spec flows/signup.json

Interactive HTML tuner — every animation on the page, with live sliders.

motionlint tune http://localhost:3000

Inside Claude Code / Cursor
claude mcp add motionlint -- npx -y motionlint mcp

Full flag surface — CI gates, route discovery, Storybook, dark mode, baselines

# CI mode — non-zero exit on critical issues, SARIF output for code scanning.

motionlint review https://staging.acme.dev --ci --threshold critical --format sarif -o ux.sarif

Polished, shareable HTML review with embedded screenshots + before/after fixes.

motionlint review http://localhost:3000 --format html -o review.html

Review every route the site knows about (sitemap.xml + Next.js app/ directory).

motionlint review http://localhost:3000 --discover-routes

Storybook mode — discover stories from /index.json, review each story iframe as its own route.

motionlint review http://localhost:6006 --storybook

Color-scheme sweep — light and dark modes, plus Windows High Contrast.

motionlint review http://localhost:3000 --schemes --forced-colors --format html -o review.html

Interaction affordances — grid each element's default/hover/focus/active states.

motionlint review http://localhost:3000 --state-grid

Agent focus — keep only the top 5 findings, and only ones not seen in prior runs.

motionlint review http://localhost:3000 --max-findings 5 --new-only

Before/after comparison — PR preview vs. production baseline.

motionlint review https://pr-123.preview.example.com --against https://prod.example.com

Reviewer focus — cap the SARIF upload at 10 annotations per report.

motionlint review https://staging.acme.dev --format sarif -o ux.sarif --max-pr-annotations 10

Pick a provider explicitly (auto-detect picks the first reachable one).

motionlint review http://localhost:3000 --provider anthropic --model claude-sonnet-5

Track provider quality across runs + teach the reviewer from eval misses.

motionlint eval --provider anthropic --evolve

Package on npm: motionlint.

Sample terminal output for a flow review:

$ motionlint flow --spec flows/signup.json --provider anthropic

→ Running flow "signup-happy-path" against http://localhost:3000/signup (11 steps, 50ms intervals × 750ms window) provider: anthropic (claude-sonnet-5) capturing flow… ✓ step 1: 16 frames ✓ step 2: 16 frames ✓ step 3: 16 frames … captured 176 frames in 31s contact sheet → .motionlint/flows/signup-happy-path-…png analyzing flow… report → .motionlint/flows/signup-happy-path.md

Score: 4/10 · 3 critical findings [critical] interaction — input focus rings missing across steps 2/4/6 [critical] interaction — submit button has no pressed state [critical] loading_state — 1.4s wait with no spinner during submit

Try the demo

A multi-route TS animation showcase ships in demo/ — covering Motion One, GSAP, anime.js, @formkit/auto-animate, and lottie-web — including a cat-themed one-pager that exercises every MotionLint capability in a single URL:

node demo/server.mjs                                # http://localhost:4173

motionlint review http://localhost:4173/cat --record --embed motionlint flow --spec flows/signup.json motionlint tune http://localhost:4173/dashboard

Routes available: /, /pricing, /signup, /dashboard, /loading, /cat. Reports go to .motionlint/reports/, screenshots to .motionlint/screenshots/, videos to .motionlint/videos/.

Setup

API keys

MotionLint auto-loads a .env file from the working directory at startup:

# .env (gitignored)

ANTHROPIC_API_KEY=sk-ant-...

or

OPENAI_API_KEY=sk-...

or

GOOGLE_API_KEY=...

or run a local Ollama (no key needed) — auto-detected on http://localhost:11434

Real environment variables take precedence over .env. With no key set and no Ollama running, MotionLint falls back to a deterministic mock provider so the full pipeline (capture → analysis → report) still runs end-to-end for smoke tests.

Provider auto-detect

MotionLint auto-detects in this order: Ollama (local) → Anthropic → OpenAI → Google. The first one with a working API key (or running service) wins. Override with --provider and --model . See Providers in depth for the per-provider quality scorecard and how to pick.


*Everything below is for readers who want to understand how MotionLint works under the hood, pick the right provider for their workflow, or wire it into CI.*

Validated quality across providers

The flow-review pipeline was stress-tested across 12 popular web-app animation patterns × 2 variants (24 fixtures total) — staggered entrances, hover/press/focus, modal entrances, loading skeletons, form errors, toasts, counter ramps, multi-animation dashboards, modal-with-content stagger, rich form feedback (focus + press + spinner + success), and scroll-driven animations (progress bar + IntersectionObserver reveal + parallax).

Run on 2026-07-27 against the current flagship from each major provider:

Provider · modelRecall (broken caught)FPR (clean flagged)Score gapWall time
OpenAI · gpt-5.6-sol100% (12/12)0% (0/12)+3.310.9 min
OpenAI · gpt-5.5100% (12/12)0% (0/12)+3.311.5 min
Anthropic · claude-opus-5100% (12/12)8% (1/12)+4.121.0 min
Google · gemini-3.6-flash100% (12/12)17% (2/12)+5.14.9 min
Anthropic · claude-sonnet-5100% (12/12)33% (4/12)+3.110.8 min

Read this as: recall is no longer a differentiator. Every current flagship catches all 12 seeded faults. That is the finding — a year ago it wasn't true, and it means the model choice no longer decides whether MotionLint works. Pick on cost and latency.

Do not rank these models on the FPR column. A single 24-fixture run cannot resolve it. Across two clean runs of the identical suite, with nothing changed but sampling, FPR moved by 1–2 fixtures per model — gpt-5.5 1/12 → 0/12, gpt-5.6-sol 2/12 → 0/12, gemini-3.6-flash 3/12 → 2/12. One fixture is 8 percentage points, so the entire spread between "0%" and "17%" sits inside the noise floor. Treat the column as *"all of these occasionally flag something clean"*, not as a ranking.

Why the older numbers in this table's history were wrong

The first 2026-07-27 run of this suite put claude-opus-5 at 83% recall — last among all five models — and the 2026-04-29 edition of this table reported several models at 0% FPR. Both were artifacts of a MotionLint bug, not model behaviour.

Anthropic's max_tokens defaulted to 4096. Verbose responses hit the ceiling mid-JSON, and the unparseable result was scored as 0/10, no issues found — indistinguishable from a clean review. Two of Opus 5's three truncations landed on broken fixtures, which produced the entire 83% figure.

The same bug deflated FPR everywhere: a truncated review reports *nothing*, so it cannot raise a false positive. Any historical "0% FPR" was partly measuring broken parsing rather than model precision. Fixed 2026-07-27, along with the sibling paths that turned truncated, refused, and safety-blocked responses into clean-looking results.

Full per-provider scorecards in .motionlint/stress/ after running scripts/run-all-benchmarks.mjs. Use --only : to re-run a single model.

Providers in depth

ProviderModelSetupQuality (24 fixtures)Cost per review¹

| google | gemini-3.6-flash | `GOOGLE_API

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx