プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Uisight

作者:sololabstrバージョン 0.34.0i★ –iパソコンで動く
レジストリ名io.github.yusufcemres/uisight

インストール

概要

作者による説明(英語の原文)

Your AI sees the screen but can't measure it — measured web UI findings, shared live sessions

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中0項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: UISIGHT_URL, UISIGHT_PORT, UISIGHT_LANG

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "uisight": {
      "command": "npx",
      "args": [
        "-y",
        "uisight"
      ],
      "env": {
        "UISIGHT_URL": "your-value",
        "UISIGHT_PORT": "your-value",
        "UISIGHT_LANG": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add uisight --env UISIGHT_URL=your-value --env UISIGHT_PORT=your-value --env UISIGHT_LANG=your-value -- npx -y uisight

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "uisight": {
      "command": "npx",
      "args": [
        "-y",
        "uisight"
      ],
      "env": {
        "UISIGHT_URL": "your-value",
        "UISIGHT_PORT": "your-value",
        "UISIGHT_LANG": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "uisight": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "uisight"
      ],
      "env": {
        "UISIGHT_URL": "your-value",
        "UISIGHT_PORT": "your-value",
        "UISIGHT_LANG": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • UISIGHT_URL env
    Initial target URL for the live sessions (default: http://localhost:3000)
  • UISIGHT_PORT env
    Panel server port (default: derived from the project's working directory, so parallel projects get separate panels)
  • UISIGHT_LANG env
    Set to 'tr' for Turkish tool names

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ! 注意

    作者とリポジトリが一致

    公開者(yusufcemres)がリポジトリの所有者(sololabstr)ではありません。別の人が登録した可能性があります

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32623件のうち0%よりスターが多い
  • このカテゴリのほかの32623件のうち43%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32623件のうち30%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Uisightは安全ですか?

当てはまる基本チェック1項目のうち0項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.34.0)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Draugr

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211一昨日更新
インストール

Draugr

作者:draugr-dev

Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.

パソコンで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

uisight

Your AI can already see the screen. It just can't measure it.

Screenshots make an agent *guess*: "that heading looks a bit faint." uisight makes it know:

- from a screenshot:  "the heading looks a little washed out, maybe adjust the color?"
  • from uisight: INVISIBLE TEXT 1.04:1 — span.bg-gradient-to-r "your headline"
  • (text rgba(255,255,255,.5) / bg rgb(247,247,248))

One is an impression. The other is a measurement with a selector attached — the agent fixes *that* element instead of hunting for it.

uisight is an MCP server for web and responsive UIs (Claude Code, Cursor, Antigravity, anything that speaks MCP). It runs live mobile + desktop sessions side by side, measures what it finds, and puts you and the agent in front of the exact same screen.

Built by a solo founder who got tired of taking phone screenshots, pasting them into chat, and typing "the button looks broken, can you see it?"

*The live panel: desktop + mobile sessions of the same site, URL-synced. Inspect runs on every screen; findings come back per device. Your AI sees this exact view through MCP.*

What makes it different

| | Multi-viewport browsers (Polypane etc.) | Browser tools / computer use (Playwright MCP, agent harnesses) | Native app toolkits (Argent etc.) | uisight | |---|---|---|---|---| | Measures the UI (1.14:1, not "looks low") | ✅ for humans | — | — | ✅ as text, for the agent | | Human + agent share one live session | — | — | — | ✅ | | Device × theme matrix in one run | ✅ | — | — | ✅ | | Human pins a bug → agent reads note + frame | — | — | — | ✅ | | Native iOS/Android apps | — | — | ✅ | — (web only) |

The measurement engine is the heart: instead of your AI burning tokens squinting at screenshots, inspect returns findings like

[mobile · Pixel 7 · light] https://yourapp.com/

INVISIBLE TEXT 1.04:1 — span.bg-gradient-to-r "your headline" (text rgba(255,255,255,.5) / bg rgb(247,247,248)) BUTTON a.text-white "Get Started" → text/background contrast 3.35:1 touch target below 44px 180x23 — "read the guide"

Text findings are cheap, precise, and directly actionable — your AI fixes the exact selector instead of guessing.

"My agent already does this"

Fair — and partly true. Computer use, browser tools and most agent harnesses can already open a page and take a screenshot. That's the part uisight doesn't try to replace. Three things are still missing:

1. Looking isn't measuring. A vision model reading a screenshot cannot tell you a contrast ratio. It can't tell 4.6:1 (fine) from 4.3:1 (fails WCAG AA) — they look identical. It won't notice that a tap target is 41px instead of 44px, or that an element renders identically in light and dark mode because its color is hard-coded. uisight computes these from the live DOM: alpha-composited backgrounds, gradient text, oklch() colors and all.

2. The same price buys far more. This used to claim a screenshot costs several times what a measurement does. Measured, that is not true: a mobile frame is ~460 tokens and the matching inspect result is ~570. inspect is not the cheap option — it is the option that says 4.38:1 (threshold 4.5) where a picture only lets the model guess.

The real saving is a different choice: uisight writes a report the model reads once (~800 tokens), while driving the MCP tools screen by screen re-sends the whole conversation at every step. Someone put the problem perfectly under the launch thread: *"it burns some tokens but it manages."* What it costs has the whole table, because a claim like this one is worth checking.

3. Nobody's watching with you. In the usual setup the agent looks at the page alone and reports back. Here you both watch the same live session — you see what it does as it does it, and when *you* spot something, you pin it (📌) with a note and the agent reads your note plus that exact frame. No more describing a bug in words.

Scope note: uisight is for web and responsive UIs. For native iOS/Android app control, Argent is excellent and does far more than we do there.

Quickstart

# one-shot audit: PNGs + gallery + report for iPhone/Pixel/desktop, light+dark

npx uisight https://yourapp.com --theme both

live panel: mobile + desktop side by side, you browse, AI watches (and vice versa)

npx -y -p uisight uisight-panel http://localhost:3000

First run. Playwright ships its driver over npm but downloads browsers separately, so the first run has nothing to drive. In a terminal, uisight offers to fetch what it needs (Chromium is about 700 MB on disk, once) and shows the download. Where there is nobody to answer — CI, or a panel an editor or agent host started — it never asks and never downloads; it names the exact command instead. UISIGHT_NO_INSTALL=1 turns the offer off everywhere, and you can always do it yourself:

npx playwright install chromium        # add webkit for the real iOS Safari engine

The one-shot audit produces a device × theme gallery with findings per card:

Hook it into your AI (MCP)
# Claude Code

claude mcp add --scope user uisight -- npx -y -p uisight@latest uisight-mcp

For Cursor / Antigravity / other MCP hosts, add to your MCP config:

{ "mcpServers": { "uisight": { "command": "npx", "args": ["-y", "-p", "uisight@latest", "uisight-mcp"] } } }

Then just tell your agent: *"look at my app with uisight"*. The panel server starts automatically when needed.

Claude Desktop (one click)

Download uisight- .mcpb from the latest release and open it. Claude Desktop installs it and asks three things: the page to open, the tool set (all or core), and whether to download the browser on first use. There is no JSON to edit.

The bundle carries the server and its dependencies (about 7 MB). Browsers are not in it, which is what that third question is about: leave it on and a missing Chromium is fetched once, on the first tool call, by the Playwright version the bundle was built with. Build the bundle yourself with node scripts/build-mcpb.mjs.

MCP tools

ToolWhat it does
see_screenReturns the current screen as an image — the exact frame the human sees in the panel
inspectRuns contrast / touch-target / overflow / theme checks; returns measured findings as text
gotoNavigates all sessions to a URL (localhost included)
tap / type_text / scrollDrives the page — the human watches it happen live
set_deviceSwitches device profile (iphone-15, iphone-se, pixel, galaxy, ipad, desktop, laptop) or light/dark theme
statusOpen URL, sessions, recent console/network errors — first stop when hunting a bug
marksReads the notes the human pinned in the panel (📌 note + screenshot at that moment)

Turkish tool names available with UISIGHT_LANG=tr (ekrani_gor, denetle, ...).

The panel (human side)

npx -y -p uisight uisight-panel opens a browser page at localhost:5055:

  • Mobile + desktop side by side, both live, URL-synced
  • Click = tap on that device · wheel = scroll · type after clicking
  • Per-pane device switcher, shared light/dark toggle
  • Inspect button runs the measurement engine on every screen
  • 📌 Pin: type a note, pin it — your AI reads note + screenshot via marks. No more "let me describe what I'm seeing."

Works inside VS Code / Antigravity via *Simple Browser: Show* → http://localhost:5055.

What it checks

Can you read it

  • Invisible text (contrast < 1.6:1) and WCAG AA contrast failures — alpha-composited backgrounds, gradient text, oklab()/oklch() colors all handled
  • Text below 12px, images without alt
  • Text cut off by its own container (line-clamp and friends are not "clipped" — they are a decision)

Can you reach it

  • Touch targets below 44px (mobile profiles only; inline text links exempt by width, per WCAG)
  • Controls painted over by something else — confirmed with elementFromPoint, not geometry, and sampled edge to edge so a floating button covering one end of a wide button is caught
  • Controls trapped under a fixed bar, or under the on-screen keyboard (keyboard-audit opens the keyboard the way a phone does and re-measures)
  • Content clipped by a container with no way to scroll to it — the same box with overflow-x: auto is fine, because the content is reachable
  • Text sliding behind a control when a row does not wrap
  • Horizontal overflow with the offending elements
  • Fixed bars sitting under the notch or home indicator — only when the page asked for the full screen (viewport-fit=cover) and then never used the inset it got back; without that flag iOS letterboxes the page and nothing can be hidden

Does it make sense

  • A row of actions where every one looks identical, so nothing says which is primary — quiet on tabs, menus and filter chips, and only fires when mis-clicking costs something (save, delete, send, pay)
  • Light patches left behind in dark mode
  • Two languages in one screen, and US date formats in a non-US locale
  • "0 results" shown while a spinner is still turning — an intermediate state presented as the truth
  • An error message that names nothing ("An error occurred.") with no way out beside it
  • An irreversible action — delete, remove, delete account — on a page that owns no confirmation step at all; the button is never clicked, because clicking it really deletes
  • A permission asked for during load, before the person has done anything that would explain it
  • Theme drift: elements identical in light *and* dark = likely hard-coded colors
  • Console/JS errors and failed network requests per device

Every check has a false-alarm test next to its detection test. That is not politeness: a tool that cries wolf on every bottom navigation bar gets ignored, and then its real findings go unread too.

And the honest limit: automated checks cannot see *design* mistakes — a collided header measures fine. That's why see_screen exists and why the report says "eyeball the PNGs."

Behaviour you cannot see by looking (offline, back)

Two of these cannot be measured from a rendered page: the network has to actually drop, and the back button has to actually be pressed. Both run as panel actions, so the audit and the MCP tools share them.

# through the panel

curl -X POST localhost:5055/action -H 'x-uisight-token: ...' \ -d '{"type":"offline-audit","session":"mobile"}'

Offline drops the connection, reloads, and asks what the person is looking at: an explanation, a retry, a spinner that will never finish, or nothing. The distinction that keeps it honest is the service worker — a page without one *cannot* answer offline, so that result is marked expected and the audit filters it out. A page that registers a worker and still shows the browser's error page is a real finding. The connection is restored in a finally, so a failure never leaves the session stuck offline.

Back follows an internal link and presses back, then checks that the address returned to where it started and that the screen is not empty. Coming back to a blank page is how "back" turns into "leave the app".

Behind the login (uisight-audit)

Public pages are the half of an app nobody lives in. Of four real bugs a person found by hand and sent in, three

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く