Starwind UI MCP Server
The Starwind UI MCP Server is a TypeScript-based server that extends AI capabilities for working with Starwind UI components and projects. It allows you to:
Initialize Projects: Set up new Starwind UI projects with specified package managers
Install Components: Generate installation commands for specific UI components with customization options
Update Components: Create commands to update existing components
Access Documentation: Retrieve links to Starwind UI documentation (overviews, guides, references)
Fetch LLM Data: Retrieve data from starwind.dev with built-in caching and rate limiting
Detect Package Manager: Identify the package manager (npm, yarn, pnpm) used in a project
Provides integration with Windsurf (a Codeium product), allowing setup of the MCP server for enhanced AI capabilities when working with Starwind UI components
Detects and uses npm package manager for component installation and updates through the get_package_manager tool
Uses pnpm as the default package manager for the project, with built-in detection and support for handling Starwind UI components
Implements the MCP server using TypeScript, providing type-safe tools for working with Starwind UI components and documentation
Supports Yarn package manager detection and usage for managing Starwind UI component installation and updates
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., "@Starwind UI MCP Servershow me how to install the Button component"
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.
A TypeScript Model Context Protocol server for Starwind UI v3 and Starwind Pro. It gives AI clients current, framework-aware guidance for Astro and React projects.
Quick start
For the maintained client setup guide, see the Starwind UI MCP documentation.
Codex (~/.codex/config.toml):
[mcp_servers.starwind_ui]
command = "npx"
args = ["-y", "@starwind-ui/mcp"]
enabled = trueClaude Code (.mcp.json) or Cursor (.cursor/mcp.json):
{
"mcpServers": {
"starwind-ui": {
"command": "npx",
"args": ["-y", "@starwind-ui/mcp"]
}
}
}Restart the client or reload its MCP servers after changing the configuration.
Related MCP server: shadcn-ui MCP Server
v3 model
Starwind UI v3 has three related surfaces. The MCP keeps them distinct:
Surface | What it represents | MCP behavior |
Styled components | Copy-owned UI components with Astro and/or React implementations | Search and install with |
Primitives | Lower-level Astro and React adapters, backed by Starwind Runtime where applicable | Search with |
Runtime | Framework-neutral behavior APIs | Fetch with |
The server validates these layers against the versioned ai-manifest.json, caches validated data, and falls back to a bundled v3 snapshot if the site is unavailable.
Tools
Tool | Purpose |
| Generate v3 initialization commands for an existing Astro or React project. Pro is opt-in. |
| Validate requests and generate installation or deferred-install commands for styled components, primitives, or Astro-only Pro blocks. |
| Search styled components, primitives, and Pro blocks with framework metadata and filters. |
| Resolve exact component, primitive, Runtime, migration, and framework documentation. |
| Inspect a project and generate safe, interactive-first v2-to-v3 migration guidance. |
Tool calls return both readable JSON text and MCP structuredContent.
Requirements and behavior
Generated v3 CLI commands require Node.js 22.12.0 or newer.
starwind_inittargets existing Astro 5+ or React 18+ projects and lets the CLI auto-detect the framework unlessframeworkis supplied.Free
@starwind-pro/*catalog blocks work after ordinary initialization. Paid blocks require explicit authorization; passpro: trueonly when it is required.Starwind Pro blocks currently target Astro. React searches omit them, and React add requests reject them explicitly.
Migration is interactive by default. Set
yes: trueonly when backup-and-overwrite behavior is intended.Package-manager and project context are detected locally when possible, and add commands pass the resolved package manager to the CLI. No tool executes the generated command.
Upgrading from free to Pro
The MCP keeps Pro discoverable without forcing paid setup. Search results link to the Pro catalog, free Pro blocks remain directly installable, and paid results include a structured proUpgrade path with purchase and installation links.
For an existing Astro project, the MCP recommends:
pnpm dlx starwind@latest setup --yesThe setup command auto-detects the project's package manager, so it does not need a --package-manager flag. It prepares the Pro registry and .env.local; replace the STARWIND_LICENSE_KEY placeholder with the purchased key, then run the returned deferredCommand. Treat the key as sensitive: keep .env.local out of source control and never expose the key in logs or client-side code. A project initialized with pro: true receives the equivalent init --pro command instead.
Development
pnpm build
pnpm lint
pnpm test:runRun the opt-in production manifest contract test with:
RUN_LIVE_CONTRACT_TESTS=1 pnpm test:run src/utils/starwind_live_contract.test.tsLicense
MIT. See LICENSE.
Security
Available Tools
5 toolsstarwind_addA
Generates validated Starwind UI v3 install commands for styled components, vendored primitives, or Starwind Pro blocks, with optional Astro or React targeting.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Primitive destination passed to --to. | |
| cwd | No | ||
| pro | No | Configure paid Pro authorization during optional init. | |
| init | No | Prepend project initialization for a new setup. | |
| surface | No | Defaults to styled. | |
| framework | No | Optional framework override. | |
| overwrite | No | Allow the CLI to overwrite existing files. | |
| components | Yes | Names to install, or a single 'all'/'--all' item. | |
| packageManager | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Structured Starwind installation result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states 'generates validated... commands' but does not clarify whether the tool only outputs commands or also executes them. Parameters like 'init' and 'overwrite' suggest potential side effects, yet the description omits any discussion of safety, authentication, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose without unnecessary words. Every element 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?
The tool has 9 parameters and an output schema. While the description covers the high-level purpose, it lacks details on parameter relationships, the fact that 'components' can be 'all', and whether the tool executes commands or just generates them. The output schema exists, so return values are not missing, but the behavioral and contextual gaps reduce 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?
Schema description coverage is 78%, so the schema already documents most parameters. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate as the description does not improve understanding of the two undocumented parameters (cwd, packageManager).
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 ('generates') and resource ('validated Starwind UI v3 install commands') and clearly distinguishes from siblings like starwind_init (initialization) and starwind_search (search) by focusing on component installation with optional framework targeting.
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 use for adding components after setup, but does not explicitly state when to use this tool versus starwind_init or starwind_migrate. No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
starwind_docsB
Fetches current Starwind UI v3 documentation across styled components, primitives, Runtime, migration, and Astro or React framework guides.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Use the full aggregate reference when no exact page is found. | |
| topic | No | ||
| surface | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Structured Starwind documentation result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. The word 'Fetches' implies a safe, read-only operation, but the description does not explicitly state that it produces no side effects, requires authentication, or has any rate limits. This is adequate but lacks the explicitness needed for agents to confidently assess risk.
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 that leads with the verb 'Fetches' and immediately conveys the resource. It packs multiple categories without wasted words. While slightly long due to enumeration, every clause adds relevant scope. No unnecessary repetition.
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 presence of an output schema (so return values need not be detailed) and the absence of annotations, the description covers the tool's scope adequately. However, it omits guidance on how the 'full' parameter differs from a non-full request, when to use different surfaces, and how to combine parameters effectively. The context is sufficient for basic use but lacks depth for complex queries.
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 low (33%: only the 'full' parameter has a description). The description adds contextual meaning by enumerating categories that align with the 'surface' enum values, helping an agent understand what each surface likely refers to. However, 'topic' remains entirely undefined, and the relationship between 'topic' and 'surface' is not clarified. The description partially compensates for the schema gap but leaves ambiguity.
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 ('Fetches'), the resource ('current Starwind UI v3 documentation'), and the scope across multiple categories (styled components, primitives, Runtime, migration, framework guides). This sharply distinguishes it from sibling tools like starwind_init, starwind_add, starwind_search, or starwind_migrate, which serve different purposes.
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 the sibling tool starwind_search, or when to avoid it. It lists what the tool fetches but does not explain prerequisites, exclusion criteria, or the relationship between the surface enum values and the listed categories. An agent must guess the intended usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
starwind_initA
Generates a Starwind UI v3 initialization command for an existing Astro or React project. The CLI auto-detects the framework unless an override is provided. Paid Pro authorization is opt-in and currently targets Astro.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Project directory used for package manager and framework detection. | |
| pro | No | Configure paid Starwind Pro authorization. Defaults to false. | |
| framework | No | Optional CLI framework override. | |
| packageManager | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Structured Starwind initialization result. |
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 generates a command (not directly modifying anything), mentions auto-detection behavior, and notes Pro is opt-in targeting Astro. This is strong coverage of behavioral effects, missing only potential side effects or return format.
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, no filler. Front-loaded with the core action, then specifics on auto-detection and Pro. Every sentence adds value.
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 output schema exists (not shown but flagged as present), the description does not need to detail return values. It covers generation scope, framework detection, and Pro behavior. Completeness is high; minor gap could be a note that this does not install dependencies or modify files directly.
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% (3 of 4 parameters described). The description adds context that 'pro' is opt-in and targets Astro, and that 'framework' override is optional. The 'packageManager' parameter lacks any description enrichment, but the overall additive value is moderate.
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 tool generates a Starwind UI v3 initialization command for existing Astro or React projects. This specific verb+resource combination clearly distinguishes it from siblings like 'starwind_add', 'starwind_search', 'starwind_docs', and 'starwind_migrate'.
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 mentions CLI auto-detects the framework unless overridden, and that Pro authorization is opt-in targeting Astro. This provides clear context for when to override vs. not, though it does not explicitly state when this tool is preferred over siblings or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
starwind_migrateB
Generates the safe Starwind UI v3 migration command for a legacy Astro project. Interactive migration is the default; non-interactive overwrite behavior must be explicitly requested.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Legacy Starwind project directory to inspect. | |
| yes | No | Add --yes to create a backup and overwrite registered conflicts without prompts. | |
| packageManager | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Structured Starwind migration guidance. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full weight for behavioral disclosure. It reveals that the tool has interactive and non-interactive modes, but omits critical details: what 'safe' means, whether it actually executes migration or just prints a command, what happens during overwrite (backup? destructive?), and any permission or side-effect notifications. Given the complexity of migration, 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?
Two sentences, front-loaded with purpose. Every word earns its place. No fluff or redundancy. The structure efficiently communicates the core action and key behavioral choice.
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 an output schema being present, the description leaves major ambiguities: does the tool execute migration or just output a command? How does the packageManager parameter affect behavior? What is the interactive workflow? The description is too sparse for an agent to reliably invoke the tool, especially given the absence of annotations to provide safety cues.
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 67% (cwd and yes have descriptions, packageManager does not). The main description adds no parameter information beyond the schema. For packageManager, there is no description in either the schema or the description, leaving the agent unaware of its role. The description fails to compensate for the missing 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 generates a migration command for a specific context ('Starwind UI v3 migration command for a legacy Astro project'). The verb 'generates' and resource 'migration command' are precise. The interactive vs. non-interactive nuance further clarifies behavior. This easily distinguishes it from sibling tools like starwind_init or starwind_add.
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 hints at usage context (legacy Astro projects) and default behavior (interactive), but does not explicitly state when NOT to use this tool versus alternatives, nor mention prerequisites or conditions. For example, it is unclear if starwind_migrate should be used over starwind_init for an existing project. The description provides some context but lacks exclusions or comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
starwind_searchC
Searches Starwind UI v3 styled components, Primitive adapters, and Starwind Pro blocks with framework-aware results.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Project directory used to detect existing Pro setup. | |
| plan | No | ||
| limit | No | Pro result limit; defaults to 20 and caps at 50. | |
| query | No | ||
| offset | No | ||
| surface | No | Defaults to all. | |
| category | No | ||
| framework | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Structured layered Starwind search result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full burden for behavioral disclosure. It only states what the tool searches but does not confirm it's read-only, describe side effects, authentication needs, rate limits, or any other behavioral characteristics.
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 efficiently conveys the tool's action and scope. It could be slightly improved by structuring with lists or brief usage notes, but it is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, many without descriptions), the description is insufficient. It does not mention filtering dimensions like surface, category, plan, or how the output is structured, despite the output schema existing. The agent would lack context to leverage all features.
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 low at 38% (3 of 8 parameters have descriptions). The tool description adds no parameter-level meaning beyond the schema's sparse descriptions. It does not explain the role of query, category, offset, plan, or framework in search behavior.
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 searches across specific resources (Starwind UI v3 styled components, Primitive adapters, Starwind Pro blocks) with framework-aware results. This distinguishes it from sibling tools (init, add, docs, migrate) which are not search functions.
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. There is no mention of prerequisites, limitations, or exclusions. The context is purely implicit from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clear, distinct purpose: initialization, adding components, searching, documentation, and migration. The only minor ambiguity is between starwind_init and starwind_add, as both generate CLI commands. However, starwind_init is specifically for project initialization, while starwind_add handles component and block installation, which is a reasonable distinction.
All tools follow a consistent starwind_ prefix followed by an imperative verb (init, add, search, docs, migrate). This is a clean, predictable pattern. The slight deduction is because the imperative verb is not strictly a verb_noun pattern (e.g., starwind_search instead of starwind_search_components), but this is a minor and common stylistic choice.
With 5 tools, the server is very well-scoped. It covers the core actions a developer would need when using the Starwind UI library within an MCP context: initializing, adding components, searching, and migrating. Each tool clearly earns its place, and the count feels appropriate for the scope of managing and interacting with a UI component library.
The tool set covers the primary development workflow: initializing, adding components, searching, accessing documentation, and managing migrations. This provides a comprehensive foundation. The only arguably missing piece might be a tool for direct configuration management or status checks. However, for an MCP interface, this set is remarkably complete and avoids common gaps in lifecycle management.
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
Serves your design system and coding standards to coding agents, so they stop guessing.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Build and manage your design system with AI: tokens, themes, components, icons, Figma and code.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server that helps AI models better understand Vite/Nuxt applications, providing enhanced context awareness for development support.909MIT
- AlicenseAqualityDmaintenanceHelps AI assistants access shadcn/ui component documentation and examples through a TypeScript-based MCP server that provides reference information for component details, usage examples, and search capabilities.461760MIT
- AlicenseAqualityDmaintenanceProvides reference information for shadcn/ui components through a Model Context Protocol server that helps AI assistants access component documentation and examples.4617MIT
- AlicenseAqualityBmaintenanceServer that enables AI assistants to interact with Storybook design systems. Extract component HTML, analyze styles, and help with design system adoption and refactoring.97869MIT
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/starwind-ui/starwind-ui-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server