Skip to main content
Glama
coin-seeker

claude.design-mcp

by coin-seeker

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" ハンドシェイクで初期化に応答します。

次のいずれかの条件が発生した場合は、この見解を再評価してください。

  1. OpenCode MCP クライアントが、このサーバーが返す古いハンドシェイクバージョンのサポートを廃止した場合。

  2. プロジェクトが CDP ブラウザ自動化アプローチを公式の api.anthropic.com/v1/design/mcp エンドポイントに置き換えることを決定した場合。

  3. claude.ai が認証またはセッションモデルを変更し、CDP 駆動のログインフローに影響を与える場合。

ツール

ツール

機能

design_login

一度だけ: claude.ai/design にログインするために Chrome を開く(セッションは永続化)

design_list

あなたの claude.ai/design プロジェクトを一覧表示

design_create

プロジェクトを作成し、プロンプトからデザインを生成 — promptdesignSystem XOR withoutDesignSystem: true(+ withoutDesignSystemReason?)、name?wait?model?fresh?

design_variants

1 つのプロンプトの複数のデザインバリアントを並行して生成 — promptdesignSystem XOR withoutDesignSystem: true(+ withoutDesignSystemReason?)、count?axis?name?preview?model?

design_iterate

デザインを変更するためのフォローアッププロンプトを送信 — projectIdpromptwait?model?designSystem?

design_pull

プロジェクトのファイルをローカルにダウンロード — projectId または namedir?zip?

design_preview

プロジェクトの自己完結型 HTML を全ページ PNG にレンダリングしてレビュー — projectId または namepath?dir?width?

design_get

プロジェクトから 1 つのファイルを読み取る — projectIdpath

design_status

プロジェクトのチャット/ターン状態を報告 — projectId

design_check

非同期生成をポーリングして回復 — projectId; generatingawaiting_inputdoneno_outputinterruptedstalled、または resume_exhausted を返す

design_edit

直接ファイル編集を適用 — projectIdpathedits

design_delete

プロジェクトを削除 — projectIdconfirmtrue である必要があります。これがないと呼び出しは拒否されます)

design_system_sync

具体化されたデザインシステムパッケージフォルダを デザインシステム として claude.ai にアップロード。Claude Code /design-sync をその中で実行 — dir

design_system_list

アカウント上のデザインシステム(名前 + 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 の再起動をまたいで保持されます。行には veventIdseqtstooldurationMsokerrorprojectIdprojectsprojectNameprompt(逐語的、決して切り詰められない)、modeldesignSystemwithoutDesignSystemwithoutDesignSystemReasonwaitattemptIdcallerpullKindrevision、およびホワイトリストに登録された result サマリー(カウントと ID のみ — 決してファイル内容、base64、環境値は含まれません)が含まれます。記録はベストエフォートの可観測性です。書き込みに失敗しても stderr に警告が出るだけで、正常なツール呼び出しがエラーになることはありません。CLI パスは記録されません。

リビジョンスナップショット

成功した通常の design_pullpullKind: "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_createdesign_iteratedesign_variants はオプションの model を受け付けます。 ファミリー名(opussonnethaikufable)を使うと、claude.ai/design のライブメニューからそのファミリーの最新バージョンが選択されます。opus-4.8opus-5opus 5.0claude-opus-4-8anthropic/claude-opus-5 のような形式でバージョンを固定できます。新しいファミリーバージョンは、サイトメニューに表示されると自動的に利用可能になります。要求したバージョンが利用できない場合、エラーにはライブメニューの選択肢が一覧表示されます。CLI の createiterate では、同じ値を --model に渡します。

  • design_createdesign_iteratedesign_variantsdesignSystem(CLI では --design-system)を受け付けます。これは design_system_list が報告するアカウントのデザインシステムのいずれかの名前です。大文字小文字を区別せずに照合され、曖昧でない部分名でも機能し、不明な名前の場合はコンポーザーが提供するリストとともにエラーになります。選択したシステムは組織のデフォルトに追加されるのではなく置き換えられ、結果には解決された名前がエコーされます。claude.ai はプロジェクトがまだデザインを生成していない間だけピッカーを提供するため、designSystemdesign_create に指定するのが正しく、design_iterate ではそのようなプロジェクトに対してのみ機能し、それ以外の場合は黙って無視するのではなくエラーになります。design_variants はすべてのバリアントを同じシステムに基づかせます。

  • design_createdesign_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_createdesign_iteratewait(デフォルト true)を受け付けます。wait: false を設定すると、検証済みの Chat POST と、{ 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> でポーリングします。その statusgeneratingawaiting_inputdoneno_outputinterruptedstalledresume_exhausted のいずれかです。各チェックは、ターンがアクティブな間は保持しているオーナーページを再利用し(再読み込みなし)、可能な場合は質問フォームに回答し、中断バナーの Resume ボタンを自動的にクリックします。interrupted はバナーが存在したが再開できなかったことを意味し、stalled はファイルツリーが安定していて生成ファイルがなく、最後のメッセージが依然としてユーザーのプロンプトであることを意味します。resume_exhausted は Resume の試行が3回連続で失敗した後の終端状態で、resumeAttemptsmaxResumeAttemptsproblem: "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_DIRdesign_pull / design_preview が書き込む場所。それぞれ独自の <project>/ フォルダに書き込まれます(デフォルト: 作業フォルダ)。明示的な dir 引数はそのまま使用されます

  • CLAUDE_DESIGN_HISTORY_DIRtools/call 履歴が追記される場所(デフォルト ~/.local/share/opencode-dashboard/claude-design-history、ファイル events.ndjsonl

  • CLAUDE_DESIGN_HEADLESS1 を設定すると、オフスクリーンではなくヘッドレス 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_BINdesign_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/*.jsonguidelines/*.mdREADME.md)。コンポーネントはオプションです。トークンのみのパッケージも受け付けられます。package.json がない場合、ツールはスパウンする前に拒否します。

  • 終了ステータスは成功のシグナルではありません。 拒否された同期でも subtype: "success" で終了コード 0 で終了するため、結果が ok: true になるのは、応答に実際のプロジェクトリンクが含まれている場合のみです。それ以外の場合は、診断用の完全な出力とともに { ok: false, error, raw } が返されます。

  • 初回実行ではプロジェクトが作成され、.design-sync/config.json が書き込まれます。これにより、以降の実行は同じプロジェクトに固定されます(変更のない再実行は重複ではなく no-op になります)。パイプラインがフォルダを再生成する場合は、置き換える前に .design-sync/ をスナップショットし、後で復元してください。このツールはパッケージ自体を書き込むことはありません。

  • プロンプトには事前承認(src/sync.mjsSYNC_ARGS)が含まれており、初回実行ではこれが重要な役割を果たします。 フォルダにピンがない場合、/design-sync は2つの AskUserQuestion 確認を求めます。時間/コストを受け入れてから、create_project の前に新しいプロジェクトの名前を確認します。claude -p には AskUserQuestion ツールがないため、ターンは質問を残したまま終了し、何もアップロードされません(終了コード 0subtype: "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 tools
design_createC

Create a Claude Design project and submit the initial prompt through the composer.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
promptYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
editsYes
projectIdYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
projectIdYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
projectIdYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNo
nameNo
pathNo
widthNo
heightNo
projectIdNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNo
zipNo
nameNo
projectIdNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

B3.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

All tools follow a uniform 'design_<verb>' pattern, using snake_case throughout, making naming predictable and easy to understand.

Tool Count5/5

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.

Completeness4/5

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

ActivityActive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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