Server data from the Official MCP Registry
AI-Ready design system MCP: melta UI tokens, component contracts, 99 rules, check_html self-verify
AI-Ready design system MCP: melta UI tokens, component contracts, 99 rules, check_html self-verify
melta UI is a well-architected design system MCP server with clear purposes and appropriate permissions. No malicious patterns, hardcoded credentials, or dangerous operations detected. Minor code quality issues around exception handling and input validation are present but do not impact the security posture. Permissions (env_vars, network_http, file operations) align well with the server's role as a design token/contract delivery system for AI agents. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.
5 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-tsubotax-melta-ui": {
"args": [
"-y",
"melta-ds-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
人間にも、AIにも、読めるデザインシステム。
🤖 Built for AI coding agents — Claude Code / Cursor / Codex が
DESIGN.mdと JSON contracts を読んで DS 準拠の UI を生成し、CI で違反を検知する。
デザインシステムは、人間のためだけのものだった。 スタイルガイドを読み、コンポーネントの意図を汲み取り、文脈に合わせて判断する——それはデザイナーとエンジニアの仕事だった。
しかし今、UIを書くのは人間だけではない。
AIがコードを生成し、コンポーネントを選び、レイアウトを組む時代に、 デザインシステムは 「人間が読める」だけでは足りない。
melta UI は、この問いに対する一つの答えである。
人間の可読性を犠牲にせず、AIの可読性を加える。 両立こそが、melta UI の設計思想である。
3 層構造で「AI が迷わない、間違えにくい、間違えても検知される」を実現する。
Layer 1: 憲法(AI が最初に読む入口)
DESIGN.md ← Brand Identity + 7原則 + Quick Reference
CLAUDE.md ← Claude Code 作業手順書
Layer 2: 仕様(Machine-Readable SSOT)
design/contracts/
├── tokens.json ← 99 デザイントークン
├── rules.json ← 99 禁止ルール(ID + severity + detector)
└── components/ ← 33 contract(web 28 + app 先行 5。variant + size + a11y + rules)
Layer 3: 検証(破っても通さない)
scripts/design/ ← validate / drift-check / lint-generated / build-legacy / update-showcase
tests/ ← Playwright + axe-core
.github/workflows/ ← CI で自動実行
| レイヤー | 形式 | 読み手 | 役割 |
|---|---|---|---|
| DESIGN.md | Markdown | AI(全エージェント) | デザイン憲法 + Quick Reference。これだけで基本 UI を生成可能 |
| CLAUDE.md | Markdown | AI (Claude Code) | 作業手順・読み込みガイド・npm scripts |
| contracts/ | JSON | AI + harness | 33 contract(web 28)+ 99 ルール + 99 トークンの厳密仕様 |
| harness | TypeScript | CI | Schema 検証・drift 検出・Playwright + axe |
| components/*.md | Markdown | 人間 | 設計意図・使い方・判断基準を自然言語で記述 |
| docs/index.html | HTML | 人間 | 全コンポーネントのインタラクティブショーケース |
| MCP サーバー | TypeScript | AI エージェント | トークン検索・コンポーネント取得・ルール検証をツールとして公開 |
| モード | 読むファイル | 用途 |
|---|---|---|
| クイック | DESIGN.md のみ | 単体UIの生成 |
| 標準 | + theme.md + contracts / component md | ページ単位の生成 |
| MCP | get_token / get_component / check_rule / get_rules | AI ツール統合 |
| フル | 全ファイル | 新規プロジェクト構築 |
// design/contracts/components/button.contract.json
{
"id": "button",
"variants": {
"contained": {
"tokenRefs": { "bg": "color.primary.500", "radius": "radius.md" },
"tailwind": "inline-flex items-center justify-center gap-2 h-10 px-4 ..."
}
},
"rules": [
{ "id": "SPACE_NO_PY_05_BTN", "severity": "error" },
{ "id": "BTN_ICON_ONLY_ARIA_REQUIRED", "severity": "error" }
]
}
// design/contracts/rules.json
{
"id": "AI_NO_CARD_COLOR_BAR_TOP",
"severity": "error",
"detector": "tailwind-class",
"pattern": "border-t-4",
"alternative": "border border-slate-200 のみでカードを構成"
}
AI エージェントは MCP ツールを通じて、必要な情報だけをオンデマンドで取得する。
Human: 「ユーザー一覧テーブルを作って」
AI (内部):
1. get_component("table") → 仕様・HTMLサンプル取得
2. get_component("pagination") → ページ送り仕様取得
3. → DS準拠の HTML を生成
4. check_html(生成したHTML) → CI と同一ロジックで自己検証
5. 違反があれば修正して再検証 → 提示
「読める」だけでは AI-Ready ではない。違反コードが書かれた瞬間に検知し、修正ループに乗せる 3 層を同梱する。
| 層 | 対象 | 仕組み |
|---|---|---|
| PostToolUse hook | Claude Code | .claude/settings.json に同梱(クローンするだけで有効化候補に)。Write/Edit 直後に lint が走り、error は block フィードバックで Claude が自動修正、warn は additionalContext で助言注入 |
| CI | 全エージェント | .github/workflows/design-check.yml が PR / push の変更ファイルを禁止パターン検査 |
| CLI | Codex / Cursor 等 | npm run design:lint-generated -- <file> 。各エージェントのフック機構に組み込み可能 |
hook は
npm install後に有効(未インストール時はその旨をコンテキストに通知)。Claude Code 以外のエージェントには CI + CLI が代替層。
npm run design:coverage で再生成)「宣言だけ」を排し、99 ルールがどの経路で検証されているかを経路別に出す。
| 経路 | 件数 | 内容 |
|---|---|---|
| 静的自動検証 | 41 / 99 | class マッチ 31(MCP check_rule 同経路)+ html-attr 5 + composition 5(ネスト + a11y DOM) |
| interaction test | 1 | tests/modal.spec.ts が focus trap / Escape / focus 復帰を実機検証 |
| 静的検出 不能 | 3 | impossible-static(active/selected/current の特定が意味依存) |
| manual(AI 参照のみ) | 54 | 文脈判断が要るもの。get_rules で AI に提示 |
「宣言だけで検知ゼロ」だった a11y ルール 7 件を棚卸しし、3 件を DOM 検証で蘇生(icon-only button / ×ボタン / skeleton の aria)、4 件は静的不能/test 担保として
automationStatusで明示。各ルールの状態はrules.jsonのautomationStatusフィールドが SSOT。
AI-Ready の本質は「一度守らせる」ことではなく「破られ続けないこと」。自動化を 3 Level に分類し、何を loop に任せ・何を人間が決めるかを docs/melta-loop-playbook.md で固定する。
| Level | 種別 | 例 | model |
|---|---|---|---|
| Level 1 | 決定論パイプライン | drift 修復 / release readiness | なし |
| Level 2 | model loop | UI 自己修復 / red-team | あり |
| Level 3 | 観測 cron | benchmark | 生成のみ |
統治の核は 2 つ。SSOT write-protect(loop は generated / derived / 提案のみ write 可。contracts・tokens・rules・schema は human gate)と、Human Gate の Hard(パスで機械強制)/ Soft(意味変更は人間判断)2 層化。
現状 W2 drift repair が稼働(npm run design:drift-heal:drift 検出 → derived のみ再生成 → SSOT に触れたら escalate / auto-commit せず diff を出して停止 / 監査ログ .melta-loop/runs.jsonl)。W1 UI 自己修復・W3 benchmark・W4 red-team・W5 release readiness は playbook 定義済みで順次実装。loop playbook 自身も npm run design:drift の監視対象に入っており、陳腐化を検知する。
DESIGN.md + CLAUDE.md を自動で読み込む「ユーザー一覧のテーブルを作って」
→ table contract + badge contract を参照し、DS準拠のHTMLを生成
# contracts のみ(tokens / rules / component contracts の JSON)
npm install melta-contracts
# MCP サーバー(ビルド不要、npx 一発)
claude mcp add melta-ui -- npx -y melta-ds-mcp
import tokens from "melta-contracts/tokens" with { type: "json" };
import rules from "melta-contracts/rules" with { type: "json" };
.mcp.json 同梱のため、リポジトリ内では npm install だけで Claude Code に自動接続される。手動登録する場合:
npm install
claude mcp add melta-ui -- npx tsx src/index.ts
| ツール | 説明 | 入力例 |
|---|---|---|
get_token | トークン検索 | { "path": "color.primary.600" } |
get_component | コンポーネント仕様取得 | { "id": "button" } |
check_rule | クラス文字列の禁止パターンチェック(31パターン自動検出。文脈依存は conditional 付き) | { "classes": "text-black shadow-2xl" } |
check_html | 生成 HTML/JSX 全体を CI / hook と同一ロジックで lint。生成→自己検証→修正のループ用 | { "source": "<div class=...>" } |
get_rules | 99 ルール参照(manual 含む全件、filter 対応) | { "category": "accessibility" } |
search | 全文検索(最大 20 件 + truncated 通知) | { "query": "card" } |
| Resource | 内容 |
|---|---|
melta://tokens | トークン全体 |
melta://components | 28 コンポーネント仕様 |
melta://components/{id} | 個別コンポーネント |
melta://rules | 99 禁止ルール全件(manual含む) |
melta://rules/auto-detectable | 自動検出可能サブセット(check_rule 用) |
.cursor/rules/ に 3 つのルールファイルを同梱:
melta-ui.mdc — DS 全体ルールcolor-system.mdc — カラートークン一覧components.mdc — 28 コンポーネントの Tailwind クラス一覧foundations/theme.md の CSS 変数をプロジェクトに追加DESIGN.md の Quick Reference を参照してクラスを適用npm run design:check # Schema + ルール + tokenRef 検証
npm run design:coverage # 検証カバレッジ(経路別マトリクス)
npm run design:drift # ドキュメント ↔ contracts の drift 検出
npm run design:build # contract → metadata/components.json 生成 + tsc
npm run design:update-showcase # showcase の数値を contracts から自動更新
npm test # Playwright + axe-core
npm run benchmark # 1.0 vs 2.0 A/B ベンチマーク(multi-provider, 要 API キー)
npm run build # TypeScript → dist/(MCP サーバー)
npm run validate # tokens.json vs CSS の整合性
bg-primary-500 を使う。bg-blue-* は使わないshadow-sm 〜 shadow-md。shadow-lg 以上はオーバーレイ限定詳細は
foundations/design_philosophy.mdを参照。
28 コンポーネント + 10 ファウンデーション + 5 パターン。
| カテゴリ | コンポーネント |
|---|---|
| 入力 | Button, TextField, Select, Checkbox, Radio, Toggle, Date Picker |
| ナビゲーション | Sidebar, Tabs, Breadcrumb, Pagination, Stepper, Accordion |
| データ表示 | Card, Table, List, Badge, Tag, Avatar, Progress, Divider |
| フィードバック | Modal, Toast, Alert, Tooltip, Skeleton, Copy Button, Dropdown |
melta-ui/
├── DESIGN.md # AI 向けデザイン憲法 + Quick Reference
├── CLAUDE.md # Claude Code 作業手順書
├── design/
│ ├── authority.md # SSOT 宣言
│ ├── contracts/
│ │ ├── tokens.json # 99 デザイントークン
│ │ ├── rules.json # 99 禁止ルール registry
│ │ └── components/ # 33 contract(web 28 + app 先行 5)
│ ├── schemas/ # JSON Schema(rule + component-contract)
│ └── benchmarks/ # Agent benchmark(prompt + rubric)
├── foundations/ # 設計基盤(13 ファイル)
├── components/ # コンポーネント仕様(28 ファイル)
├── patterns/ # パターン(5 ファイル)
├── metadata/components.json # MCP 用集約データ(contracts から生成)
├── src/ # MCP サーバー(TypeScript)
├── scripts/design/ # validate / drift-check / build-legacy / update-showcase
├── tests/ # Playwright + axe-core
├── docs/ # ショーケース + OG 画像
├── examples/ # 16 サンプルページ
├── assets/icons/ # Charcoal 207 + Lucide 15
├── .github/workflows/ # CI(design:check + drift + test)
├── .mcp.json # Claude Code MCP 登録
└── .cursor/rules/ # Cursor 用ルール
design/benchmarks/ は 3 条件で同一 prompt から UI を生成し、共通 lint core(check_html と同じ採点)で DS 準拠スコアを測るハーネス。「context engine を足すと精度が上がる」式の限界寄与(lift)を自前の一次データとして出す。
| 条件 | 与えるもの | tools |
|---|---|---|
cold | DS コンテキスト無し(素の LLM のベースライン) | なし |
designmd | DESIGN.md のみ(静的コンテキスト) | なし |
full | DESIGN.md + contracts 要約 + MCP(生成後 check_html で自己検証) | あり |
各セル(prompt × 条件)を N トライアル実行し、mean±range と条件間 lift を report.md に出力。design/benchmarks/history.json に時系列で追記する。
# 全 prompt × 4 条件 × 3 trials(ANTHROPIC_API_KEY が必要)
npm run benchmark
# トライアル数・prompt・条件を絞る
npm run benchmark -- --trials 5
npm run benchmark -- --prompt 1 --conditions cold,full
# メーター API を使わない採点経路: 生成済み HTML を採点(サブエージェント等で先に
# <dir>/<promptId>-<conditionId>-t<k>.html を用意 → 共通 lint core で採点 + history 追記)
npm run benchmark -- --score-dir design/benchmarks/results/<dir> --trials 3
# API 不要のパイプライン検証(mock provider。history には追記しない)
npm run benchmark -- --provider mock
provider-pluggable: ModelProvider インターフェースで anthropic(実装済み・MCP 6 tool を Claude API の tool use として渡す)/ mock(オフライン検証)/ openai(placeholder、未実装)を切替。full 条件では AI が何回どの tool を呼び、どの resource を参照したかを記録する — これが「AI-Ready DS が本当に効いているか」の研究目的の核。
red-team prompt は5本(neon / heavy shadow / color bar / placeholder-only form / icon-only buttons)。standard と red-team はスコアの意味が違う(前者=準拠生成、後者=悪い指示への抵抗)ため report で分離集計する。CI は live API を叩かず、tests/benchmark-pipeline.spec.ts が stats・採点の gaming 耐性・集約ロジックの回帰を守る。
測定しているもの / 限界(発信時の前提):
full 条件は生成後の check_html 自己検証(多ターン)を含むため、contracts→full の lift は「contracts 単体」ではなく「MCP workflow(自己修正込み)」の寄与。各層を分離するため designmd / contracts を別条件にしている。詳細仕様:
docs/ai-ready-quality-gate-plan.mdの P4 セクション。
melta の DESIGN.md(2026-04-10 導入)と Google Labs の design.md spec(2026-04-21 OSS 公開)は、独立に同名・同思想へ収斂した。melta の DESIGN.md は Google spec 互換の YAML front matter(tokens.json から自動生成)を含み、npx @google/design.md lint DESIGN.md が errors: 0 で通る。
守備範囲の違い: Google spec は「DESIGN.md ファイル自体の検証」まで、melta は「生成されたコードの検証・CI・hook」まで。詳細な対応表は design/compat/google-designmd.md。
MIT License — LICENSE
同梱アイコンのライセンスは THIRD_PARTY_LICENSES.md を参照。
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.