claude.design-mcp
claude.design-mcp
エディタやエージェントから本物の Claude Design Web アプリを操作する MCP です。一度ログインすれば、claude.ai/design があなた自身のアカウント上で生成するデザインを作成・反復・取得できます(ローカルの模倣ではありません)。
仕組み
あなた自身のログイン済み Chrome(専用プロファイル)を CDP 経由で
playwright-coreを使って操作し、実際のclaude.ai/designの "Omelette" API とあなたとして、ブラウザセッションを通じて通信します。生成は Web サイトと同じ方法でトリガーされます。プロンプトがデザインコンポーザーに入力されて送信され、ツールはターンが終了するのを待って(
ReleaseTurnネットワークシグナル + ファイルツリーの安定性)、Claude Design が書き込んだファイルを報告します。ファイルは要求に応じてローカルに取得されます。プロジェクトのメタデータ、ファイル、削除、直接ファイル編集は、文書化された JSON RPC(
CreateProject/ListFiles/GetFile/EditFile/DeleteProject)を使用し、ページ内で実行されるため、セッションと Cloudflare のクリアランスを共有します。claude -pの模倣ではありません。 すべてのデザインは claude.ai/design 自体によって生成されます。
Related MCP server: Browser Agent MCP
公式 Design MCP とプロトコルに関する見解(2026-08-12)
このプロジェクトは独立した CDP ブラウザ自動化 MCP です。公式の api.anthropic.com/v1/design/mcp エンドポイントは呼び出しません。仕組み で説明したように、playwright-core と CDP を使用して、実際の claude.ai/design Web アプリにログイン済みの実際の Chrome セッションを操作します。
claude.ai/design UI の Create prompt for Claude Code エクスポートメッセージは、https://claude.ai/design/p/<projectId> 形式のプロジェクト URL を引き渡します。このサーバーでは、対応するフローはその URL から <projectId> を抽出して design_pull を呼び出すことです。生成されたファイルを受け取るために公式の Design MCP は必要ありません。
2026-07-28 頃に議論された MCP プロトコル改訂(一部の MCP エコシステムで採用されたステートレスなワイヤープロトコル変更を含む)は、現在の OpenCode stdio クライアント統合やツール契約には実質的な影響を与えません。このサーバーは、固定の protocolVersion: "2024-11-05" ハンドシェイクで初期化に応答します。
次のいずれかの条件が発生した場合は、この見解を再評価してください。
OpenCode MCP クライアントが、このサーバーが返す古いハンドシェイクバージョンのサポートを廃止した場合。
プロジェクトが CDP ブラウザ自動化アプローチを公式の
api.anthropic.com/v1/design/mcpエンドポイントに置き換えることを決定した場合。claude.ai が認証またはセッションモデルを変更し、CDP 駆動のログインフローに影響を与える場合。
ツール
ツール | 機能 |
| 一度だけ: claude.ai/design にログインするために Chrome を開く(セッションは永続化) |
| あなたの claude.ai/design プロジェクトを一覧表示 |
| プロジェクトを作成し、プロンプトからデザインを生成 — |
| 1 つのプロンプトの複数のデザインバリアントを並行して生成 — |
| デザインを変更するためのフォローアッププロンプトを送信 — |
| プロジェクトのファイルをローカルにダウンロード — |
| プロジェクトの自己完結型 HTML を全ページ PNG にレンダリングしてレビュー — |
| プロジェクトから 1 つのファイルを読み取る — |
| プロジェクトのチャット/ターン状態を報告 — |
| 非同期生成をポーリングして回復 — |
| 直接ファイル編集を適用 — |
| プロジェクトを削除 — |
| 具体化されたデザインシステムパッケージフォルダを デザインシステム として claude.ai にアップロード。Claude Code |
| アカウント上のデザインシステム(名前 + ID)を、プロジェクトリストのすべてのページにわたって一覧表示 |
すべてのツールは、オプションの caller オブジェクト — { directory, sessionID, agent, project? } — も受け入れます。これは MCP クライアントが誰が呼び出しているかを示すために注入する場合があります。これは生成引数ではありません。ディスパッチャはハンドラが実行される前にそれを取り除き、呼び出し履歴にのみ記録します。
呼び出し履歴
tools/call のディスパッチごとに、~/.local/share/opencode-dashboard/claude-design-history/events.ndjsonl(ディレクトリ 0700、ファイル 0600; フォルダは CLAUDE_DESIGN_HISTORY_DIR で上書き可能)に JSON 行が 1 行追加されるため、プロンプト履歴は MCP の再起動をまたいで保持されます。行には v、eventId、seq、ts、tool、durationMs、ok、error、projectId、projects、projectName、prompt(逐語的、決して切り詰められない)、model、designSystem、withoutDesignSystem、withoutDesignSystemReason、wait、attemptId、caller、pullKind、revision、およびホワイトリストに登録された result サマリー(カウントと ID のみ — 決してファイル内容、base64、環境値は含まれません)が含まれます。記録はベストエフォートの可観測性です。書き込みに失敗しても stderr に警告が出るだけで、正常なツール呼び出しがエラーになることはありません。CLI パスは記録されません。
リビジョンスナップショット
成功した通常の design_pull(pullKind: "default" — dir なし、zip なし)は、取得したマニフェストを取得ツリーの外の <CLAUDE_DESIGN_DIR>/.revisions/<projectId>/<revisionId>/ にスナップショットするため、デザインの編集履歴を後で差分比較できます。revisionId は UTC で <YYYYMMDDTHHmmssSSS>-<uuid8> なので、名前の順序は時間順です。各フォルダには、ファイルごとの SHA-256 リスト、合計 hash、およびプルが部分的なファイルエラーを報告した場合の incomplete: true を含む .meta.json が含まれます。スナップショットは .staging-<revisionId>/ にステージングされ、アトミックに名前が変更されるため、リスナーは完了したリビジョンだけを認識します(. で始まる名前はスキップ)。コンテンツハッシュと完全性の両方が前のリビジョンと一致するプルはスキップされ、revision: null を報告します。これは「変更なし — 前のリビジョンがまだ最新です」を意味します。スナップショットの失敗も同様に致命的ではありません。revision: null と stderr 警告が発生し、ツールの結果は変更されません。
セットアップ
npm install # installs playwright-core (NO browser download — uses your Chrome)
node src/server.mjs login # opens Chrome once; log into claude.ai (session is then reused, invisibly)ローカル MCP として登録(opencode の例):
{ "mcp": { "claude-design": { "type": "local", "command": ["node", "/abs/path/claude.design-mcp/src/server.mjs"], "enabled": true } } }CLI
node src/server.mjs login
node src/server.mjs list
node src/server.mjs list-systems
node src/server.mjs create "simple pricing card" pricing --design-system "Frontend Design System"
node src/server.mjs create "minimal landing page for a coffee shop" coffee --model opus --without-design-system
node src/server.mjs iterate <projectId> "add a dark mode toggle to the header" --model sonnet
node src/server.mjs check <projectId>
node src/server.mjs pull <projectId|name>
node src/server.mjs preview <projectId|name> [outDir] [width]
node src/server.mjs delete <projectId>
node src/server.mjs sync <packageDir> [--timeout-ms 900000]一度限りの login の後、list/create/iterate/pull は表示ウィンドウなし(オフスクリーン Chrome)で実行され、永続化されたセッションを再利用します。
生成オプション
design_create、design_iterate、design_variantsはオプションのmodelを受け付けます。 ファミリー名(opus、sonnet、haiku、fable)を使うと、claude.ai/design のライブメニューからそのファミリーの最新バージョンが選択されます。opus-4.8、opus-5、opus 5.0、claude-opus-4-8、anthropic/claude-opus-5のような形式でバージョンを固定できます。新しいファミリーバージョンは、サイトメニューに表示されると自動的に利用可能になります。要求したバージョンが利用できない場合、エラーにはライブメニューの選択肢が一覧表示されます。CLI のcreateとiterateでは、同じ値を--modelに渡します。design_create、design_iterate、design_variantsはdesignSystem(CLI では--design-system)を受け付けます。これはdesign_system_listが報告するアカウントのデザインシステムのいずれかの名前です。大文字小文字を区別せずに照合され、曖昧でない部分名でも機能し、不明な名前の場合はコンポーザーが提供するリストとともにエラーになります。選択したシステムは組織のデフォルトに追加されるのではなく置き換えられ、結果には解決された名前がエコーされます。claude.ai はプロジェクトがまだデザインを生成していない間だけピッカーを提供するため、designSystemはdesign_createに指定するのが正しく、design_iterateではそのようなプロジェクトに対してのみ機能し、それ以外の場合は黙って無視するのではなくエラーになります。design_variantsはすべてのバリアントを同じシステムに基づかせます。design_createとdesign_variantsではグラウンディングが必須です。 各呼び出しは、空でないdesignSystemまたはwithoutDesignSystem: true(ブール値のtrueであり、"true"や1ではない)のうち、正確に1つだけを保持しなければなりません。両方指定も、どちらも指定しないのも禁止です。違反は、利用可能な名前を調べる方法としてlist_claude_synced_systems/design_system_listを挙げる1つの固定メッセージで拒否され、その拒否はブラウザセッション、操作ページ、プロジェクトが存在する前に発生するため、拒否された呼び出しはアカウントに影響を与えません。design_variantsではチェックがファンアウトの前で実行されるため、拒否された呼び出しはバリアントごとのエラーを返す代わりに、プロジェクトをゼロ件作成します。オプトアウトには自由記述のwithoutDesignSystemReasonを含めることができ、これはwithoutDesignSystem: trueと一緒の場合にのみ有効です。両方とも結果にエコーされ、呼び出し履歴に記録されます。CLI での同等の指定はcreate --without-design-systemです。iterateはそのフラグを不明なものとして拒否します。design_iterateは意図的にゲートされていません。すでにデザインを保持しているプロジェクトではピッカーが提供されなくなるため、そこで選択するものは何もありません。design_variantsは作成するすべてのプロジェクトにfresh: trueを強制します。各バリアントは<base>-v<N>という名前になり、freshがないと再実行時に以前のファンアウトから同じ名前のプロジェクトを再利用することになります。そのプロジェクトはすでにデザインを保持しており、デザインシステムを後からアタッチできません。design_createとdesign_iterateはwait(デフォルトtrue)を受け付けます。wait: falseを設定すると、検証済みのChatPOST と、{ submitted: true, pending: true }を伴う制限付き質問フォーム監視の後に戻ります。CLI での同等の指定は--no-waitです。Chatリクエストを生成しないクリックや Enter キー押下は、成功を報告する代わりに失敗します。明示的な
nameを指定したdesign_createは検索または作成です。その正確な名前を持つ既存のプロジェクトがあれば再利用され(衝突時は最新が優先)、結果にはreused: trueが含まれるため、繰り返し呼び出すと重複が積み重なる代わりに1つのプロジェクトを反復処理します。fresh: trueを渡すと新しいプロジェクトを強制します。nameがない場合(プロンプトから派生した名前)、これまでどおり毎回新しいプロジェクトが作成されます。送信済みの作業は
design_check({ projectId })またはnode src/server.mjs check <projectId>でポーリングします。そのstatusはgenerating、awaiting_input、done、no_output、interrupted、stalled、resume_exhaustedのいずれかです。各チェックは、ターンがアクティブな間は保持しているオーナーページを再利用し(再読み込みなし)、可能な場合は質問フォームに回答し、中断バナーのResumeボタンを自動的にクリックします。interruptedはバナーが存在したが再開できなかったことを意味し、stalledはファイルツリーが安定していて生成ファイルがなく、最後のメッセージが依然としてユーザーのプロンプトであることを意味します。resume_exhaustedは Resume の試行が3回連続で失敗した後の終端状態で、resumeAttempts、maxResumeAttempts、problem: "resume_attempts_exhausted"を含みます。_ds/**のデザインシステム素材は生成された出力としてカウントされません。
非同期ワークフロー
# 1. Submit without waiting
node src/server.mjs create "카드 UI" my-card --no-wait --model opus
# → { projectId: "...", submitted: true, pending: true }
# 2. Continue with other work...
# 3. Poll for completion (every 2-5 minutes is recommended)
node src/server.mjs check <projectId>
# → { status: "done", files: [...] }
# 4. Pull and preview the finished design
node src/server.mjs pull <projectId>
node src/server.mjs preview <projectId>要件
Node.js 22+(組み込みの
fetch/WebSocketを使用。playwright-coreが唯一の npm 依存関係)Google Chrome(ツールは専用の Chrome プロファイルを操作します)
Design アクセス権を持つ claude.ai アカウント(
design_loginで一度ログインします)
環境変数
CLAUDE_DESIGN_PROFILE— 専用 Chrome プロファイルディレクトリ(デフォルト~/.cache/claude-design-mcp/chrome-profile)CLAUDE_DESIGN_CHROME— Google Chrome へのパス(デフォルト: macOS の Google Chrome)CLAUDE_DESIGN_CDP_PORT— リモートデバッグポート(デフォルト9377)CLAUDE_DESIGN_DIR—design_pull/design_previewが書き込む場所。それぞれ独自の<project>/フォルダに書き込まれます(デフォルト: 作業フォルダ)。明示的なdir引数はそのまま使用されますCLAUDE_DESIGN_HISTORY_DIR—tools/call履歴が追記される場所(デフォルト~/.local/share/opencode-dashboard/claude-design-history、ファイルevents.ndjsonl)CLAUDE_DESIGN_HEADLESS—1を設定すると、オフスクリーンではなくヘッドレス Chrome を操作しますCLAUDE_DESIGN_TURN_TIMEOUT_MS— 生成ターンごとのハード上限(デフォルト: create 約360秒、iterate 約240秒)CLAUDE_DESIGN_QUIET_MS— 生成が完了と判定されるまでにターンのネットワークが沈黙していなければならない時間(デフォルト20000)CLAUDE_DESIGN_PAGE_LEASE_MS— 完了モニターがハングした場合の非同期オーナーページの独立したハード上限(デフォルト2700000、45分)CLAUDE_DESIGN_CLAUDE_BIN—design_system_syncが使用する Claude Code バイナリ(デフォルトclaude)CLAUDE_DESIGN_SYNC_TIMEOUT_MS— 1回の/design-sync実行のハード上限(デフォルト900000、15分)
デザインシステム同期
design_system_sync(CLI: sync <dir>)は、パッケージフォルダを作業ディレクトリとして
claude -p "/design-sync <pre-approval>" --dangerously-skip-permissions --output-format stream-json --verbose
を実行し、同期がアップロードした内容を報告します。トークンのみの同期が成功した後、ログイン済みの Chrome/CDP セッションを使用して、アップロードされた styles.css インポートシムを ds-bundle/_ds_bundle.css から生成されたカスタムプロパティ CSS に置き換えます。
フォルダはすでにパッケージである必要があります(
package.json+styles.cssなどの CSS エントリ、さらにtokens/*.json、guidelines/*.md、README.md)。コンポーネントはオプションです。トークンのみのパッケージも受け付けられます。package.jsonがない場合、ツールはスパウンする前に拒否します。終了ステータスは成功のシグナルではありません。 拒否された同期でも
subtype: "success"で終了コード0で終了するため、結果がok: trueになるのは、応答に実際のプロジェクトリンクが含まれている場合のみです。それ以外の場合は、診断用の完全な出力とともに{ ok: false, error, raw }が返されます。初回実行ではプロジェクトが作成され、
.design-sync/config.jsonが書き込まれます。これにより、以降の実行は同じプロジェクトに固定されます(変更のない再実行は重複ではなく no-op になります)。パイプラインがフォルダを再生成する場合は、置き換える前に.design-sync/をスナップショットし、後で復元してください。このツールはパッケージ自体を書き込むことはありません。プロンプトには事前承認(
src/sync.mjsのSYNC_ARGS)が含まれており、初回実行ではこれが重要な役割を果たします。 フォルダにピンがない場合、/design-syncは2つのAskUserQuestion確認を求めます。時間/コストを受け入れてから、create_projectの前に新しいプロジェクトの名前を確認します。claude -pにはAskUserQuestionツールがないため、ターンは質問を残したまま終了し、何もアップロードされません(終了コード0、subtype: "success"、プロジェクトリンクなし)。スキル自身の逃げ道(「リクエストがすでに時間/コストを認識している場合は…再確認せずに続行する」)が事前承認によって呼び出され、新しいプロジェクトの作成を明示的に指定します。ピンされた再同期はどちらのゲートにも該当しないため、これは初回同期でのみ発生します。Claude Code はスラッシュコマンドの後のテキストをフェンス付きの## Hintブロックとしてスキル本文に追加するため、トリプルバッククォートを含まない単一の位置文字列である必要があります。初回同期には約10分かかります。変更のない再実行は約2分です。CLI は同期失敗時に終了コード
1で終了します。結果には
flattened: true|falseが追加されます。同期後のブラウザ/書き込み失敗はflattenErrorとして報告されますが、完了したアップロードはok: trueのままです。
design_system_list(CLI: list-systems)は同じ機能の読み取り側です。claude.ai には独立したデザインシステムエンドポイントはありません。デザインシステムは、PROJECT_TYPE_DESIGN_SYSTEM というタグが付いた通常のプロジェクトリスト RPC によって返され、一度に20件ずつページングされるため、ツールはすべてのページをたどり、[{ name, id, publishedAt?, viewedAt? }] を返します(publishedAt はシステムが公開された後にのみ表示されます)。これを使用して、design_system_sync が実際にアカウントに何を配置したかを確認できます。API が変更された場合、scripts/probe-design-systems.mjs がそのライブの形状を再キャプチャします。
生成はいつ「完了」になるのか?
claude.ai/design は生成をターンとして駆動します。プロンプトは Chat RPC を通じてストリーミングされ、RenewTurn キープアライブ(約10秒ごと)によって維持され、ReleaseTurn によって終了します。design_create / design_iterate は、ファイルが安定し、かつターンネットワークが CLAUDE_DESIGN_QUIET_MS の間沈黙した後に戻ります。これはキープアライブ間隔よりも十分に長いため、生成が書き込み途中で中断されることは決してありません(常に完全で一貫性のあるデザインが得られ、半分レンダリングされたものは得られません)。
生成が静穏/安定性チェックの完了前にハードデッドラインに達した場合、結果には timedOut: true が含まれます。通常の完了ではこのフィールドは完全に省略されます。その存在は、返されたファイルが完全に静かなターンではなく、タイムアウト時点での最良のスナップショットであることを示すシグナルとして扱ってください。
claude.ai は最初のデザインが安定してから約30秒後に自動リファインパスを実行することが多いため、ツールが最初の完全なバージョンを返した後もサーバー上でデザインは改善され続けます。最も洗練された出力を得るには、design_pull / design_preview は常に最新の状態を取得します。または CLAUDE_DESIGN_QUIET_MS(例: 60000)を上げて、create が後続のリファインパスを待つようにします(待ち時間は長くなります)。
Available Tools
10 toolsdesign_createC
Create a Claude Design project and submit the initial prompt through the composer.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| prompt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It mentions creating a project and submitting a prompt but does not clarify side effects, permissions, rate limits, whether the operation is synchronous, or what the response contains. This is inadequate for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks necessary detail. It front-loads the purpose but fails to provide adequate information for the agent to use the tool correctly. Ideally, it should include more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, error conditions, or the nature of the 'composer' reference. An agent would likely need to infer or guess many details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description only implicitly covers the 'prompt' parameter. The 'name' parameter is not explained at all. The description adds no meaningful semantics beyond the parameter names in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create a Claude Design project' and distinguishes from siblings like design_edit, design_delete. It specifies submitting the initial prompt, making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like design_edit or design_iterate. There is no mention of prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_deleteC
Delete one Claude Design project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The word 'Delete' implies a destructive action, but the description does not disclose any behavioral traits such as irreversibility, permissions needed, side effects, or confirmation steps. With no annotations provided, the description fails to add transparency beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, making it concise. However, it is under-specified given the lack of details in other dimensions; brevity here comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with one parameter and no output schema or annotations, the description is incomplete. It does not explain the effect on the project, any prerequisites, or what happens after deletion. Critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'projectId' parameter beyond its name and type. There is no indication of what values are valid or how to obtain the ID. The description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and resource 'Claude Design project', which is specific and distinguishes from sibling tools that perform other actions like create, edit, get, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. Among 9 siblings, there is no context on prerequisites, when deletion is appropriate, or when other tools like design_edit or design_status might be relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_editC
Apply direct string edits to one Claude Design project file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| edits | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that edits are applied, but fails to mention whether edits are atomic, what happens on failure, permissions required, or any side effects (e.g., overwriting existing content). The description is insufficient for understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no superfluous information. It is front-loaded with the core action. However, it is overly terse at the expense of necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and parameter descriptions, the description is inadequate for a mutation tool. It does not provide enough context to use the tool correctly, especially regarding the format of edits and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 3 parameters (path, edits, projectId) with 0% description coverage. The description does not explain what each parameter represents or the expected format (e.g., what constitutes a valid 'edits' array). The phrase 'direct string edits' gives a vague hint but is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('apply direct string edits') and the target resource ('one Claude Design project file'). It distinguishes from sibling tools by specifying a direct edit operation, which contrasts with create, delete, get, list, and other operations. However, the term 'string edits' is somewhat ambiguous and could be more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like design_create (for creating files) or design_get (for reading). There are no criteria for when edits are appropriate or any mention of prerequisites or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_getC
Read one file from a Claude Design project.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the basic operation. It does not mention error behavior, access requirements, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it is too concise for a tool with no other documentation, sacrificing necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the large sibling set, no output schema, and lack of parameter documentation, the description is insufficient. It leaves ambiguity about file types, project structure, and return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not add any parameter-level detail. While 'path' and 'projectId' are somewhat self-explanatory, the description fails to provide format, constraints, or relationship context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (read), the resource (one file), and the context (from a Claude Design project). It effectively distinguishes the tool from siblings like design_list or design_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any context on prerequisites or when not to use it. The description is purely functional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_iterateC
Submit a follow-up prompt to an existing Claude Design project.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It only says 'submit a follow-up prompt' but does not mention whether the tool modifies project state, requires authentication, or what the response contains (e.g., model reply).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but severely under-specified. It lacks critical details about parameters, preconditions, and effects, making it too minimal to be effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 2 required parameters, no output schema, and no annotations, the description should provide comprehensive context. It fails to explain expected input format, project lifecycle, or outcome of the submission, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning to parameters. Neither 'projectId' nor 'prompt' are explained beyond their types, leaving the agent without guidance on valid values or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'submit' and the resource 'follow-up prompt to an existing Claude Design project'. It distinguishes from sibling tools like design_create (create new) and design_edit (modify project settings) by emphasizing the iterative 'follow-up' nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as design_edit or design_create. It does not clarify prerequisites like the need for an existing project or that the project must have an active conversation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_listA
List Claude Design projects from the logged-in web account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions 'logged-in web account' implying authentication, but no details on read-only nature, pagination, or output format. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, clear and front-loaded. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema and no annotations, description is minimal. Lacks details on what 'projects' includes (e.g., names, IDs) and no mention of read-only nature. Acceptable but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist and schema coverage is 100%, so baseline is 3. Description adds no parameter info, but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'List Claude Design projects from the logged-in web account.' Clear verb 'list' and resource 'Claude Design projects', distinguishing from siblings like design_get (single project) and design_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like design_get or search. Does not mention when to avoid or prerequisites, though simple tool makes it obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_loginA
Open Chrome for claude.ai/design login and report the active account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it opens a browser (Chrome) and reports an account, which is a significant behavioral trait not captured in any structured fields. However, it omits details like whether this requires a desktop environment, side effects on existing sessions, or what happens if Chrome is not installed. With no annotations, the description partially fills the transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the primary action ('Open Chrome...') and completes with the secondary action ('report...'). Every word is necessary and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description communicates the core function but lacks details on the format of the reported account (e.g., string, JSON), potential user interaction required, or failure modes. It is minimally complete but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is trivially covered (100%). The description does not need to add parameter details. Per guidelines, 0 parameters baseline is 4, and the description meets that without superfluous information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens Chrome for a specific login page (claude.ai/design) and reports the active account. It uses strong verbs 'Open' and 'report', and the resource is explicitly a login operation, which distinctly separates it from sibling tools focused on design CRUD.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like design_get or design_list. There is no mention of prerequisites, ordering (e.g., must be called before design operations), or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_previewC
Render a project's self-contained HTML to a full-page PNG screenshot for visual review.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | ||
| name | No | ||
| path | No | ||
| width | No | ||
| height | No | ||
| projectId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It indicates a read-only operation but does not mention that it is non-destructive, any authentication requirements, or whether it modifies state. The term 'self-contained HTML' is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no verbosity. However, it could be slightly more structured with additional context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 6 optional parameters, no output schema, and no behavioral details, the description is severely incomplete. It does not explain how parameters like width, height, or projectId affect the output, nor what a 'full-page PNG screenshot' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 6 parameters with 0% coverage (no descriptions). The description does not mention any parameters or their purpose, failing to add value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: rendering HTML to a PNG screenshot for visual review. It uses a specific verb ('Render') and resource ('project's self-contained HTML'), distinguishing it from sibling tools that perform CRUD operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as design_get or design_list. There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_pullC
Pull one Claude Design project by projectId or exact name into a local directory.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | ||
| zip | No | ||
| name | No | ||
| projectId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the action but not behavioral traits such as whether the operation is destructive, if it overwrites local files, authentication requirements, or error handling. Without this, an agent cannot predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, clearly stating the core functionality. It could be slightly more structured, but it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (none required), no output schema, and no annotations, the description is insufficient. It should include details on default behavior, output format, error conditions, and parameter interactions to enable proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains projectId and name as identifiers, but does not describe the 'dir' parameter (output directory) or 'zip' parameter (whether to create a zip file). This leaves agent uncertain about required or optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Pull') and the resource ('Claude Design project'), and specifies two methods for identifying the project (projectId or exact name). However, it does not differentiate from sibling tools like design_get, which might also retrieve project data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., design_get, design_list). The description does not mention prerequisites, context, or cases where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_statusC
Summarize project data, chat count, and last message role.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. Only states 'summarize' without disclosing read-only nature, authentication needs, or output format. Does not indicate whether the tool has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is highly concise with no extraneous words. However, it may be overly brief; a bit more structure could improve clarity without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of summarizing project data, chat counts, and last message roles, and the lack of output schema or additional annotations, the description leaves significant gaps in understanding what is returned and how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single parameter projectId. The description mentions 'project data' but does not explain what projectId represents or how it should be used. Fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Summarize' and identifies distinct resource aspects: 'project data, chat count, and last message role'. It clearly distinguishes from sibling tools like design_get (which likely returns full design details) or design_list (which lists multiple designs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as design_get or design_list. Lacks context for appropriate usage scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a unique action (create, delete, edit, get, iterate, list, login, preview, pull, status) targeting distinct operations on projects or files, with no overlap in purpose.
All tools follow a uniform 'design_<verb>' pattern, using snake_case throughout, making naming predictable and easy to understand.
10 tools is well-scoped for a design-related server, covering essential operations from login to CRUD to preview and status without being excessive or insufficient.
The tool set covers core workflows (login, list, create, read, update, delete, preview, pull), but lacks explicit support for file deletion or project metadata updates, which are minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read, edit, publish, and preview your pepita websites from Claude.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Run UX research from Claude — create card sort studies, list studies, pull headline stats.
Build, clone & publish websites by chatting with Claude. Live in seconds, custom domains + SSL.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables automation of browser tasks using Playwright by interacting via Claude Desktop for executing user-defined prompts and operations.1212MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol (MCP) integration that provides Claude Desktop with autonomous browser automation capabilities. This agent enables Claude to interact with web content, manipulate DOM elements, execute JavaScript, and perform API requests.13441TypeScriptMozilla Public 2.0
- FlicenseNot gradedqualityBmaintenanceEnables Claude Code to control a real browser using AI for web scraping, competitive intelligence, and UX auditing through the MCP protocol.
- AlicenseNot gradedqualityDmaintenanceEnables natural language browser automation through Claude, wrapping Playwright to execute commands like navigation, clicking, form filling, and screenshots.2030MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/coin-seeker/claude.design-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server