claude-design-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@claude-design-mcpCreate a design system for a food delivery app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
claude-design-mcp
An MCP server that drives Claude Design — Anthropic's design-system generator — from agentic coding CLIs (Claude Code, Cursor, etc.). It exposes semantic tools so you can create_design_system, generate, iterate, list_files, read_file, and export without touching a browser.
Unofficial — not affiliated with or endorsed by Anthropic. Claude Design has no public API, so this drives a real Chrome and calls claude.ai's internal endpoints. Expect it to break when the site changes. Point it only at your own account, stay within Anthropic's terms, and use it at your own risk. Your logged-in session is sensitive — see SECURITY.md.
Status: working. ~30 tools implemented (see the table below). Most call Claude Design's internal
OmeletteServiceConnect-RPC API as JSON (via in-pagefetch);generate/iterate/get_statusdrive the chat UI (theChatRPC payload is opaque).
Tools
Create & generate
Tool | Purpose |
| Create a design system. Returns |
| Create a design PROJECT (screens/app), optionally binding design systems. |
| Start generation from the stored brief. Returns once started (~5 min total). |
| Poll: |
| Send a chat message. Non-blocking — returns once started; poll |
| Revise/prompt; optionally target a specific conversation. |
Design-system bindings
Tool | Purpose |
| Bind a (published) design system to a project. |
| Unbind a design system. |
| List bound systems (with names). |
| Pull the latest version of bound system(s). |
Conversations
Tool | Purpose |
| List chats: |
| Start a fresh conversation. |
Files
Tool | Purpose |
| List files ( |
| Read a single file (utf8). |
| Dump all files to |
| Primary handoff. Official capability URL + ready Claude Code command; with |
| Deprecated — local bundle ( |
| Grep files → |
| Direct file edits without chat. |
Publish, listing & management
Tool | Purpose |
| Publish / set default design system. |
| List design systems / all projects. |
| Project housekeeping. |
| Account usage/quota (5-hour & 7-day). |
| Open the project as a Claude Code session → |
Related MCP server: claudecode-mcp
Setup
Prerequisites: Node ≥ 20, pnpm, and a desktop Google Chrome installed. A claude.ai account with Claude Design access.
claude.ai is behind Cloudflare, which blocks Playwright's bundled Chromium (automation fingerprint) with an endless "Just a moment…" loop. The server sidesteps this by attaching to a real Chrome over the Chrome DevTools Protocol (CDP) — a normally-launched Chrome passes Cloudflare cleanly.
git clone https://github.com/e-brokenc0de/claude-design-mcp.git
cd claude-design-mcp
pnpm install
pnpm exec playwright install chromium # only the Node bindings are needed
# Start the real Chrome (dedicated debug profile in .auth/cdp-chrome) and log
# into claude.ai once. The window stays open; the session persists.
pnpm run chrome:cdp
pnpm run buildDev-only:
pnpm run recon:capturetees Claude Design's network/RPC traffic into./recon/so you can re-map the internal API insrc/selectors.tsif the site changes. Not needed for normal use. Captures can contain cookies — they're gitignored; never commit them.
The MCP server attaches to the same Chrome (port 9222 by default). If Chrome
isn't running, the server auto-launches it; if it's not logged in, tools return
NOT_AUTHED — run pnpm run chrome:cdp and log in.
CLI
Every tool is also a terminal command via claude-design. The CLI is a thin MCP
client — it spawns the same server and forwards your arguments, so the commands,
schemas, and output are exactly the server's (add a tool to the server and it shows up
here automatically). Good for automation/CI, quick debugging, and one-off ops without
an agent in the loop.
claude-design --help # list every command (discovered from the server)
claude-design <command> --help # flags for one command
claude-design list-projects --json # data tools print JSON → pipe to jq
claude-design create-design-system --name "Acme" --brief "Calm, editorial, dark-first"
claude-design get-status --project-id <id>Command names accept kebab- or snake_case (
create-design-system==create_design_system).Flags mirror each tool's arguments in kebab-case (
projectId→--project-id); array args repeat (--design-system-ids a --design-system-ids b); booleans are presence flags.--jsonguarantees machine-readable stdout. Exit codes:0ok,1error,2NOT_AUTHED.Same prerequisites as the server: a logged-in Chrome (
claude-design chrome), and generation is async — kick offgenerate/iterate, thenclaude-design watch --project <id>.
The dev scripts are folded in as subcommands too: claude-design chrome (auth),
claude-design scaffold (export → packages/ui), claude-design watch (block until a
generation settles). They're equivalent to the matching pnpm run scripts.
Run it without installing globally via npx claude-design …, or node dist/cli.js …
from a clone.
Scaffold a packages/ui from an export
Turn a Claude Design export (the project/ folder of a handoff bundle, or a plain
export dir) into a maintainable token + UI package: DTCG tokens → Style Dictionary →
Tailwind v4 @theme, plus a component skeleton. Components are scaffolded (not
auto-converted) with the raw export kept under _design-source/ for Claude Code to port.
pnpm run scaffold:ui -- --src <exportDir> --out <repo>/packages --name ui --ds-name "My DS"Produces packages/tokens (DTCG JSON source of truth + build/theme.css + tokens.ts,
rebuildable with style-dictionary build) and packages/ui (styles/, primitives/,
components/, index.ts, CLAUDE.md), plus a root PROMPT.md with porting steps.
Primitives land in :root; semantic tokens become Tailwind utilities via @theme inline,
with var() references preserved so a one-token re-theme still cascades.
Registering with Claude Code / Cursor
Copy .mcp.json into your project, or add an entry to your existing MCP config:
{
"mcpServers": {
"claude-design": {
"command": "node",
"args": ["/absolute/path/to/claude-design-mcp/dist/server.js"]
}
}
}Architecture
src/server.ts— MCP stdio server; thin tool dispatcher.src/backend.ts—DesignBackendinterface (the contract every backend implements).src/browser.ts— CDP acquisition: spawn/reuse real Chrome with a debug port, attach over CDP, find the design tab.src/backends/cdp.ts— CDP-attached backend; reattaches per call so generations survive across tool calls.src/selectors.ts— ⚠️ THE ONLY PLACE selectors and endpoint patterns live. UI shifts? Edit this one file.src/registry.ts— PersistsprojectId → { url, name }across stdio invocations.src/config.ts/src/errors.ts— env-driven config + structured loud errors.
Once recon captures Claude Design's internal API, tool bodies wire to in-page
fetch (preferred) or DOM interaction, both centralized via src/selectors.ts.
Secrets
./.auth/ (the Chrome debug profile, holding your logged-in session) and any
captures in ./recon/ are gitignored. Never commit them. See
SECURITY.md for the full list and reporting policy.
Contributing
Issues and PRs welcome. See CONTRIBUTING.md for dev setup and
the one rule that matters: when claude.ai changes, fix src/selectors.ts first.
License
MIT © Brokenc0de. Unofficial; not affiliated with Anthropic.
Available Tools
32 toolsattach_design_systemC
Bind a design system to a project so it reuses that system's tokens/components.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| designSystemId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'Bind', which implies an association, but does not disclose side effects, permissions needed, or whether the operation is reversible. As a mutation tool with no annotation safety net, this is insufficient.
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 it sacrifices necessary detail. It could be longer to cover critical 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 0% schema coverage, no output schema, and no annotations, the description is incomplete. It lacks details on the effect of attaching, prerequisites (e.g., both resources must exist), and what the output indicates (e.g., success or failure).
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%. Description names the parameters implicitly (project, design system) but adds no semantic detail beyond the property names. It does not clarify where to obtain these IDs (e.g., from list_projects, list_design_systems).
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 clearly states verb 'Bind', resource 'design system to a project', and purpose 'reuses that system's tokens/components'. It distinguishes from sibling tools like 'detach_design_system' and 'create_design_system'.
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, no prerequisites or conditions mentioned. For example, it does not specify that the project and design system must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_claude_code_sessionB
Open the project as a Claude Code session. Returns { sessionUrl }. May be gated per account.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| instructions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses one behavioral trait: 'May be gated per account'. However, it does not indicate whether the tool is destructive, requires permissions, or has side effects like starting a long-running session. The return value is mentioned, but deeper behavioral context is missing.
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 extremely concise: two short sentences with the key action upfront. Every word adds value, with no extraneous information. It front-loads the purpose and includes return value and a behavioral note efficiently.
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 tool with no output schema, the description helpfully states the return value. However, it omits context about what a Claude Code session entails, how the session URL is used, error scenarios, or prerequisites. It is adequate for a simple creation tool 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 input schema has 0% description coverage, and the tool description only implicitly references 'projectId' by saying 'Open the project'. It does not explain what the 'instructions' parameter does. The description adds minimal semantic value beyond the schema field names.
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 action ('Open the project as a Claude Code session') and the return value ({ sessionUrl }). It effectively specifies the resource (project) and the type of session. Among siblings, no other tool directly opens a Claude Code session, so it is well-distinguished.
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 (e.g., new_conversation). It only mentions that it 'may be gated per account', which is a behavioral note, not usage context. There is no explicit when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_design_projectA
Create a new design PROJECT (screens/app/prototype), optionally attaching design systems. Returns { projectId, url }. Call generate to start from the brief, or send_message to drive it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name. | |
| brief | No | Optional brief; stored and sent on `generate`. | |
| designSystemIds | No | Design system project ids to bind so generation reuses their tokens/components. | |
| designComponents | No | Enable design-component reuse (defaults true when systems are attached). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns { projectId, url } and can optionally attach design systems. However, it does not mention behavioral details like permissions, storage limits, or error conditions.
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?
Two concise sentences. The first states purpose and optional behavior, the second provides workflow guidance. 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?
Given 4 parameters and no output schema, the description is fairly complete: it explains what the tool creates, what it returns, and how to proceed for generation. Lacks details on error handling and prerequisites, but is adequate for most use cases.
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 100%, so baseline is 3. The description adds value by explaining that the brief is stored for use with generate and that design components can be enabled, linking to sibling tools and 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 it creates a design project (screens/app/prototype) and optionally attaches design systems. It distinguishes from siblings like create_design_system and generate by specifying its role and pointing to alternatives.
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 clear context: 'Call `generate` to start from the brief, or `send_message` to drive it.' This tells the agent when to use this tool versus siblings. However, it does not explicitly state 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.
create_design_systemA
Create a new Claude Design project. Returns { projectId, url }. Does NOT start generation — call generate next.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name (shown in Claude Design). | |
| brief | Yes | Natural-language design brief / system prompt. | |
| sources | No | Optional reference URLs / inspiration sources. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the return format and the fact that generation is not triggered, but lacks details on permissions, side effects, or rate limits.
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?
Two sentences, front-loaded with action and return value, no waste. Efficient and well-structured.
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 creation tool with three parameters and no output schema, the description covers the essential: what it does, what it returns, and the next step. No gaps for its complexity.
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 100% so schema already describes all parameters. Description adds no additional parameter meaning beyond what schema provides, baseline score of 3.
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 clearly states 'Create a new Claude Design project' with specific verb and resource, and distinguishes from sibling 'generate' by explicitly noting it does not start generation.
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?
Explicitly instructs to call 'generate' next, providing clear context for usage. Does not exclude other siblings like 'create_design_project' but the distinction is implied by the project type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileC
Delete a file from the project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description fails to disclose irreversibility, required permissions, or consequences of deletion, which is critical for a destructive operation.
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, no fluff, but may be too terse given the lack of supporting 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?
Without output schema or annotations, the description is inadequate for a delete operation. It omits return values, error scenarios, and side effects.
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?
Both parameters are described only by their names (projectId, path). No additional meaning about format, valid values, or constraints 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', the resource 'file', and the scope 'from the project'. It distinguishes from sibling tools like 'delete_project' and 'edit_file'.
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, no prerequisites or when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectC
Delete a project permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The term 'permanently' hints at irreversibility, but no annotations exist. Missing details about side effects (e.g., deletion of attachments), required permissions, or whether the action can be undone. Minimal behavioral disclosure.
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?
While concise (one sentence), it is under-specific. Useful information is missing, so conciseness trades off against completeness. Not ideal but no wasted 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 delete with one param and no output schema, the description is minimally viable. However, given the potential complexity of projects (dependencies, permissions), more detail would be needed for safe use.
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 has 0% description coverage for the only parameter 'projectId'. Description adds no meaning beyond what the tool name implies. For a required string parameter, the description should clarify format or how to obtain the ID.
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 'Delete a project permanently' clearly states the verb (delete), resource (project), and irreversibility (permanently). It distinguishes from sibling tools like rename_project, duplicate_project, and create_design_project.
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 vs alternatives (e.g., use archive instead), no prerequisites, and no warnings about consequences like losing associated files. The description provides no contextual usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_design_systemC
Unbind a design system from a project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| designSystemId | Yes |
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 fails to disclose behavioral traits such as side effects, reversibility, or required permissions beyond the basic action.
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 too brief to convey sufficient information. It could be expanded without becoming 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 no output schema and simple parameters, the description still lacks details on the effect of unbinding, potential errors, or postconditions. It feels incomplete for safe usage.
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 explain what 'projectId' and 'designSystemId' refer to or how to obtain them, leaving the agent without necessary 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 'Unbind' and the resource 'a design system from a project', differentiating it from its sibling 'attach_design_system'.
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 'attach_design_system' or any prerequisites. The purpose is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_projectC
Duplicate a project. Returns the new { projectId, url }.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides minimal behavioral context. It states duplication and return values, but does not explain side effects, permissions, or whether it is a deep copy. This is insufficient for a mutation 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 very concise (one sentence plus return info) and front-loaded with the main action. No wasted words, but could benefit from slightly more detail.
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 simple interface (1 parameter, no output schema, no annotations), the description is incomplete. It omits what duplication entails (e.g., copying content, attachments) and how it relates to sibling tools like 'remix_project'.
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 single parameter 'projectId' has no description in the schema (0% coverage). The description adds only that it refers to the project to duplicate, without detailing format, scope, or constraints.
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 'duplicate' and resource 'project', and specifies the return format. However, it does not differentiate from the sibling tool 'remix_project', which might have similar functionality.
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 'create_design_project' or 'remix_project'. No prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_fileC
Replace an exact string in a project file (single occurrence edit).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| path | Yes | ||
| oldString | Yes | ||
| newString | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It mentions 'single occurrence' but omits details like case sensitivity, failure mode (if string not found), or whether it replaces the first occurrence. Minimal behavioral context.
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, front-loaded with verb and resource. While concise, it sacrifices essential details, making it barely adequate for the complexity of the tool.
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 4 required parameters, no output schema, and no annotations, the description is incomplete. It provides no guidance on return values, error handling, or prerequisite conditions, leaving the agent underspecified.
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 any parameter semantics. The description only repeats 'exact string' but does not clarify oldString/newString roles or required format for projectId and path.
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 (replace) and resource (exact string in project file), and specifies it is a single occurrence edit, effectively distinguishing it from siblings like write_file or delete_file.
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 implies usage for single occurrence replacement but does not provide explicit guidance on when to use alternatives or what happens if the string is not found. No when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exportC
Write all generated files into destDir, preserving structure.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| destDir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description omits behavioral details such as whether files are overwritten, permission requirements, or size limits. The description implies writing to disk but does not disclose 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 concise with a single sentence that gets to the point. It is front-loaded with the verb. However, it could benefit from slight structuring such as listing parameters explicitly.
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?
The description lacks context about the workflow (e.g., must follow 'generate'), return values, or any post-export behavior. Given no output schema and two undocumented parameters, the description is insufficient for an agent to use the tool effectively.
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?
With 0% schema description coverage, the description only mentions 'destDir' but does not explain the role of 'projectId' or provide format/constraints. The value added beyond the schema is minimal.
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 ('write'), the resource ('all generated files'), and the destination ('destDir'), with a note about preserving structure. It distinguishes from the sibling 'export_handoff' which deals with a different output type.
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 'export_handoff' or 'publish'. There are no prerequisites, context, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_handoffA
DEPRECATED — prefer mint_handoff. Builds a LOCAL handoff bundle (project/ files + chats/ transcripts + README) by reading every file over CDP. Use only for offline bundles or to commit transcripts into a repo.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| destDir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it reads every file over CDP and creates a bundle with specific contents. However, no details on side effects (e.g., whether it modifies server state), performance implications, or output location. Without annotations, the description carries the burden, and it is adequate but not comprehensive.
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?
Two sentences, front-loading the deprecation and alternative, then the action and use cases. No unnecessary words. However, the structure could be improved by placing the use cases before the deprecation note for clarity.
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 two required parameters, no output schema, and no annotations, the description covers the tool's purpose, usage, and output type (bundle). But it lacks parameter details and does not explain 'local' or how the bundle is stored. Sufficient for a deprecated tool, but incomplete for novice agents.
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?
With 0% schema coverage, the description must explain parameters. It mentions 'projectId' and 'destDir' implicitly (reads files, builds local bundle) but does not define their types, formats, or constraints. The agent would need to infer meaning from the tool name and 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 deprecated status and suggests the preferred alternative (mint_handoff). It specifies the action: builds a local handoff bundle from project files, chats, and README. This distinguishes it from siblings like mint_handoff.
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?
Explicitly states when to use ('Use only for offline bundles or to commit transcripts into a repo') and when not to (prefer mint_handoff). No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generateA
Start generation for an existing project. Returns immediately once generation has STARTED — generation takes ~5 minutes, poll get_status.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
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 that the tool is asynchronous (returns immediately) and that generation takes ~5 minutes. It does not cover failure modes, concurrency limits, or required permissions. The info is useful but incomplete for a fully transparent behavior profile.
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 extremely concise: two sentences. The first sentence clearly states the purpose, and the second adds crucial timing and polling instructions. No unnecessary words; front-loaded structure.
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 tool with no annotations, no output schema, and one parameter, the description covers the basic async flow but omits details like what 'generation' produces, handling of errors, or state constraints. It is minimally adequate but lacks completeness for an agent to use without prior knowledge.
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 only parameter 'projectId' has no description in the schema (0% coverage) and the tool description adds no details about its format, source, or constraints. The agent must infer it from context, which is insufficient for reliable 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: 'Start generation for an existing project.' It uses a specific verb-noun pair. However, it does not explicitly differentiate from sibling tools like 'iterate' or 'export', though referencing 'get_status' provides some indirect distinction.
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 solid usage guidance by noting that the tool returns immediately and then directs to poll 'get_status' for completion, which is a sibling tool. It does not give explicit when-not-to-use instructions or mention prerequisites like generation state, but the polling direction is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusB
Poll generation status. Returns { status: 'generating'|'ready'|'error'|'draft', detail?: string }.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses return type and status values, but omits information about side effects, authorization needs, or whether it's safe to call repeatedly. Some transparency but significant gaps.
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?
Extremely concise: two sentences that front-load the purpose and provide essential return format information. No wasted 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 status-polling tool with one parameter and no output schema, the description is mostly complete. It covers purpose and response shape, but could mention that it's read-only or non-destructive.
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 elaborate on the sole parameter 'projectId' at all. No added meaning beyond the schema; fails to compensate for the lack of parameter documentation.
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 polls generation status and specifies the exact return format with possible status values. It effectively distinguishes itself from sibling tools like get_usage or generate.
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, no context about prerequisites or typical usage patterns. The description simply states what it does without explaining when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageB
Get account usage/quota status (5-hour and 7-day windows).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It mentions returning usage/quota status with specific time windows, but does not confirm read-only behavior, side effects, rate limits, or authentication requirements. Minimal transparency.
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 that front-loads the key action, resource, and constraints. Every word adds value with no redundancy.
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 no output schema and no annotations, the description is minimal but adequate for a simple read tool with zero parameters. However, it lacks details on return format or any behavioral guarantees (e.g., idempotency).
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 no parameters, so the description does not need to add parameter meaning. Schema coverage is 100% (empty schema), so a baseline of 4 is appropriate.
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 'Get' and the resource 'account usage/quota status', and adds specific temporal windows (5-hour and 7-day). It is clear but does not differentiate from sibling tools, though none are similar in name or purpose.
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 when-to-use or when-not-to-use guidance is provided. The description only states what the tool does, leaving the agent to infer appropriate usage without context about alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iterateA
Send a chat message to iterate on the design. Non-blocking: returns once the run has STARTED (~seconds). Poll get_status until 'ready', or run pnpm run watch:status in the background for an auto wake-up.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| prompt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals key behavioral trait (non-blocking, polling required) which is critical. No annotations present, so description carries burden. However, does not disclose side effects, authorization, rate limits, or idempotency. Adequate but not rich.
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?
Two well-structured sentences. First sentence states purpose, second provides post-invocation guidance. No superfluous words. Highly efficient.
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?
Covers purpose and follow-up actions, but lacks detail on what 'iterate' entails (e.g., does it modify a design? Create a session?). No return value description. Acceptable for a simple tool but could be more complete given sibling ambiguities.
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 description does not explain the parameters (projectId, prompt) at all. The description should add meaning beyond schema, but it provides no parameter information. This is a significant gap.
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: 'Send a chat message to iterate on the design.' It uses specific verb+resource, distinguishing it from general chat tools like 'send_message' and generation tools like 'generate'.
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?
Explicitly describes the asynchronous nature: non-blocking, returns quickly, then need to poll or watch status. Provides clear next steps. Lacks explicit when-not-to-use or comparison with siblings, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_attached_design_systemsA
List the design systems currently bound to a project (with names).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should explicitly disclose read-only safety and any other behavioral traits. It merely states the action without mentioning side effects, permissions, or rate limits. The verb 'list' implies read-only, but this is not confirmed.
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 that front-loads the key action and details. There is no unnecessary information.
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 absence of an output schema, the description should explain the return format beyond 'with names'. It does not cover error cases, pagination, or prerequisites. For a simple list tool, the description is adequate but incomplete for fully informed use.
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%, meaning the parameter 'projectId' has no description in the schema. The description loosely ties the parameter to 'bound to a project' but does not specify the format, source, or constraints. The description adds minimal value for understanding the parameter.
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 (list), the resource (design systems bound to a project), and includes an output detail (with names). It effectively distinguishes from sibling tools like list_design_systems (which likely lists all systems) and attach/detach actions.
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?
Although the purpose is clear, there is no explicit guidance on when to use this tool versus alternatives like list_design_systems. The description does not provide when-not-to-use scenarios or prerequisites, but the name and context imply its specific use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsA
List a project's conversations (chats): { chatId, title, turns, active }.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description indicates it returns fields but does not explicitly state read-only nature, side effects, or safety profile. Basic behavioral info but could be more explicit.
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?
Description is a single sentence with a list of fields, no wasted words, and front-loaded with action.
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?
Tool has one parameter and no output schema; description indicates return fields but is ambiguous whether response is a single object or an array of objects. Missing explicit indication that it returns a list.
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 has 0% description coverage for parameters; description does not elaborate on the 'projectId' parameter beyond the schema, leaving its meaning and format implicit.
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 clearly states verb 'List' and resource 'a project's conversations (chats)', specifies returned fields, and distinguishes from sibling tools like 'new_conversation' and 'send_message'.
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?
Implied usage for listing conversations of a project, but no explicit guidance on when to use versus alternatives, no exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_design_systemsB
List all known design system projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'List' without specifying results format, edge cases, or side effects. Minimal transparency.
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?
One sentence is concise and front-loaded with the verb. However, it omits potentially useful details 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?
For a no-parameter tool, the description is minimally adequate. However, considering no output schema and sibling tools, it could be more informative about return type or usage context.
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; schema coverage is 100%. The description adds value by implying no filtering, but could elaborate on the scope of 'known'.
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 it lists all known design system projects, which differentiates from sibling 'list_attached_design_systems'. However, it doesn't explicitly clarify the distinction.
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 guidelines provided on when to use this tool versus alternatives. The description implies a broad listing, but lacks any contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesB
List files generated for the project (tokens, components, screens, SKILL.md, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states action and examples; lacks disclosure on output format, pagination, filtering, or side effects. Minimal behavioral transparency.
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, 12 words. Front-loaded with action and resource. No unnecessary content.
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?
Adequate for a simple one-parameter tool, but lacks output description (list of names? paths?) and does not explain what 'generated files' entails. Gaps remain.
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?
Single parameter projectId has 0% schema description coverage. Description does not elaborate on its purpose, format, or how to obtain it, failing to compensate for schema gap.
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 clearly states the tool lists files for a project, with specific examples (tokens, components, screens, SKILL.md). It is distinct from siblings like search_files and read_file.
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 explicit when-to-use or alternatives guidance. Implies usage for listing generated files, but does not contrast with search_files or other related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsA
List ALL projects (both design systems and design projects) with their kind.
| 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. It discloses listing projects with kind, but lacks details on read-only nature, authentication, or rate limits.
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 to the point without 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?
Minimal description covers core functionality but lacks output schema and details about 'kind' meaning or pagination. Adequate for a simple list tool.
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?
Input schema has zero parameters with 100% coverage. Description adds no parameter information, which is acceptable as there are none.
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 explicitly states the tool lists ALL projects, including both design systems and design projects, with their kind. It clearly distinguishes from sibling tools like list_design_systems.
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 implicitly suggests use when needing all projects, but does not explicitly state when not to use or mention alternatives like list_design_systems for filtering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_handoffA
PRIMARY handoff to Claude Code. Mints the official capability URL to the server-built bundle and returns a ready-to-run command (Fetch … / Implement: …). The URL is fetchable without auth and expires shortly. Pass destDir to also download + extract the bundle locally (returns projectDir, ready for pnpm run scaffold:ui).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| includeChats | No | Bundle the conversation transcripts (default true). | |
| instructions | No | What the agent should implement (fills the command's 'Implement:' line). | |
| destDir | No | Optional: download + extract the bundle here; returns the extracted projectDir. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the URL is fetchable without auth and expires shortly, and explains the return values (command, projectDir). More detail on side effects (e.g., no destructive actions) would improve, but the provided info is adequate.
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?
Two sentences with key info front-loaded ('PRIMARY handoff'). Every phrase earns its place, no wasted 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?
No output schema, but the description covers return values and key behaviors (auth, expiry, optional local extraction). It lacks error handling or rate limit info, but for a 4-param tool this is sufficient.
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 75%, so baseline is 3. The description adds value beyond schema by explaining that 'instructions' fills the command line and 'destDir' downloads/extracts and returns 'projectDir'. Only 'projectId' lacks additional 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 tool mints a handoff URL for Claude Code and returns a command. The verb 'mint_handoff' and context 'PRIMARY handoff' make the purpose explicit. However, it does not differentiate from sibling 'export_handoff', leaving some ambiguity.
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 gives usage context ('PRIMARY handoff') and explains when to use the optional 'destDir' parameter. But it lacks explicit guidance on when not to use this tool or how to choose between siblings like 'export_handoff'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_conversationA
Start a fresh conversation in the project (then use send_message).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
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 mentions starting a conversation but does not disclose side effects (e.g., overwriting current conversation), authentication needs, or rate limits. The description is 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?
The description is a single sentence, front-loaded with the action and purpose. No redundant information.
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's simplicity (one parameter, no output schema), the description covers the main purpose and next step. However, it could mention the result (e.g., a new conversation ID) or parameter constraints.
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 one parameter 'projectId' with 0% description coverage. The description does not add any meaning beyond the parameter name; it just says 'in the project'. No explanation of what projectId represents or how to obtain it.
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 (start a fresh conversation), the resource (in the project), and suggests the next step (use send_message). It distinguishes from siblings like 'list_conversations' and 'send_message'.
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 indicates when to use this tool (starting a fresh conversation) and hints at an alternative (send_message). It does not explicitly say when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publishB
Publish the design system (make it shareable / consumable as a Skill).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations available, so description must handle behavioral disclosure. It only says 'Publish' without clarifying reversibility, permissions, or side effects. Minimal transparency.
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, front-loaded sentence that conveys the core action without extraneous words. Every word earns its place.
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 simple schema (1 param, no output) and no annotations, the description covers the basic purpose but lacks details on return values, side effects, or prerequisites. Adequate but incomplete.
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 description does not elaborate on the required 'projectId' parameter—what it represents or how to obtain it. No added 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 'Publish' and the resource 'design system', and explains what it means by 'make it shareable / consumable as a Skill'. This distinguishes it from sibling tools like create, attach, or detach.
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 explicit when/when-not or alternatives provided. The context implies it is for making a design system publicly available, but prerequisites (e.g., design system must exist) are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileB
Read a single generated file by its path within the project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| path | Yes |
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 states 'read' indicating non-destructive intent, but fails to disclose behavioral traits like error handling, caching, or what happens if the file does not exist. With zero annotations, this is a significant 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?
The description is a single sentence of 11 words, immediately stating the verb and resource. It is concise and front-loaded, though it could be slightly more informative 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?
For a simple read operation with two parameters and no output schema, the description is minimally adequate. It tells the core action and the key parameter (path), but lacks information on return values, error handling, or file types. It meets the bare minimum.
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 the 'path' parameter as 'by its path within the project', but does not explain 'projectId'. This adds partial value, but does not fully compensate for the lack of schema descriptions.
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 reads a single generated file by path within the project. It uses a specific verb and resource, and distinguishes it from sibling tools like write_file, delete_file, and edit_file.
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 implies when to use (when you need to read a file by path) but does not explicitly mention when not to use or suggest alternatives. No exclusion or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_design_systemA
Pull the latest version of bound design system(s) into the project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| designSystemId | No | Optional; refresh just this one, else all bound. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It states 'pull' but does not disclose side effects, permissions required, or what happens in case of conflicts or failures. For a mutation-like operation, more detail is needed.
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, concise sentence that conveys the core purpose without extraneous words. Every part is necessary.
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?
The operation is simple with only 2 parameters, but the description lacks details on return values, error conditions, or behavioral nuances like conflict resolution. Adequate but not thorough.
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 50% (only designSystemId has a description). The overall description adds context about 'latest version' and 'bound design systems' but does not explain projectId beyond its role as the project. Minimum viable given partial coverage.
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 a specific action ('Pull the latest version') and resource ('bound design system(s) into the project'). It distinguishes from sibling tools like 'attach_design_system' which are about binding rather than updating.
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 implies usage when needing to update bound design systems, but provides no explicit when-to-use, when-not-to-use, or alternative guidance. It meets a minimum viable level but lacks clarity on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remix_projectC
Remix a project into a new one (optionally including chats).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| includeChats | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only restates the optional chat inclusion, which is already in the schema. No info on side effects, permissions, or what 'remix' entails beyond copying.
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 that is front-loaded. While it leaves gaps, it wastes no words. Structure is adequate for its 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?
Given the tool creates a new project, the description is incomplete. It does not explain the outcome, changes, or prerequisites. With no output schema, more context is needed.
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%; description only adds meaning to 'includeChats' ('optionally including chats') but not to 'projectId'. The nature of the new project (name, location, etc.) is not explained.
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 the specific verb 'Remix' and clearly mentions the resource 'project' and an optional feature (include chats). It distinguishes from sibling 'duplicate_project' by implying selective rather than exact copy, though not explicitly.
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 'duplicate_project' or 'rename_project'. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_projectC
Rename a project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It merely states the action without disclosing behavioral traits like permissions, reversibility, or effects on project references. For a mutation tool, this is insufficient.
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, achieving conciseness but at the expense of completeness. It is easy to parse but lacks necessary details, making it minimally functional.
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's simplicity and lack of output schema, the description should cover common constraints or return behavior. It does not mention whether the rename is immediate, reversible, or what happens to dependent resources. This leaves significant gaps for an agent.
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 two required parameters (projectId, name), but the description adds no meaning beyond the schema's types. With 0% schema description coverage, the description fails to clarify what values are valid or how they relate to the rename operation.
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 'rename' and the resource 'project', making the tool's basic purpose unambiguous. However, it does not distinguish from sibling tools like 'duplicate_project' or 'delete_project', which also modify projects.
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 (e.g., when to rename vs. duplicate). The context of sibling tools suggests many project modification options, but the description offers no usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesC
Grep the project's files for a pattern. Returns { path, line, context } matches.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| pattern | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It mentions returning matches but omits details like case sensitivity, regex vs glob, search scope (entire project?), or any side effects. For a search tool, these are significant gaps.
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 that efficiently states purpose and return structure. No redundant words; front-loads the key action 'grep the project's files'.
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 no output schema, no annotations, and 2 required params, the description is too minimal. It lacks details on return format (e.g., what 'context' means), search options, and scope. For a straightforward search tool, more completeness is expected.
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 two parameters (projectId, pattern). It does not specify pattern format (e.g., regex, plain text) or required escaping. The agent gets no extra 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 'grep' and resource 'project's files', and clearly states what is returned: { path, line, context } matches. This distinguishes it from sibling file tools like list_files and read_file.
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. Among many file-related siblings (list_files, read_file, edit_file, delete_file, write_file), the description does not clarify that this tool is for pattern searching, not for listing or reading specific files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageA
Send a prompt / revision to the project chat. Non-blocking: returns once the run has STARTED. Optionally target a specific conversation by conversationId. Poll get_status (or pnpm run watch:status) for completion.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| prompt | Yes | ||
| conversationId | No | Optional chatId from list_conversations; defaults to the active one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral trait: returns once run started (non-blocking). Mentions optional conversationId. Lacks details on error handling, permissions, or rate limits, but the core behavior is clear. No annotations provided.
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?
Two sentences, front-loaded with purpose, then behavior, optional param, and follow-up advice. No fluff.
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?
Provides enough context for usage: what it does, how it behaves, and what to do after calling. Lacks return value description and error handling, but acceptable for this tool's complexity.
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 only 33% (only conversationId described). The description adds minimal parameter detail: prompt is implied via 'prompt/revision', but projectId is not elaborated. Does not compensate for low schema coverage.
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?
Clearly states it sends a prompt/revision to the project chat, distinguishing it from related tools like list_conversations or get_status. The verb 'send' and resource 'project chat' are 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?
Provides usage guidance: non-blocking nature, optional conversation targeting, and advise to poll get_status for completion. However, it does not explicitly contrast with sibling tools like new_conversation or iterate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_defaultC
Set this design system as the default one used by Claude Design.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 disclosing behavior. It does not explain what happens to the previous default, whether the operation is reversible, or any side effects. The agent has no behavioral context beyond the basic action.
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 one sentence and front-loaded, which is concise. However, it sacrifices necessary detail for brevity. Every word carries meaning, but it is under-informative for the tool's complexity.
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 low schema coverage, no output schema, and no annotations, the description is incomplete. It does not explain the effect, return value, or edge cases. The agent lacks sufficient information to use the tool confidently.
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 one parameter (projectId) with 0% coverage. The description does not explicitly map the parameter to 'this design system', leaving the agent to guess that projectId identifies the design system. No additional semantic meaning is provided.
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: setting a design system as default for Claude Design. The verb 'Set' and resource 'design system' are explicit. However, it does not differentiate from sibling tools like attach_design_system, missing an opportunity to clarify the distinction.
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. It does not state prerequisites (e.g., the design system must exist), conditions for use, or when to avoid using it. The agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_favoriteA
Mark/unmark a project as favorite.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| favorite | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description indicates mutation ('Mark/unmark') but does not elaborate on reversibility, limits, or side effects beyond basic toggling.
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, no wasted words; could be slightly more informative without compromising 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 simple nature (2 params, no output schema), the description is minimally adequate but lacks detail on effect on existing state or constraints, leaving gaps for an AI agent.
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 description must compensate. It does not explicitly explain the parameters, though their meaning is inferable from the tool name and context; some explicit description would improve clarity.
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 states the verb 'Mark/unmark' and the resource 'project as favorite', clearly defining the tool's purpose and distinguishing it from siblings like 'set_default' or 'rename_project'.
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 explicit guidance on when to use this tool versus alternatives; usage is implied as it's the only favorite-related action among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileA
Create or overwrite a file in the project with the given UTF-8 content.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| path | Yes | ||
| content | 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 indicates the tool can both create and overwrite files, which is key, but it does not explain what happens if the file already exists (e.g., silent overwrite) or if the project must exist. Additional context like path validation or error handling is missing.
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 that efficiently communicates the tool's purpose without unnecessary words. It is appropriately sized for the tool's simplicity.
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's simplicity (3 required params, no output schema), the description is mostly sufficient. However, it lacks details about the behavior when overwriting, the relative nature of the path, and how it differs from edit_file, which would improve completeness.
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 0% description coverage, and the description adds no detail about the parameters beyond their names (projectId, path, content). While the names are self-explanatory, the description does not compensate for the lack of schema descriptions, e.g., clarifying that path is relative or content encoding.
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 creates or overwrites a file with UTF-8 content. It provides a specific verb and resource, and the action is distinct from siblings like delete_file, read_file, or edit_file.
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 given on when to use this tool versus alternatives such as edit_file. There is no mention of prerequisites, context, or conditions under which this tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but 'iterate' and 'send_message' both send chat messages to iterate on design, causing potential confusion. Also, 'export_handoff' is deprecated but remains, creating overlap with 'mint_handoff'. Overall, the set is mostly clear.
All tools follow a consistent verb_noun pattern in snake_case (e.g., attach_design_system, list_projects, rename_project). No mixing of styles or irregular names.
32 tools is excessive for a typical MCP server, even for a complex domain. The set includes deprecated tools and several overlapping functions (e.g., generate/iterate, export_handoff/mint_handoff) that could be consolidated.
The tool set covers the full lifecycle of design project management: creation, generation, iteration, file management, export, and handoff. Minor gaps exist (e.g., no direct tool to update design system properties), but core workflows are well-supported.
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
The Figma MCP server brings Figma design context directly into your AI workflow.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol (MCP) server that enables Claude to create and manipulate designs in Figma through either a Figma plugin or directly via the Figma API.
- AlicenseAqualityBmaintenanceLocal MCP server that wraps the headless Claude Code CLI as MCP tools, providing stateless access to Claude's coding capabilities through prompt-based interactions. It enables users to execute Claude Code commands with various prompt formats and structured outputs directly from MCP clients.3MIT
- AlicenseCqualityCmaintenanceA comprehensive MCP server that enables Claude to read, create, edit, and generate code from Figma designs. Supports design tokens, code generation to multiple frameworks, and accessibility checks.1004MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that wraps the Claude Agent SDK, enabling Claude-powered queries, coding tasks, web search, and customizable agent execution using OAuth without an API key.21MIT
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/e-brokenc0de/claude-design-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server