UI Verify

io.github.igrlk由 GitHub 帳號 igrlk 發布v1.2.0更新於 Nov 6, 2026

Visual testing for coding agents: your agent sees every UI change it makes and triages each diff.

已驗證Streamable HTTP可網頁執行瀏覽器自動化開發者工具安全與監控

概覽

AI 產生的概覽

託管式視覺測試服務,讓編碼代理透過 MCP 檢視建置與拉取請求中的 UI 差異,並接受或拒絕基準變更。

可以做什麼
  • 列出可存取的專案與最近的建置,並依狀態分頁瀏覽建置中的 story
  • 檢視某次建置的變更內容,或某個拉取請求相對於基準分支的 UI 變化
  • 取得單一 story 的差異詳情與圖片網址,並取回 story 圖片的實際像素
  • 接受、拒絕或忽略單一 story 的變更,或一次接受建置中所有變更的 story
  • 讀取 AI 判定結果,區分真實回歸與外觀雜訊,並在對話中完成分診
適用情境
適合團隊已在 CI 使用 UI Verify 視覺測試,並希望代理在終端機內直接審查拉取請求的 UI 變更、判斷差異是否為真實回歸,並接受預期內的基準。
執行需求
遠端 streamable HTTP 端點,無需在本機安裝或執行。需要在瀏覽器中透過 OAuth 登入 UI Verify,並具備相關專案與團隊權限。搭配的 CLI 與擷取 SDK 另需 Node.js 和 UIVERIFY_API_KEY。
安裝前請注意
此伺服器會改動基準:review_diff 與 accept_build 可接受、拒絕或忽略 UI 變更,進而影響後續建置的比對結果。它會讀取專案的建置、story 與截圖,這些內容由託管服務在伺服器端算圖與判定。登入後可存取你所在所有團隊的全部專案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 UI Verify,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.igrlk%2Fuiverify/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "ui-verify": {
      "type": "http",
      "url": "https://uiverify.ai/mcp"
    }
  }
}

README

[UI Verify]

UI Verify

Visual testing for agents

Catch unintended UI changes on every pull request. UI Verify renders your components in the cloud, diffs them against a baseline, and lets a coding agent triage what actually changed.

[uiverify] [@uiverify/playwright] [@uiverify/vitest] [@uiverify/bun] [License: MIT]

uiverify.ai  ·  GitHub  ·  CLI  ·  Playwright SDK  ·  Vitest SDK  ·  Bun SDK  ·  Skills


What is UI Verify?

UI Verify is a hosted visual-testing service that plugs into your CI. On each PR it:

  1. Captures your UI, from Storybook stories, from your existing Playwright or Vitest browser-mode tests via a drop-in capture SDK, from visual tests on bun test with the Bun SDK, or from finished screenshots your own harness already produces (native, mobile, React Native) uploaded straight for diffing.
  2. Renders & diffs every state in the cloud against the baseline from your default branch.
  3. Reports the verdict back as a GitHub check, and gates the PR on it.
  4. Triages: a coding agent (Claude Code, Codex, and others) buckets real regressions vs. cosmetic noise and can accept new baselines in bulk, all over MCP.

This repository holds the open-source client packages, everything that runs in your repo. All rendering, diffing, and judging happens server-side; these packages only build a bundle, upload it over HTTP, and read back status, so each is safe to read, fork, and self-host against.

Quickstart

sh
# 1. Install the CLI in your projectnpm i -D uiverify
# 2. Point it at your accountexport UIVERIFY_API_KEY=...        # from uiverify.ai
# 3. Build your Storybook, then upload; the exit code reflects the visual verdictnpm run build-storybooknpx uiverify upload --static-dir storybook-static

Already have screenshots? If your harness already produces them (Detox, Maestro, native snapshot tests, anything), upload the PNGs directly, no Storybook and no rendering required. UI Verify diffs, judges, and baselines them just the same:

sh
npx uiverify upload --screenshots ./screenshots

This is how native, mobile, and React Native projects use UI Verify: each image is keyed by its path under the directory, so a screen maps to the same baseline every build, and you can upload only the screens you changed and carry the rest forward.

Prefer to drive it from your agent? Install the skills (below) and run /uiverify:setup-visual-testing. It detects your capture path, wires CI, and writes the first stories for you.

Mid-edit checks for coding agents: uiverify check

While an agent is editing, it can render just the stories it is touching and diff them against the real CI baseline on the fleet - a "would this pass" answer without waiting for CI:

sh
npm run build-storybooknpx uiverify check --target 'components-button--*' --static-dir storybook-static

It renders only the stories you name (repeatable --target, globs or exact ids), posts no PR check, and never moves a CI baseline. A changed result is informational (exit 0) - review the pixels over the UI Verify MCP (get_build / render_diff_image) and accept in the dashboard or with accept_build to set a branch-scoped preview baseline, so your own accepted changes stop re-flagging on the next check. CI stays the only path to a main baseline.

Packages

