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

Asdesigned

作者:Maher-Revenバージョン 0.1.1i★ –iパソコンで動く
レジストリ名io.github.Maher-Reven/asdesigned

インストール

概要

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

Diff a rendered UI element against its Figma source and get every drifted property with its delta.

PopNx MCPの3つの柱

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

できること

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

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: デザイン・画像・音声
  • 入力が必要なもの:FIGMA_TOKEN

インストール

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

インストールの前に

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

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

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

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

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

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

{
  "mcpServers": {
    "asdesigned": {
      "command": "npx",
      "args": [
        "-y",
        "asdesigned",
        "asdesigned-mcp"
      ],
      "env": {
        "FIGMA_TOKEN": "your-value",
        "ASDESIGNED_BROWSER": "your-value"
      }
    }
  }
}

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

claude mcp add asdesigned --env FIGMA_TOKEN=your-value --env ASDESIGNED_BROWSER=your-value -- npx -y asdesigned asdesigned-mcp

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

Cursorで開く

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

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

{
  "mcpServers": {
    "asdesigned": {
      "command": "npx",
      "args": [
        "-y",
        "asdesigned",
        "asdesigned-mcp"
      ],
      "env": {
        "FIGMA_TOKEN": "your-value",
        "ASDESIGNED_BROWSER": "your-value"
      }
    }
  }
}

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

VS Codeで開く

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

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

{
  "servers": {
    "asdesigned": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "asdesigned",
        "asdesigned-mcp"
      ],
      "env": {
        "FIGMA_TOKEN": "your-value",
        "ASDESIGNED_BROWSER": "your-value"
      }
    }
  }
}

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

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

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

自分で入力する値

  • FIGMA_TOKEN 秘密 必須 env
    Figma personal access token with 'file content: read' scope
  • ASDESIGNED_BROWSER env
    Optional path to an existing Chrome/Chromium binary (otherwise run `npx playwright install chromium` once)

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

できること

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

基本チェックi

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

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント Maher-Reven で確認済みです

  • … 未チェック

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

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

  • … 未チェック

    ライセンスがある

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

  • – 対象外

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

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

  • – 対象外

    OAuthでサインイン

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

  • … 未チェック

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

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

デザイン・画像・音声のほかのサーバーとの比較i

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

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

よくある質問

Asdesignedは安全ですか?

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

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

入力が必要なもの:FIGMA_TOKEN

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

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

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

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

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

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

代わりに使えるものは?

同じカテゴリには:Figma Context MCP, Claude Real Video, Figma MCP Server

代わりの候補

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

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

asdesigned

Is it as designed? Diff a rendered UI component against its Figma source and see exactly what drifted. Built for coding agents: give Claude Code or Cursor the tool and they can check their own work against the design.

asdesigned compare https://www.figma.com/design/<key>/<file>?node-id=12-345 \

--url http://localhost:3000 --selector .btn-primary

design figma Button / Primary 1:4 rendered dom .btn-primary

box ✗ width design 120px → rendered 112px (−8px) padding ✗ left design 16px → rendered 12px (−4px) ✗ right design 16px → rendered 12px (−4px) border ✗ color design #1d4ed8 → rendered #2563eb (Δ29.43) typography ✗ fontFamily design "Inter" → rendered "Arial" ✗ fontWeight design 600 → rendered 500 (−100)

6 drift · 20 match FAIL (tolerance ±1px, color Δ≤4)

That output is real — examples/button.html against a real Figma component. Five of those six were planted. The sixth wasn't: elements don't inherit font-family, so the page quietly fell back to Arial. Nobody sees that in a screenshot review. The diff does.

Figma gives you the intent. The browser gives you the reality. asdesigned compares the two — and your coding agent can call it to check its own work.

Status: v0.2 — early, usable. Figma → spec, DOM → spec, diff, terminal + HTML report, MCP server, interaction states. One viewport per run — see what it doesn't cover.

Install

npx asdesigned --help            # no install

npm i -g asdesigned # or install the asdesigned command globally npx playwright install chromium # one-time: the browser used to render pages

Set FIGMA_TOKEN (a Figma personal access token with *file content: read*) in your environment or a .env file.

Use it from an agent (MCP)

asdesigned ships an MCP server so Claude Code, Cursor, and other MCP clients can call it directly. Tools: compare_design, inspect_element, inspect_figma. All three understand states: compare_design takes states: ["default","hover","focus"], inspect_element takes a single state, and inspect_figma takes variants: true to list what a component set designs.

Claude Code — .mcp.json in your project:

{

"mcpServers": { "asdesigned": { "command": "npx", "args": ["-y", "asdesigned", "asdesigned-mcp"], "env": { "FIGMA_TOKEN": "figd_…" } } } }

