Stitch MCP Server
Provides tools to generate, edit, and scaffold HTML screens using Google Stitch AI UI generation API. Allows creation of projects, generation of screens from natural language prompts, editing existing screens, generating variants, and saving generated UI to local files.
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., "@Stitch MCP ServerCreate a login page with email and password"
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.
Stitch MCP Server
Enterprise-ready Model Context Protocol (MCP) server for Google Stitch SDK — Generate beautiful web UIs from text prompts using AI.
The Stitch MCP Server bridges your AI coding assistant (Claude, Cursor, Cline, Copilot, etc.) with Google's Stitch UI Generation API. Design, generate, and scaffold production-ready HTML components directly into your workspace using natural language.
Features
Feature | Description |
AI UI Generation | Generate complete HTML screens from text descriptions |
Edit and Iterate | Modify existing screens with natural language prompts |
Design Variants | Generate multiple design variations to explore options |
Auto-Scaffold | Save generated UI directly to your project files |
Multi-Client Support | Works with Claude Desktop, Cursor, Cline (VS Code), and any MCP client |
One-Click Setup | Interactive installer configures everything automatically |
Related MCP server: Magic Patterns MCP Server
Quick Start
Prerequisites
Node.js 18.0.0 or higher
Stitch API Key — Get one here (sign in with Google)
Installation (30 seconds)
Run the interactive setup wizard:
npx stitch-mcp-server setupThis will:
Ask which AI tools you want to configure (Claude, Cursor, Cline)
Prompt for your Stitch API key
Automatically update your MCP configuration files
Done - restart your AI tool and start generating UIs
Manual Configuration
If you prefer manual setup, add this to your MCP config file:
{
"mcpServers": {
"stitch": {
"command": "npx",
"args": ["-y", "stitch-mcp-server@latest"],
"env": {
"STITCH_API_KEY": "your-api-key-here"
}
}
}
}{
"mcpServers": {
"stitch": {
"command": "npx",
"args": ["-y", "stitch-mcp-server@latest"],
"env": {
"STITCH_API_KEY": "your-api-key-here"
}
}
}
}{
"mcpServers": {
"stitch": {
"command": "npx",
"args": ["-y", "stitch-mcp-server@latest"],
"env": {
"STITCH_API_KEY": "your-api-key-here"
}
}
}
}Available Tools
Core Tools
Tool | Description | Example Prompt |
| Create a new Stitch project | "Create a project called 'My App'" |
| List all your projects | "Show my Stitch projects" |
| Generate a UI from description | "Create a login page with email and password" |
| Modify an existing screen | "Make the background dark and add a sidebar" |
| Create design alternatives | "Show me 3 different color schemes" |
Advanced Tools
Tool | Description | Use Case |
| Fetch HTML source code | Get the raw HTML for a generated screen |
| Get screenshot URL | Preview the generated design |
| Generate + fetch in one call | Streamlined workflow for quick prototyping |
| Save HTML to local files | Export directly to |
Resources
stitch://projects— List all projects as contextstitch://projects/{id}/screens— List screens in a project
Prompts
create_web_app— Guided workflow to build a complete web app from idea to scaffolded files
Usage Examples
Generate a Landing Page
Create a modern landing page for a SaaS product with:
- Hero section with headline and CTA button
- Features grid with 3 columns
- Testimonials carousel
- Footer with linksCreate a Dashboard
Generate an admin dashboard with:
- Sidebar navigation
- Stats cards at the top
- Data table with pagination
- Dark mode themeEdit an Existing Design
Take the login screen and:
- Add social login buttons (Google, GitHub)
- Make it mobile responsive
- Add a "Remember me" checkboxLocal Development
# Clone the repo
git clone https://github.com/0x-Professor/Stitch-mcp-server.git
cd Stitch-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Run locally
STITCH_API_KEY=your-key npm startRunning Tests
STITCH_API_KEY=your-key npm testTech Stack
Runtime: Node.js 18+
Language: TypeScript
MCP SDK: @modelcontextprotocol/sdk
Stitch SDK: @google/stitch-sdk
Validation: Zod
Build: tsup
Testing: Vitest
Security
This server implements several security measures:
Path Traversal Protection — Prevents writing files outside your workspace
Input Validation — All inputs validated with Zod schemas
Secure Config Storage — API keys stored with restricted file permissions (0600)
HTTP Response Validation — Proper error handling for all network requests
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
MIT - 0x-Professor
Links
Issues: Report a bug
Stitch SDK: github.com/AugmentedCode/stitch-sdk
MCP Protocol: modelcontextprotocol.io
Available Tools
9 toolscreate_projectB
Create a new Stitch project
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the new project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations to provide safety or side-effect hints, so the description carries full responsibility. However, it only states the core action and does not disclose return values, potential errors, idempotency, or any side effects beyond creation.
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 is front-loaded with the verb and resource. Every word earns its place, with no redundancy or filler.
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 tool is simple with one required parameter, and the description covers its basic purpose. However, there is no output schema and no mention of what the tool returns or any post-condition. Given the lack of annotations and minimal context, some crucial behavioral details are missing, but the low complexity prevents a lower score.
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 fully describes the 'title' parameter ('Title of the new project'), giving 100% coverage. The tool description adds no extra parameter information, but since the schema does the heavy lifting, a baseline score of 3 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 action ('Create') and the resource ('a new Stitch project'), which is specific and unambiguous. It distinguishes itself from sibling tools like list_projects, edit_screen, and generate_screen since none of those create a 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 is provided about when to use this tool versus alternatives. Sibling tools like scaffold_project_files might overlap conceptually, but the description offers no context or exclusions to help the agent choose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_screenB
Edit an existing screen using a text prompt
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text prompt describing the changes (e.g., 'Make the background dark and add a sidebar') | |
| modelId | No | Generative model to use | |
| screenId | Yes | The ID of the screen to edit | |
| projectId | Yes | The ID of the project containing the screen | |
| deviceType | No | Target device type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description must fully disclose the tool's behavior. It only says 'edit', implying a mutation, but does not mention side effects, reversibility, permissions, or what happens to the screen after editing. This is insufficient for a potentially 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?
The description is a single, front-loaded sentence with no fluff. It efficiently states the action and target, making it appropriately concise for the tool's purpose.
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?
Despite the schema covering parameters, the description lacks essential context about how the text prompt is interpreted, the role of optional modelId/deviceType, and what the edit operation entails. For a tool that modifies an existing screen, this is not sufficiently complete for an agent to understand the full workflow.
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 fully describes all 5 parameters (100% coverage), including enums for modelId and deviceType. Since the schema already provides the necessary parameter semantics, the description does not add value here, so the baseline of 3 applies.
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 ('Edit'), the resource ('an existing screen'), and the method ('using a text prompt'). The word 'existing' implicitly differentiates it from sibling tools like generate_screen, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as generate_screen, nor are any preconditions or exclusions mentioned. The description only states what the tool does, not the appropriate context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_and_fetch_codeA
One-step tool to generate a UI screen and immediately retrieve its HTML code
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text prompt describing the desired screen | |
| projectId | Yes | The ID of the project | |
| deviceType | No | Target device type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states that it generates a screen and retrieves code, but doesn't disclose potential side effects (e.g., screen creation persistence), failure behaviors, or whether it requires an existing project. This lack of behavioral detail 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?
One sentence, front-loaded, no filler. Achieves maximum clarity with minimal 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?
The description covers the core function and return type (HTML code), but given it's a compound operation without annotations or output schema, more context about the interaction with projectId and generation behavior would improve completeness. However, schema covers params, so it's adequate.
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%, with each parameter described. The description adds no additional parameter syntax or behavior beyond the schema, so baseline 3 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 uses a specific compound verb 'generate and fetch' with clear resources 'UI screen' and 'HTML code', and the 'one-step' phrasing distinguishes it from separate sibling tools generate_screen and get_screen_code.
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 the use case: when you need both generation and code retrieval in a single step, but it doesn't explicitly name alternatives or state when not to use it. The context is clear enough for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_screenB
Generate a UI screen from a text prompt within a project
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text prompt describing the desired screen (e.g., 'A login page with email and password fields') | |
| projectId | Yes | The ID of the project to generate the screen in | |
| deviceType | No | Target device type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not explain side effects, whether it creates a new resource, what the response contains, or any auth/rate-limit considerations. The operation 'generate' is left vague.
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, front-loaded sentence that directly communicates the core purpose with no wasted words. It is concise and easy to grasp.
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 information about expected outcomes, return structure, or preconditions. Since there is no output schema, the description should explain what 'generate' returns or does, but it does not, leaving a significant gap.
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?
All three parameters have descriptions in the input schema, covering 100% of them. The tool description itself adds no additional parameter semantics, so the baseline score of 3 applies.
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 ('Generate a UI screen from a text prompt within a project') with a specific verb, resource, and scope. It distinguishes itself from sibling tools like edit_screen and generate_variants by focusing on generation from a prompt.
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. The description simply states what the tool does, with no mention of prerequisites, exclusions, or situations where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_variantsB
Generate design variants of an existing screen
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Prompt guiding the variants (e.g., 'Try different color schemes') | |
| aspects | No | Aspects of the design to vary | |
| screenId | Yes | The ID of the screen to generate variants from | |
| projectId | Yes | The ID of the project containing the screen | |
| variantCount | No | Number of variants to generate (1-5) | |
| creativeRange | No | How different the variants should be | EXPLORE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of disclosing behavioral traits. It only says 'generate variants' without mentioning whether this creates new records, mutates existing data, returns output, or has side effects. This leaves the agent with little behavioral understanding.
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, front-loaded sentence that communicates the core function without any filler or redundancy. It is appropriately concise for the level of schema detail provided.
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 six parameters and no output schema, the description is too thin. It fails to explain what 'variants' means operationally—whether they are saved, returned as code, or displayed—especially given the presence of sibling tools like generate_and_fetch_code. The schema covers parameters but not the overall tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for all six parameters (100% coverage), so the description does not need to explain parameter semantics. The description adds no additional parameter context, but the baseline of 3 is appropriate given complete 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?
The description clearly states the verb 'Generate' and the resource 'design variants of an existing screen', making the core purpose obvious. It is distinct from sibling tools like generate_screen, but it does not explicitly name or contrast with alternatives, so it falls short of a 5.
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 phrase 'existing screen' implies that this tool is for modifying or branching from an already-created screen, which suggests usage context. However, there is no explicit statement about when to use this tool versus generate_screen, edit_screen, or other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_screen_codeA
Retrieve the HTML code download URL (and extract full HTML if possible) for a generated screen
| Name | Required | Description | Default |
|---|---|---|---|
| screenId | Yes | The ID of the screen | |
| projectId | Yes | The ID of the project |
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 a best-effort behavior ('extract full HTML if possible'), which hints at fallback logic, but does not specify the response format, error behavior, or whether the operation is read-only beyond the verb 'Retrieve'.
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, front-loaded sentence with no redundant information. The parenthetical about extracting full HTML is concise and adds value without bloat.
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 tool is simple with two well-described parameters, but the lack of an output schema means the description should clarify the return value. It mentions a download URL and optional HTML extraction but leaves the exact structure ambiguous. It is sufficient for a basic tool but lacks precision.
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 the baseline is 3. The description does not add any additional meaning beyond the schema's generic 'The ID of...' descriptions, but the schema already fully documents both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retrieve') and clearly identifies the resource ('HTML code download URL' and potentially 'full HTML') for a generated screen. It distinguishes itself from siblings like get_screen_image and generate_and_fetch_code.
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 is provided. It does not mention exclusions, prerequisites, or contrast with generate_and_fetch_code, leaving the usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_screen_imageA
Retrieve the base64 screenshot image download URL for a generated screen.
| Name | Required | Description | Default |
|---|---|---|---|
| screenId | Yes | The ID of the screen | |
| projectId | Yes | The ID of the project |
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 of behavioral disclosure. It only states 'retrieve' without clarifying safety (e.g., read-only nature) or potential side effects. The return format is ambiguous ('base64 screenshot image download URL' could be interpreted multiple ways), and there is no mention of permissions, failures, or URL longevity.
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, focused sentence with no redundant information. It clearly communicates the tool's core purpose without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description does mention the return type (a URL), which is useful. However, it does not address error cases, prerequisites (such as the screen being generated), or the exact nature of the URL (e.g., whether it expires or contains base64 data). For a simple getter, this is adequate but not fully comprehensive.
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%, with both parameters described generically as 'The ID of the screen' and 'The ID of the project.' The description does not add additional meaning beyond the schema, such as the relationship between screenId and projectId or how to obtain these IDs. Baseline 3 is appropriate since the schema already documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Retrieve the base64 screenshot image download URL for a generated screen.' The verb 'retrieve' is specific, and the resource is well-defined as a screenshot image URL. This distinguishes it from siblings like get_screen_code, which retrieves code instead of an image.
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 phrase 'for a generated screen' implies the tool is used after a screen has been generated, but no explicit guidance is given regarding when to use this tool versus alternatives like get_screen_code or generate_screen. There are no exclusion statements or references to sibling 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 available Stitch 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 carries the burden. 'List all available' conveys a read-only behavior and a scope limitation ('available'), but it does not disclose potential auth requirements, response format, pagination, or error behavior. For a list tool, this is 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?
The description is a single, front-loaded sentence that states the exact purpose without any redundant words or filler. It is both concise and complete 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 zero parameters, no output schema, and a simple list operation, the description sufficiently conveys the tool's function. It does not describe the return structure, but 'List' strongly implies returning an array of project objects, which is acceptable for this 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?
The tool has zero parameters, so the baseline is 4. The description adds slight semantic value by specifying 'all available', which clarifies that no filtering is applied and only accessible projects are returned.
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') and the resource ('all available Stitch projects'). It distinguishes this tool from sibling tools like create_project and edit_screen by indicating a read-only enumeration operation.
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—call this to retrieve all Stitch projects—but provides no explicit guidance on when to choose it over alternatives or mention any preconditions. Since it is a simple list operation, the implied usage is acceptable but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_project_filesB
Maps a specific screen from a project to a local file path. Use this to save UI designs directly into the user's workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute or relative file path to save the HTML (e.g., 'src/components/MyComponent.html') | |
| screenId | Yes | The ID of the screen | |
| projectId | Yes | The ID of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a file write operation but does not mention potential side effects like overwriting existing files, creating directories, or whether the operation is reversible. This is a significant gap for a tool that writes to the filesystem.
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 two sentences with no wasted words. It front-loads the primary purpose and provides a direct usage instruction, making it easy to parse.
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 file-writing tool with no annotations or output schema, the description is thin. It does not explain return values, prerequisites (e.g., existing project/screen), or edge cases like existing file handling. The simplicity of the parameters doesn't fully excuse this omission.
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%, and each parameter has a description. The description adds minimal value beyond the schema, only clarifying that filePath is for saving UI designs. Since the schema already documents parameter meanings, the baseline of 3 applies.
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 maps a specific screen to a local file path and is used to save UI designs into the user's workspace. This distinguishes it from sibling tools like generate_screen or get_screen_code, which focus on creation or retrieval rather than file-scaffolding. However, it could be more explicit about the generated HTML artifact.
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 a clear context: use this tool to save UI designs directly into the user's workspace. It does not enumerate exclusions or explicitly compare against alternatives, but the use case is unambiguous and sufficient for typical selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.6- First observed
create_project - First observed
edit_screen - First observed
generate_and_fetch_code - First observed
generate_screen - First observed
generate_variants - First observed
get_screen_code - First observed
get_screen_image - First observed
list_projects - First observed
scaffold_project_files
TDQS
Most tools have distinct purposes (list vs create, generate vs edit vs variants, code vs image retrieval). However, `generate_and_fetch_code` overlaps with the combination of `generate_screen` and `get_screen_code`, creating minor ambiguity about which to use for a one-step workflow.
All tool names consistently follow a snake_case verb_noun pattern. Verbs are clear and specific (list, create, generate, edit, get, scaffold). Even the compound `generate_and_fetch_code` follows the same style, making the naming predictable.
Nine tools is well-scoped for the Stitch UI generation domain. Each tool covers a distinct step in the workflow without unnecessary redundancy, and the count feels appropriate for the server's purpose.
Core lifecycle is covered: project creation, screen generation/editing/variants, and retrieval of code and images. However, there is no explicit way to list or delete screens, and no project update/delete endpoints, which are minor gaps for a complete surface.
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
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Serves your design system and coding standards to coding agents, so they stop guessing.
Build, version, review, and export websites, web apps, and games from a conversation.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn intelligent MCP server for Google Stitch that generates production-ready UI from text prompts, with auto-orchestration of design systems, WCAG accessibility, responsive breakpoints, and framework conversion (React, Vue, Svelte).17118MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to generate UI components and web interfaces from natural language descriptions using the Magic Patterns API.144MIT
- FlicenseAqualityDmaintenanceMCP server that gives AI coding agents the ability to design UIs through Google Stitch. It generates production-ready HTML and screenshots from natural language prompts.9-
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered UI/UX design generation and management via Google Stitch, handling OAuth authentication automatically for MCP clients like Claude Code and Cursor.492MIT
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/0x-Professor/Stitch-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server