designer-skill-mcp について
designer-skill-mcpは、コーディングエージェントにUI設計ガイダンスを提供し、依頼を振り分けて決定的な静的チェックを行うMCPサーバーです。静的な結果のみを報告し、描画後の検証はホストが担います。
主な機能
- 01設計意図を操作と参考資料に振り分け
- 02設計・UXガイダンスの提供
- 0344ルールの決定的な静的スキャン
- 04ルールごとのゲート状態を報告
- 05任意のNiblet参考情報検索
活用シーン
- 01既存の製品情報に沿ったUI改修の計画
- 02インターフェースコードの静的な設計確認
- 03依頼に応じた設計ガイダンスの読み込み
MCP 対応
意図の振り分け、参考資料の読み込み、静的レビューなどの設計プロンプト、リソース、ツールをMCPクライアントに提供します。描画品質を認定するものではなく、描画後の確認はホストが行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
15掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| query | string | はい | 画面のタスクと状態を、その機能を説明する形で記述します。selectedIds を渡す場合も必須です。 |
| platform | enum | いいえ | web | ios |
| selectedIds | array | いいえ | 以前の検索で返された 1~3 個の画面 ID。指定された画面のメタデータを再読み込みします。画面の目視確認は行いません。 |
| clientSkillVersion | string | いいえ | ホストが把握している場合は、インストール済みの Niblet スキルのバージョンを指定します。 |
詳細
セットアップ
エージェントに貼り付けてください(Claude Code、Codex、Cursor など、あらゆる MCP クライアントに対応)。スキルをインストールし、MCP を接続して、ツールを検証します。
Add designer-skill alongside Niblet Designer UI. The designer core is keyless: it routes requests, loads guidance and runs supplemental static checks. Niblet optionally supplies real screens and licensed materials; the host owns implementation and rendered verification.
1. Install or refresh the skill into the user skill directory (not this project):
npx skills add PyModel/designer-skill --skill designer-skill -g -y
2. Add the local MCP using this client's native MCP configuration, in the user-level (not project-level) config:
Name: designer-skill
Transport: stdio
Command: npx
Args: -y @pymodel/designer-skill-mcp@latest
No API key is needed. Do not add one.
3. Verify: list the designer-skill server's tools and confirm get_preflight_brief, dispatch_intent, review_and_gate are present. Do not run a sample check.
When setup is complete, confirm the skill is installed and the three named tools are exposed. On UI work: call get_preflight_brief, use dispatch_intent and load only relevant guidance. If an unresolved visual question warrants retrieval, use the separately configured niblet server's discovered tools. Prefer its image content for inspection; designer-skill's catalogue wrappers return metadata or routing guidance only. Run review_and_gate as supplemental static evidence, then perform the required rendered, functional and accessibility checks in the host. Never treat static success as UI PASS. Preserve audit/plan scope. Continue an active authorized task; otherwise report designer-skill ready, and report Niblet paired only if its tools were actually observed.
Niblet がない場合は、ローカルの製品エビデンスを使って続行してください。カタログの取得は任意です。
または、次から選んでください。
| インストール | |
|---|---|
| 🟣 Claude Code プラグイン(スキル + MCP) | /plugin marketplace add PyModel/designer-skill の後に /plugin install designer-skill@pymodel |
| 🟢 Codex プラグイン | codex plugin marketplace add PyModel/designer-skill の後、/plugins で pymodel から designer-skill をインストール |
| ⚫ Cursor プラグイン | マーケットプレイスからインストールします。mcp.json、スキル、/designer-setup · /designer-status が含まれています |
| 🔵 MCP のみ、任意のクライアント | claude mcp add designer-skill -- npx -y @pymodel/designer-skill-mcp(codex mcp add、pythinker mcp add --transport stdio でも同じ引数) |
| 🟠 スキルのみ | npx skills add PyModel/designer-skill --skill designer-skill を実行するか、skills/designer-skill/ を ~/.claude/skills/ / ~/.codex/skills/ にコピーします |
正式な MCP 設定(mcp.json):
{ "mcpServers": { "designer-skill": { "command": "npx", "args": ["-y", "@pymodel/designer-skill-mcp@latest"] } } }
@latest は npm の最新バージョンを参照します。チームでは @pymodel/[email protected] を固定してください。プラグインのスキル内容は別途更新されます(/plugin update …)。MCP レジストリ名:io.github.PyModel/designer-skill-mcp。Node 22 以降が必要です。
クライアントごとの設定(VS Code、Codex TOML、Kilo、Open Code、Claude Desktop、Pythinker、Pi)
VS Code .vscode/mcp.json(1.99 以降):
{ "servers": { "designer-skill": { "type": "stdio", "command": "npx", "args": ["-y", "@pymodel/designer-skill-mcp"] } } }
Codex CLI ~/.codex/config.toml:
[mcp_servers.designer-skill]
command = "npx"
args = ["-y", "@pymodel/designer-skill-mcp"]
Open Code opencode.json:
{ "mcp": { "designer-skill": { "type": "local", "command": ["npx", "-y", "@pymodel/designer-skill-mcp"] } } }
Claude Desktop、Cursor(.cursor/mcp.json)、Kilo Code(mcp_settings.json)、Pythinker(~/.pythinker/mcp.json):上記の正式な mcpServers JSON を使用します。Pythinker の検証:pythinker mcp test designer-skill(ガイド)。
Pi:同じ JSON を使用するか、次のようにスキルをネイティブ登録します:{ "skills": [{ "path": "/path/to/skills/designer-skill/SKILL.md" }] }
ローカルチェックアウト:npx を "command": "node", "args": ["/abs/path/to/designer-skill-mcp/dist/index.js"] に置き換えます。
flowchart LR
A[Prompt] --> B[get_preflight_brief]
B --> C[dispatch_intent]
C --> D[get_reference]
D --> E[Build / polish UI]
E --> F[review_and_gate]
F -->|FAIL: fix| E
F -->|static checks pass| G[Rendered checks<br/>by the host]
classDef start fill:#f8fafc,stroke:#94a3b8,color:#18181b
classDef route fill:#eff6ff,stroke:#3b82f6,color:#1e3a8a
classDef know fill:#faf5ff,stroke:#7c3aed,color:#4c1d95
classDef work fill:#fff7ed,stroke:#e87a3d,color:#7c2d12
classDef gate fill:#ecfdf5,stroke:#10b981,color:#065f46
classDef host fill:#fff1f2,stroke:#e11d48,color:#881337
class A start
class B,C route
class D know
class E work
class F gate
class G host
| 🔵 ルーティング | 🟣 ナレッジ | 🟢 チェック |
|---|---|---|
dispatch_intent は、「もっと目立たせて」や「何かしっくりこない」といった言葉を、デザインの動詞と最大4件の参考情報に対応付けます。 | デザイナー向けの参考情報24件(タイポグラフィ、色、モーション、アクセシビリティ、粗雑なデザインの回避、再デザイン、最悪ケースのデータ、依存関係の選定など)に加え、ux/* の参考情報26件(フォーム、コラボレーション、キャンバス、AI、i18n など)。 | 44ルールの決定論的な検出器が review_and_gate を支え、必須ルールごとに、実行済み、未対応、未解決、免除のいずれかを報告します。 |
ゲートが行うのは静的チェックのみです。全体のステータスは FAIL または NOT_VERIFIED で、レンダリング後の準備完了を示すステータスになることはありません。ホストから証拠が提供されるまでは、レンダリング、アクセシビリティ、パフォーマンスのチェックは NOT_RUN のままです。
Niblet エコシステム
| 担当 | 役割 |
|---|---|
designer-skill | スコープ設定、ルーティング、デザイン・UX のガイダンス、検証レポート作成を行う単一のエントリーポイント |
| Niblet platform | 実画面カタログ、記録済みのデザイン参考情報、ライセンスが記録された素材 |
| Niblet MCP | 参考画像と素材の取得。ホスト型の get_ui_component は React ソースを提供します |
| エージェントホスト | 承認済みのファイル・依存関係の変更、ブラウザー・ネイティブ操作、レンダリングの検査、証拠 |
ツールはサーバーごとに確認してください。designer-skill にある find_ui_references という同じ名前のツールはテキストのみの REST ラッパーであり、画像を返す Niblet のツールではありません。参考情報の確認と素材の取得には Niblet MCP を優先してください。同じ質問に対して両方のプロバイダーを呼び出したり、インストール状況から接続性を推測したりしないでください。デプロイの違い、範囲、ライセンスについては niblet-catalogue を参照してください。
製品に基づいたデザイン契約を1つ使用してください。Niblet のサーフェスモード(Persuade、Operate、Read、Experience)はユーザーの目的を表し、designer-skill の実行モード(audit、plan、refine、implement、system)は許可された作業を表します。両者は独立しています。Operate サーフェスに対して、読み取り専用の監査を行うことも、承認済みの改善を行うこともできます。既存の製品トークン、コンポーネント、実際のコンテンツは、参考デザインの美しさより優先されます。コンポーネントの取得は、依存関係のインストールやソースの書き込みを許可するものではありません。また、いずれの MCP もレンダリング品質を保証しません。
例: 「機能を損なわずに、この料金ページを再デザインするため designer-skill を使ってください。」 → get_preflight_brief → dispatch_intent → get_reference → 編集 → review_and_gate
これを使って構築: pythinker.com
| ファイル | 使用する場面 | Tier |
|---|---|---|
design-principles | タイポグラフィ、余白、色、レイアウト、階層 | 🔵 core |
differentiation-playbook | 独自性を出す:逆転テスト、レイアウトメニュー、名前付きの参考例 | 🔵 core |
aesthetic-systems | 見た目を選ぶ:パレット、フォント、シャドウを含む5つのシステム | 🔵 core |
motion-and-interaction | タイミング、スプリング、スクロール、モーションの軽減 | 🔵 core |
engineering-and-performance | トークン、アクセシビリティ、レスポンシブ、Core Web Vitals | 🔵 core |
avoid-ai-slop | 禁止リスト、カテゴリーへの反射的な当てはめの確認、完全性の取り決め | 🔵 core |
refactor-and-redesign | 動作を壊さずに監査 → 診断 → 再設計 | 🔵 core |
command-playbook | 意図 → 動詞の振り分け | 🔵 core |
verification-and-recovery | 証拠のルール、ゲートのステータス、失敗のトリアージ | 🔵 core |
interaction-design | フィッツの法則/ヒックの法則/ミラーの法則、フォーム、ナビゲーション、エラー、読み込み | 🔴 extended |
visual-critique | 7つの観点による批評 | 🔴 extended |
design-systems | トークンの設計、コンポーネント仕様、テーマ設定 | 🔴 extended |
project-init | 要件確認のインタビュー、PRODUCT.md、DESIGN.md | 🔴 extended |
craft-flow | スコープに応じた実装と証拠のワークフロー | 🔴 extended |
live-mode | ホストが検出したプレビュー用ツールを使った、許可済みのソースバリエーション | 🔴 extended |
css-techniques | モダン CSS:コンテナクエリ、:has()、clamp()、論理プロパティ | 🔴 extended |
motion-vocabulary | 「弾む感じ」などの印象を、標準的なモーション用語に対応付ける | 🔴 extended |
fluid-input-principles | ウェブ向けに置き換えた、ジェスチャー優先の流体インターフェースの原則 | 🔴 extended |
native-web | プラットフォームに適したモバイルウェブ:タップ、ビューポート、安全領域、ズーム | 🔴 extended |
worst-case-data | デモ用の値ではなく、極端な実データを使って設計・検証する | 🔴 extended |
variant-prototyping | 本当に結論が出ていない判断のための、時間を区切った並列バリエーション | 🔴 extended |
dependency-selection | UI 依存関係を選択または追加する方法。候補リストではありません | 🔴 extended |
niblet-catalogue | Niblet を介した任意の実画面リファレンスと素材。参考情報であり、未設定でも安全です | 🔴 extended |
craft-provenance | 過去の機能の対応付けと帰属。必要な場合にのみ読み込みます | 🔴 extended |
さらに、skills/ux-designer/ で作成され、skills/designer-skill/reference/ux/ にベンダー取り込みされた26個の ux/* リファレンスがあります(node scripts/sync-ux.mjs で生成し、テストで確認)。そのため、designer-skill のみをインストールしても自己完結します。各 SKILL.md は1行の説明を含む短いルーターで、タスクで必要になった場合にのみリファレンスを読み込みます。
| フレーズ | 動詞 | 読み込むもの |
|---|---|---|
| 「もっと目立たせて」 | amplify · color | aesthetic-systems、design-principles |
| 「なんだか違和感がある」 | check · layout | refactor-and-redesign、avoid-ai-slop |
| 「本番環境に対応できる状態にして」 | ship · check | engineering-and-performance |
| 「動きを加えて」 | motion | motion-and-interaction |
| 「AI が作ったように見える」 | review · brand | avoid-ai-slop、aesthetic-systems |
| 「これを再設計して」 | check · refresh | refactor-and-redesign、command-playbook |
ツール
| ツール | 用途 |
|---|---|
get_preflight_brief | スコープと検証契約(最初に呼び出します) |
load_project_context | プロジェクトの PRODUCT.md / DESIGN.md を読み込みます(絶対パスの cwd) |
get_design_system | SKILL.md のルーターとリファレンスマップ |
get_reference | 名前でリファレンスを1つ読み込みます(designer または ux/*) |
anti_slop_checklist | スタイルと内容の正確性に関するレビューの参考ガイダンス |
list_commands | すべてのデザイン動詞とその説明 |
get_command | 1つの動詞に関するヘルプとリファレンス名 |
dispatch_intent | リクエストを動詞と、読み込む最大4つのリファレンスに対応付けます |
commit_design_direction | コンテキストに基づく方向性の記録を検証します |
get_palette_seed | 新規パレット作成が許可された場合の OKLCH ブランドシード |
detect_antipatterns | 決定論的な静的スキャン(44ルール):網羅性、ファイルハッシュ、抜け |
review_and_gate | 必須ルールごとの静的ゲート。レンダリング後の準備状況を主張することはありません |
find_ui_references | 任意のテキストのみの Niblet 実画面検索、または選択した画面のメタデータ(NIBLET_TOKEN) |
get_design_reference | ウェブ画面用の任意の Niblet 構造化リファレンス(NIBLET_TOKEN) |
find_ui_materials | Niblet 素材のルーティングガイダンス。取得は Niblet MCP パッケージまたはホスト型 MCP で実行されます(kind: pack は拒否されます) |
リソース: designer://skill · designer://reference/{+name} · プロンプト: design(task、aesthetic は任意)
開発
cd designer-skill-mcp
npm ci
npm run build # syncs skills/ → assets/ (generated, gitignored), compiles TypeScript
npm run typecheck && npm test # tsc over src + test, then vitest; `npm run smoke` drives the packed tarball
スキルの堅牢性チェック
UX ガイダンスは skills/ux-designer/references/ でのみ編集してください。npm run sync-skill はバンドル前にスタンドアロンのミラーを再生成します。ファイルシステムのみを対象に配布する場合は、リポジトリのルートから node scripts/sync-ux.mjs を実行してください。
レポートの実行形式は、ホスト管理の検証プランを加えた v2 になりました。バンドルされた JSON スキーマを両方検証したうえで、依存関係のない skills/designer-skill/scripts/validate-report.mjs REPORT PLAN AUTHORIZED_ROOT を実行し、証拠ハッシュ、制約、リビジョンとプランの一致、レンダリング後の準備状況の意味を検証してください。このツール自体の PASS はレポートの検証を意味するもので、UI の認定ではありません。従来の v1 レポートはフェイルクローズとなり、実際の証拠から再生成する必要があります。ホスト側の読み取り処理と書き込み処理は合わせて更新してください。
動作を確認するアクションプランのケースと決定論的な評価ツールは、evals/designer-skill/ にあります。合成データによる評価ツールのテストはモデル評価には該当せず、モデルの提案も実際のツール使用に関する準拠やレンダリング品質を証明するものではありません。評価結果とともに、モデル、ホスト、スキルのハッシュ、反復回数を記録してください。
HTTP モード(/mcp での Streamable HTTP):
node dist/index.js --http --port 3017 --root /abs/project # 127.0.0.1
DESIGNER_SKILL_HTTP_TOKEN=… node dist/index.js --http --host 0.0.0.0 --root /abs/project
HTTP のバインドにはすべて、少なくとも1つの --root が必要です。ループバックバインドでは Host ヘッダーが検証され、非ループバックバインドではさらに DESIGNER_SKILL_HTTP_TOKEN(Authorization: Bearer …)が必要です。
リリース: ./scripts/release.sh "notes" はすべてのバージョンを更新して同期し、検証、タグ付け、プッシュを実行します。さらに、publish.yml が npm(プロビナンス付き)、MCP レジストリエントリー、GitHub リリースを公開します。契約の詳細:docs/HARDENING.md。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