Cursor — .cursor/mcp.json, same shape.

A skill file describing when and how an agent should reach for the tool lives in skills/asdesigned/SKILL.md — drop it into your agent's skills folder.

Use it from the terminal

asdesigned compare <figma-url> --url http://localhost:3000 --selector .btn-primary

asdesigned compare --url … --selector … --states hover,focus # interaction states asdesigned compare --url … --selector … --html report.html # self-contained visual report asdesigned compare --url … --selector … --json # for CI / scripts asdesigned inspect http://localhost:3000 --selector .btn-primary asdesigned inspect http://localhost:3000 --selector .btn --state hover # one rendered state asdesigned inspect --variants # what states are designed

Interaction states

--states hover,focus,active,disabled (or --states all) compares each state as its own section.

The rendered side forces the matching pseudo-class before reading computed styles — :focus and :focus-visible together, so modern focus rings aren't missed. The design side comes from the Figma component set's variants: State=Hover, State=Focused, and the other spellings designers use (Pressed, Rest, Inactive) all resolve. Point at the set or at any variant inside it; asdesigned follows componentSetId to find the siblings.

Button / Primary  3 variants  1:10

default 1 drift figma State=Default 1:11 border ✗ color design #1d4ed8 → rendered #2563eb (Δ29.43) 1 drift · 20 match

hover no drift figma State=Hover 1:12 0 drift · 21 match

focus skipped "Button / Primary" has no focus variant (it defines: default, hover) — nothing to compare against

1 drift · 41 match · 2 states compared · 1 skipped FAIL

A state the design doesn't define is skipped, not failed — asdesigned won't invent an expected value. That skip is itself worth reading: no Focused variant means the focus ring was never designed, which is a gap in the design file rather than a bug in the code. If *every* requested state is undesigned the run reports NOTHING COMPARED and exits non-zero, so a states check can't silently pass by checking nothing.

Exit code is 1 when drift is found, so compare works as a CI check.

How it works

Both sides are normalized into one flat StyleSpec — px numbers, RGBA colors, every field optional — and a pure diff compares them with sensible tolerances (±1px, small color distance, zero tolerance on font weight). Fields missing on one side are reported but don't fail the run; only real drift does.

Interaction states reuse all of that unchanged: one state is one spec pair, so diff never had to learn about them.

  • src/spec.ts — the shared format
  • src/diff.ts — the comparison
  • src/states.ts — state vocabulary and Figma variant→state matching
  • src/compare.ts — one comparison per state, and what to say when a state isn't designed
  • src/readers/figma.ts — Figma REST → spec, including component-set variants
  • src/readers/dom.ts — Playwright computed styles → spec, with pseudo-classes forced via CDP
  • src/report.ts, src/report-html.ts — output

What it checks — and what it doesn't

asdesigned compares one design node against one rendered element, at one viewport, across the UI states you ask for. That covers the drift that shows up most: padding, sizing, colors, and inherited-font mistakes like the Arial fallback above — plus hover, focus, active and disabled via --states.

Interaction states come with one requirement worth stating plainly: the design has to define them as variants. A component set with State=Hover resolves; a flat frame, or a file where hover only exists as a prototype interaction, gives asdesigned nothing to compare and the state is skipped. inspect --variants tells you which states a component actually designs before you check them.

Not covered:

  • Reflow. One run renders at one viewport — --viewport WxH, 1280×800 by default. Checking a component across breakpoints means running compare once per breakpoint, each against the frame the designer drew for it. There's no single command that sweeps them.
  • Motion. Transition duration and easing aren't compared, so a state's *end* values are checked but not how it gets there.
  • Anything that isn't a computed style. Layout relative to siblings, content, and behaviour are all out of scope.

And one boundary that isn't a roadmap item: between designed breakpoints there is no design truth. If the file has a 768 frame and a 1280 frame, nothing in it specifies 900px. asdesigned can tell you a component drifted *at* a width someone designed — never *between* two of them. No tool that treats the design as the source of truth can.

Development

npm install

npm test npm run build node dist/cli.js --help

ASDESIGNED_BROWSER=/path/to/chrome uses an existing Chrome/Chromium instead of Playwright's download.

How it relates to other tools

  • Figma's MCP server gives agents the design. Chrome DevTools MCP gives agents the browser. asdesigned is the missing verb between them: *compare*.
  • Visual regression tools (Percy, Chromatic, pixel diffs) compare screenshots of your app to earlier screenshots of your app. asdesigned compares your app to the *design*, and reports properties, not pixels — so the result is a fix, not a heatmap.
  • design-drift explores similar ground with pixel + element diffing and a viewer. asdesigned is deliberately smaller — one verb, agent-first, 23 kB.

License

MIT

PopNxに聞く