claude.design-mcp
claude.design-mcp
一个 MCP,从你的编辑器/代理驱动真实的 Claude Design Web 应用——登录一次,然后创建、迭代并拉取由 claude.ai/design 在你自己的账户上生成的设计(不是本地模仿)。
工作原理
它通过 CDP 使用
playwright-core驱动你自己已登录的 Chrome(一个专用配置文件),并作为你,通过你的浏览器会话与真实的claude.ai/design“Omelette” API 通信。生成方式与网站相同——你的提示词被输入到设计编辑器中并提交;然后工具等待回合结束(
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 客户端放弃对此服务器返回的旧握手版本的支持。
项目决定用官方的
api.anthropic.com/v1/design/mcp端点替换其 CDP 浏览器自动化方法。claude.ai 更改其身份验证或会话模型,从而影响 CDP 驱动的登录流程。
工具
工具 | 功能 |
| 一次性:打开 Chrome 登录 claude.ai/design(会话持久化) |
| 列出你的 claude.ai/design 项目 |
| 创建项目并从提示词生成设计—— |
| 并行生成一个提示词的多个设计变体—— |
| 发送后续提示词以修改设计—— |
| 将项目的文件下载到本地—— |
| 将项目的自包含 HTML 渲染为整页 PNG 以供审查—— |
| 从项目读取一个文件—— |
| 报告项目的聊天/回合状态—— |
| 轮询并恢复异步生成—— |
| 应用直接文件编辑—— |
| 删除项目—— |
| 通过在其中运行 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,因此提示历史在 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 是 <YYYYMMDDTHHmmssSSS>-<uuid8>(UTC),因此名称顺序就是时间顺序。每个文件夹携带一个 .meta.json,包含每个文件的 SHA-256 列表、一个总 hash,以及当拉取报告部分文件错误时的 incomplete: true。快照暂存在 .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报告的账户设计系统之一的名称。匹配不区分大小写,无歧义的名称片段也可用, 未知名称会报错并列出 composer 提供的列表。所选系统会替换组织默认值而不是叠加在其上,结果会回显解析后的名称。claude.ai 仅在项目尚未产生任何设计时才提供选择器,因此designSystem应放在design_create上;在design_iterate上,它仅对此类项目有效,否则会报错而不是静默忽略请求。design_variants将所有变体基于同一系统。design_create和design_variants必须提供 grounding。 每次调用必须恰好携带 一个非空designSystem或withoutDesignSystem: true(布尔值true,不是"true"或1)——不能同时有,也不能都没有。违反此规则会被拒绝,并显示一条固定消息,其中提到list_claude_synced_systems/design_system_list作为发现可用名称的方式,并且拒绝发生在浏览器会话、操作页面或项目存在之前,因此被拒绝的调用不会对账户产生任何影响。在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。点击或按 Enter 未产生Chat请求会失败,而不是报告成功。带有显式
name的design_create是查找或创建:具有该确切名称的现有项目会被重用(冲突时最新者胜出),结果会带有reused: true,因此重复调用会迭代同一个项目,而不是堆积重复项。 传递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 尝试后为终态,并包含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— 一次/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 导入 shim 替换为来自 ds-bundle/_ds_bundle.css 的生成自定义属性 CSS。
该文件夹必须已经是包(
package.json+ CSS 入口,如styles.css,以及tokens/*.json、guidelines/*.md、README.md)。组件是可选的——仅令牌的包也可接受。如果缺少package.json,工具会在生成之前拒绝。退出状态不是成功信号。 被拒绝的同步仍以
0退出并带有subtype: "success",因此只有当回复带有真实项目链接时结果才是ok: true;否则你会得到{ ok: false, error, raw }以及完整输出用于诊断。首次运行会创建项目并写入
.design-sync/config.json,它将后续运行固定到同一项目(未更改的重新运行则是无操作而不是重复)。如果你的流水线重新生成该文件夹,请在替换之前快照.design-sync/并在之后恢复——此工具从不写入包本身。提示词带有预批准(
src/sync.mjs中的SYNC_ARGS),并且在首次运行时至关重要。 当文件夹没有固定时,/design-sync会要求两次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 没有
单独的设计系统端点——设计系统由普通的项目列表 RPC 返回,标记为
PROJECT_TYPE_DESIGN_SYSTEM,每次分页 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