PackageInstallWhat it does
uiverifynpm i -D uiverifyThe CLI. uiverify upload is the CI uploader (Storybook bundle, Playwright/Vitest/Bun archive, or a directory of finished screenshots) - streams render progress and reflects the visual verdict in its exit code. uiverify check is the agent edit-loop check - renders just the stories you name against the real CI baseline, without posting a check or moving a baseline.
@uiverify/playwrightnpm i -D @uiverify/playwrightThe Playwright capture SDK. Swap @playwright/test for it and each test archives its final UI state (serialized DOM + resource bytes) for UI Verify to replay and diff.
@uiverify/vitestnpm i -D @uiverify/vitestThe Vitest capture SDK. Add uiverifyPlugin() to your Vitest config and each browser-mode test archives its final DOM (serialized DOM + resource bytes) for UI Verify to replay and diff; takeSnapshot() takes named snapshots instead.
@uiverify/bunbun add -d @uiverify/bunThe Bun capture SDK. Write visual tests on bun test that drive your installed Chrome, and each test archives its final page (serialized DOM + resource bytes) for UI Verify to replay and diff; run() starts your app and runs the test files.
@uiverify/skillsnpx skills add, see belowAgent skills: SKILL.md workflows a coding agent runs in your repo to set up visual testing, author economical + deterministic stories, and triage builds. As a Claude Code or Cursor plugin, or a Gemini CLI extension, it also connects the UI Verify MCP server.
@uiverify/workflow-skillsClaude Code plugin, see belowThe agentic-development loop we build UI Verify with: factory, design, review-loop, e2e-verify, babysit-pr, and the skills that tune it.

Agent skills

Install the skills into any coding agent with one command (skills.sh):

sh
npx skills add uiverify/uiverify

Works in Claude Code, Cursor, Codex, Copilot, Gemini, and any agent that reads a skills folder. Add --list to pick individual skills, and run npx skills update to pull the latest.

Or, on Claude Code, install as a plugin so updates arrive automatically:

sh
/plugin marketplace add uiverify/uiverify/plugin install uiverify@uiverify

Either way, invoke them by name: /uiverify:setup-visual-testing, /uiverify:triage-visual-changes, and more. See packages/skills for the full list and a copy-in-by-hand alternative.

On Gemini CLI, install the same skills plus the MCP server as an extension, then log in once:

sh
gemini extensions install https://github.com/uiverify/uiverify

In a Gemini CLI session, run /mcp auth uiverify and log in to UI Verify in your browser.

The agentic-development loop we build UI Verify with (factory, design, review-loop, e2e-verify, babysit-pr) is a second plugin in the same marketplace: /plugin install uiverify-workflow@uiverify, then /uiverify-workflow:factory. See packages/workflow-skills.

Triage over MCP

Connect the UI Verify MCP server and your coding agent (Claude Code, Cursor, Codex, and others) can pull a pull request's UI changes into the conversation, look at each diff, read the AI judge's verdict, and accept the intended baselines - without leaving the terminal.

sh
claude mcp add --scope project --transport http uiverify https://uiverify.ai/mcp

If you installed the plugin above, it already connects this server, so skip the command and just log in from /mcp. Otherwise restart Claude Code after adding it, run /mcp, pick uiverify, and log in to UI Verify in your browser. You log in once and the connection reaches every project in every team you are a member of. --scope project writes it to your committed .mcp.json so the whole team gets it; the file holds no secret, since each teammate logs in with their own account. In Cursor, add { "mcpServers": { "uiverify": { "url": "https://uiverify.ai/mcp" } } } to .cursor/mcp.json and log in from its MCP settings. In Gemini CLI, the extension above connects it, and /mcp auth uiverify logs you in. Full guide: Triage visual changes from your coding agent.

The server is remote (streamable HTTP) - there is nothing to install or run. It exposes:

ToolWhat it does
list_projectsList the projects you can access, with the projectId to pass when you have several
list_buildsList recent UI Verify builds
get_buildGet what changed in a build
list_build_storiesPage through a build's stories by status
get_pr_changesetGet what a PR does to the UI vs its base branch
list_pr_storiesPage through the PR-vs-base changeset by kind
get_diffPer-story diff detail with image URLs
render_diff_imageFetch the actual pixels of a story image
review_diffAccept, deny, or ignore one story's change
accept_buildAccept every changed story in a build

Examples

Complete, runnable projects under examples/ — one per capture path. Copy a folder, add a project API key, and it works.

ExampleCapture path
examples/storybookStorybook stories (no SDK, upload --static-dir)
examples/vitestVitest browser-mode tests with @uiverify/vitest
examples/playwrightPlaywright end-to-end tests with @uiverify/playwright
examples/bunBun visual tests (bun test) with @uiverify/bun
examples/react-nativeFinished screenshots (native / mobile / React Native) with upload --screenshots

The first four capture a slice of the same Shoppy storefront; the React Native one is a small Expo app driven by Maestro. Each folder has its own CI workflow.

Development

sh
pnpm installpnpm -r build        # CLI builds dist/uiverify.js, playwright builds dist/pnpm -r testpnpm -r typecheck

The CLI requires UIVERIFY_API_KEY and talks to https://uiverify.ai by default (override with --api-url / UIVERIFY_API_URL for self-host or local dev). See each package's README and DEVELOPMENT.md for internals.

License

MIT © UI Verify

來源:README.md,提交 91e9a7d

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

3
  1. v1.2.0最新Oct 29, 2026
  2. v1.1.0Oct 20, 2026
  3. v1.0.1Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分