Components Build MCP
Implements the components.build specification which uses Radix UI primitives library patterns, including support for the asChild/Slot pattern and composable component structures.
Provides tools for grading, generating, and validating UI components against the components.build specification, which shadcn co-authored and serves as the reference implementation.
Implements the components.build specification (copyright Vercel, Inc.) and provides a Vercel-compatible HTTP API for component grading, generation, and validation.
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., "@Components Build MCPgrade this React button component for accessibility compliance"
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.
components-build-mcp
An MCP (Model Context Protocol) server that implements the components.build specification for grading, generating, and validating UI components.
About
This MCP server provides AI assistants with tools to:
Access the complete components.build specification - The full documentation embedded and searchable
Grade components - Validate any component against the spec's rules
Generate compliant components - Create new components that follow all best practices
Search documentation - Find specific patterns, rules, or concepts
The components.build specification is an open-source standard for building modern, composable, and accessible UI components, co-authored by Hayden Bleasel and shadcn.
Related MCP server: Basecoat UI MCP
Framework Support
Feature | Frameworks Supported |
Specification | Framework-agnostic |
Grading | Framework-agnostic (React, Vue, Svelte, Angular, etc.) |
Templates | React + TypeScript |
The grading rules check for universal patterns (accessibility, composition, data attributes) that apply to any framework.
Installation
For Claude Code / Claude Desktop
npm install -g components-build-mcpAdd to your Claude configuration (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"components-build": {
"command": "components-build-mcp"
}
}
}For Local Development
git clone https://github.com/getlokiui/components-build-mcp.git
cd components-build-mcp
npm install
npm run buildAdd to Claude config with full path:
{
"mcpServers": {
"components-build": {
"command": "node",
"args": ["/path/to/components-build-mcp/dist/index.js"]
}
}
}Available Tools
Documentation Tools
Tool | Description |
| Get the full spec or a specific section |
| Search for terms like "aria", "CVA", "data-slot" |
| List all 16 documentation sections |
Grading & Validation Tools
Tool | Description |
| Grade code and get detailed feedback with score |
| Quick pass/fail check (threshold: 80/100) |
| Get grading rules by category |
| Get details about a specific rule |
| List all rules with severity and weight |
Generation Tools
Tool | Description |
| Generate a compliant component from templates |
| Get reference templates (button, card, input, etc.) |
| Get the cheat sheet |
Usage Examples
Once configured, ask your AI assistant:
"Show me the components.build spec section on accessibility"
"Grade this component against the spec:
export const Button = ({ children }) => <button>{children}</button>"
"Generate a Card component with composable sub-components"
"Search the spec for keyboard navigation patterns"
"What rules does the grader check for?"Specification Sections
The complete components.build specification includes:
Section | Description |
| Introduction and purpose |
| Terminology (Primitive, Component, Block, etc.) |
| Core principles (Composability, Accessibility, etc.) |
| Root/Trigger/Content pattern |
| Complete a11y guide |
| CSS variables and theming |
| Controlled/uncontrolled state |
| cn(), CVA, tailwind-merge |
| TypeScript patterns |
| The "as" prop |
| Radix Slot pattern |
| data-state/data-slot patterns |
| Documentation standards |
| shadcn CLI distribution |
| Component marketplaces |
| NPM distribution |
Grading Rules
Components are graded on:
Types - Extending HTML props, exporting types, spreading props correctly
Styling - Using cn() utility, class order, design tokens
Accessibility - ARIA attributes, keyboard navigation, semantic HTML
Composition - Single element wrapping, composable patterns
State - Supporting controlled and uncontrolled usage
Naming - Following conventions (Root, Trigger, Content, etc.)
HTTP API
A Vercel-compatible HTTP API is also available for non-MCP usage:
# Deploy to Vercel
cd components-build-mcp
vercel --prodEndpoints:
GET /?action=rules- Get all rulesPOST /?action=grade- Grade component codePOST /?action=generate- Generate componentGET /?action=quick-reference- Get cheat sheet
Credits
This project implements the components.build specification.
The specification is:
Copyright 2023 Vercel, Inc.
Co-authored by Hayden Bleasel and shadcn
Licensed under Apache License 2.0
This MCP server is a community project by Audrey Klammer and is not officially affiliated with or endorsed by Vercel, Inc.
License
Apache License 2.0 - See LICENSE for details.
Contributing
Contributions are welcome! Please read the components.build specification first to understand the patterns and rules.
Links
components.build - The specification
shadcn/ui - Reference implementation
Radix UI - Primitives library
getlokiui - Component library built on this spec
Available Tools
11 toolscheck_complianceC
Quick check if component code is compliant (score >= 80)
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The component source code to check |
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 mentions a 'quick check' and a compliance threshold ('score >= 80'), but lacks details on what 'compliant' means, how the score is calculated, error handling, or response format. This is inadequate for a tool with no annotation coverage, leaving key behaviors unspecified.
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, efficient sentence: 'Quick check if component code is compliant (score >= 80)'. It is front-loaded with the core purpose and includes essential context (the threshold). There is no wasted verbiage, making it highly concise 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?
Given no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., scoring method, error cases), output format, and usage context relative to siblings. For a compliance-checking tool with one parameter, this minimal description leaves too many gaps for effective agent 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?
The input schema has 100% description coverage, with one parameter 'code' documented as 'The component source code to check'. The description adds no additional parameter semantics beyond this, such as code format or length constraints. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the heavy lifting.
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 purpose: 'Quick check if component code is compliant (score >= 80)'. It specifies the verb ('check'), resource ('component code'), and success criterion ('score >= 80'). However, it doesn't explicitly differentiate from sibling tools like 'grade_component', which might perform a similar function with different scoring or output.
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. It doesn't mention sibling tools like 'grade_component' or 'get_rule', nor does it specify prerequisites, such as needing code input or when a quick check is appropriate versus a detailed analysis. Usage 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.
generate_componentC
Generate a new component that follows all rules. Choose a template type or customize.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Component name (e.g., "Button", "Card", "Dialog") | |
| template | Yes | Template type to use | |
| element | No | HTML element to wrap (for basic template) | |
| hasVariants | No | Include CVA variants (for basic template) | |
| variants | No | Variant names (e.g., ["default", "secondary", "destructive"]) | |
| sizes | No | Size names (e.g., ["sm", "md", "lg"]) |
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 states the tool generates a component following rules, but doesn't explain what 'follows all rules' entails, whether it creates files or modifies existing ones, what permissions are needed, or what the output looks like. For a creation tool with zero annotation coverage, this is a significant gap in 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, efficient sentence that front-loads the core purpose ('generate a new component') and adds a brief instruction. There's no wasted verbiage, but it could be slightly more structured by separating the rule-following aspect from the template choice 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 the complexity of a 6-parameter creation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, output format, error handling, or how 'follows all rules' is enforced. The high schema coverage helps, but for a generative tool, more context is needed to understand its full operation and implications.
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 schema already documents all 6 parameters thoroughly. The description adds minimal value beyond the schema, only implying that parameters relate to template selection or customization. It doesn't provide additional context like parameter interactions or examples, but the high schema coverage justifies a 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?
The description clearly states the action ('generate a new component') and the resource ('component'), specifying it must follow all rules. It distinguishes from siblings like 'grade_component' or 'get_template' by focusing on creation rather than evaluation or retrieval. However, it doesn't explicitly differentiate from all siblings, such as 'check_compliance' which might involve rule-following.
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 minimal guidance: it mentions choosing a template type or customizing, but offers no explicit context on when to use this tool versus alternatives like 'get_template' or 'grade_component'. There's no mention of prerequisites, dependencies, or scenarios where this tool is preferred over others, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quick_referenceB
Get a quick reference cheat sheet for component development
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 mentions 'Get' which implies a read operation, but doesn't specify if it's safe, requires authentication, has rate limits, or what the output format might be. This leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the cheat sheet contains, how it's formatted, or any behavioral traits like safety or performance. For a tool with no structured data to rely on, more context is needed to fully understand its 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?
The tool has zero parameters, and the schema description coverage is 100%, so there's no need for the description to add parameter details. The baseline score for zero parameters is 4, as the description doesn't need to compensate for any missing schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('quick reference cheat sheet for component development'), making the purpose understandable. However, it doesn't differentiate this tool from sibling tools like 'get_specification' or 'get_template', which might also provide reference materials, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_specification' or 'get_template', nor does it mention any prerequisites or context for usage. It only states what the tool does, without indicating appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ruleC
Get details about a specific rule by ID
| Name | Required | Description | Default |
|---|---|---|---|
| ruleId | Yes | The rule ID (e.g., "extends-html-props", "has-data-slot") |
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 states a read operation ('Get details'), which implies it's likely safe and non-destructive, but doesn't address potential errors (e.g., invalid rule IDs), authentication needs, rate limits, or return format. This leaves significant gaps for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently conveys the essential information without unnecessary elaboration.
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 and no output schema, the description is insufficient. It doesn't explain what 'details' are returned (e.g., rule metadata, compliance criteria), error handling, or how it differs from sibling tools. This leaves the agent with incomplete context for effective 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?
The schema description coverage is 100%, with the single parameter 'ruleId' well-documented in the schema. The description adds no additional meaning beyond what the schema provides, such as example usage or edge cases. Given high schema coverage, the 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 ('Get details') and resource ('specific rule by ID'), making the purpose understandable. However, it doesn't distinguish this from sibling tools like 'get_rules' or 'list_rules', which likely retrieve multiple rules rather than a single one by ID.
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 such as 'get_rules' or 'list_rules'. It mentions 'by ID' but doesn't clarify prerequisites or contexts where this is preferred over other retrieval methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rulesB
Get component rules documentation. Use this to understand what rules exist and how to follow them. Can filter by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter rules by category | |
| format | No | Output format |
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 this is a 'Get' operation (implying read-only) and mentions filtering/output format, but doesn't disclose behavioral aspects like whether it returns all rules by default, pagination behavior, error conditions, or authentication requirements. The description provides basic intent but lacks operational details.
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 appropriately concise (two sentences) and front-loaded with the core purpose. Every sentence adds value: first states the action and goal, second adds filtering capability. No wasted words, though it could be slightly more 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 read operation with 2 optional parameters and 100% schema coverage but no output schema, the description provides adequate context about what the tool does and filtering options. However, it doesn't describe the return format or structure (beyond the format parameter), which would be helpful since there's no output schema. The description is minimally complete but could better address output expectations.
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 schema already fully documents both parameters with descriptions and enums. The description mentions filtering by category and implies format selection ('Can filter by category'), but adds no additional semantic context beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.
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 purpose: 'Get component rules documentation' (verb+resource). It specifies the scope ('understand what rules exist and how to follow them') and mentions filtering capability, but doesn't explicitly distinguish it from siblings like 'get_rule' or 'list_rules'.
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 context ('understand what rules exist and how to follow them') and mentions filtering, but doesn't provide explicit guidance on when to use this tool versus alternatives like 'get_rule' (singular) or 'list_rules'. No when-not-to-use or prerequisite information is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_specificationB
Get the FULL components.build specification documentation. This is the complete guide to building modern UI components by Hayden Bleasel and shadcn. Use this to understand the complete philosophy, patterns, and best practices.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | Specific section to retrieve (optional). Available sections: overview, definitions, principles, composition, accessibility, designTokens, state, styling, types, polymorphism, asChild, dataAttributes, docs, registry, marketplaces, npm |
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 mentions retrieving 'FULL' documentation and that it's 'complete', which hints at comprehensiveness, but doesn't disclose behavioral traits such as response format, pagination, error handling, or performance considerations. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
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 and front-loaded, with two sentences that efficiently convey the tool's purpose and intended use. Every sentence adds value, though it could be slightly more structured by explicitly separating purpose from usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and a simple input schema, the description is adequate but incomplete. It covers the purpose and high-level context but lacks details on behavior, output format, or error handling, which are important for a documentation retrieval tool. It's minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'section' parameter well-documented including optional status and available values. The description adds no parameter-specific information beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating with additional semantics.
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 purpose: 'Get the FULL components.build specification documentation' and identifies it as 'the complete guide to building modern UI components'. It specifies the resource (specification documentation) and verb (get), though it doesn't explicitly differentiate from sibling tools like 'get_quick_reference' or 'list_specification_sections'.
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 context by stating this is for 'understanding the complete philosophy, patterns, and best practices', suggesting it's comprehensive. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_quick_reference' or 'list_specification_sections', nor does it provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateC
Get a component template for reference
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | Template name |
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 states the tool gets a template 'for reference', implying a read-only operation, but doesn't specify if it's safe, if authentication is needed, what the output format is, or any error conditions. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. There's no wasted verbiage, and it earns its place by conveying the essential function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves data. It doesn't explain what 'for reference' entails, what the return value looks like, or any limitations. With no structured fields to compensate, the description should provide more context about the tool's behavior and output, but it falls short.
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 description doesn't add any parameter details beyond what the input schema provides. With 100% schema description coverage, the schema fully documents the single parameter 'template' with its enum values. The description doesn't explain what a 'component template' is or how the parameter relates to it, so it meets the baseline of 3 without adding extra value.
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's purpose as 'Get a component template for reference', which includes a verb ('Get') and resource ('component template'), making it clear what it does. However, it doesn't differentiate from siblings like 'get_quick_reference' or 'get_specification', leaving ambiguity about when to use this specific tool versus others that also retrieve reference materials.
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. With siblings like 'get_quick_reference' and 'get_specification', there's no indication of whether this is for templates only, what context it's suited for, or any prerequisites. It relies entirely on the agent to infer usage from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grade_componentB
Grade a component against all rules. Returns a score, grade, violations, and suggestions for fixes.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The component source code to grade | |
| verbose | No | Include detailed violation information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the return values (score, grade, violations, suggestions) but lacks details on behavioral traits such as performance implications, error handling, or whether grading is idempotent. For a tool with no annotations, this leaves significant gaps in understanding how it behaves beyond basic output.
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, efficient sentence that front-loads the core action and output, with zero wasted words. It directly communicates the tool's purpose and results without unnecessary elaboration, making it easy to parse quickly.
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 annotations, no output schema, and 2 parameters with full schema coverage, the description is minimally adequate. It covers the basic purpose and output but lacks depth on usage context, behavioral details, or integration with sibling tools. For a grading tool with potential complexity, more completeness would be beneficial.
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 schema already documents both parameters ('code' and 'verbose'). The description adds no additional meaning beyond what the schema provides, such as explaining the grading process or how 'verbose' affects output. Baseline 3 is appropriate when the schema handles parameter documentation adequately.
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 ('Grade') and resource ('a component against all rules'), specifying what the tool does. It distinguishes from siblings like 'check_compliance' or 'get_rule' by focusing on grading with comprehensive rule evaluation. However, it doesn't explicitly differentiate from 'check_compliance' which might have overlapping 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?
The description provides no guidance on when to use this tool versus alternatives like 'check_compliance' or 'list_rules'. It mentions grading against 'all rules' but doesn't specify prerequisites, context, or exclusions, leaving the agent to infer usage scenarios without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rulesB
List all available rules with their IDs, names, and categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 states the tool lists rules with specific attributes, but lacks details on permissions required, pagination behavior, rate limits, or whether the operation is safe (read-only). For a list operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond its basic function.
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, efficient sentence that front-loads the core action ('List all available rules') and specifies the returned attributes. There is no wasted verbiage, repetition, or unnecessary elaboration, making it highly concise and well-structured for quick understanding.
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 (0 parameters, no output schema, no annotations), the description is adequate for a basic list operation. It covers the purpose and output attributes, but lacks behavioral context like safety or performance traits. Without annotations or output schema, the description does the minimum viable job but could be more complete by addressing missing behavioral aspects.
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 parameters with 100% coverage, meaning there are no parameters to document. The description correctly implies no filtering parameters by stating 'all available rules', adding value by clarifying the tool's scope. This aligns with the schema's empty properties, so the description compensates appropriately for the lack of 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 verb ('List') and resource ('all available rules') along with specific attributes returned (IDs, names, categories). It distinguishes from siblings like 'get_rule' (singular) and 'get_rules' (potentially filtered) by emphasizing 'all available' without filtering parameters. However, it doesn't explicitly differentiate from 'search_specification' which might overlap in scope.
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 'get_rules' or 'search_specification'. The description implies a comprehensive listing, but there's no explicit mention of prerequisites, when-not-to-use scenarios, or comparison to sibling tools that might offer filtered or specific rule retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_specification_sectionsB
List all available sections in the components.build specification
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 states the tool lists sections but doesn't describe how it behaves—e.g., whether it returns a simple list, includes metadata, has pagination, or requires authentication. For a tool with zero annotation coverage, this is a significant gap in 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, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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 (0 parameters, no output schema), the description is minimally adequate but lacks completeness. It doesn't cover behavioral aspects like return format or error handling, which are important even for simple tools. With no annotations and no output schema, more context would be helpful for reliable 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?
The tool has 0 parameters, and schema description coverage is 100% (though empty). With no parameters to document, the description doesn't need to add parameter semantics beyond what the schema provides. A baseline of 4 is appropriate as the description doesn't mislead about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all available sections') and the target resource ('in the components.build specification'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'get_specification' or 'search_specification' that might also relate to specification content, which prevents a perfect score.
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. It doesn't mention prerequisites, appropriate contexts, or exclusions, nor does it reference sibling tools like 'get_specification' that might overlap in functionality. This leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_specificationB
Search the components.build specification for a specific term or concept. Returns matching sections and context.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The term or concept to search for (e.g., "aria", "keyboard", "CVA", "asChild") |
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 states the tool 'Returns matching sections and context,' which hints at output behavior, but lacks details on permissions, rate limits, error handling, or whether it's read-only. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its operational traits.
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 highly concise and front-loaded, consisting of two clear sentences: one stating the purpose and one stating the return behavior. Every word earns its place, with no redundant or vague language, making it easy for an agent to parse quickly.
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 low complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and return hint, but lacks output details (e.g., format of 'matching sections and context'), usage context, or behavioral constraints, which could hinder an agent's ability to use it effectively without trial and error.
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 the input schema fully documenting the single 'query' parameter. The description adds minimal value beyond the schema by implying the query is for 'a specific term or concept,' but doesn't provide additional syntax, format, or usage examples. This meets the baseline score of 3 when schema coverage is high.
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 purpose: 'Search the components.build specification for a specific term or concept.' It specifies the verb ('search'), resource ('components.build specification'), and action ('for a specific term or concept'). However, it doesn't explicitly differentiate from sibling tools like 'get_specification' or 'list_specification_sections', which might also retrieve specification content.
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. It doesn't mention sibling tools like 'get_specification' (which might fetch the entire specification) or 'list_specification_sections' (which might list sections without searching), leaving the agent to infer usage based on the 'search' keyword alone.
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 there is some overlap between get_rules and list_rules, as both deal with rules documentation, which could cause confusion. However, descriptions clarify that get_rules provides detailed documentation with filtering, while list_rules offers a summary list, helping to mitigate ambiguity.
Tool names follow a consistent verb_noun pattern throughout, such as check_compliance, generate_component, get_quick_reference, and grade_component. This predictability makes it easy for agents to understand and select tools without confusion.
With 11 tools, the server is well-scoped for its purpose of component development and compliance. Each tool serves a specific function, from generating and grading components to accessing documentation, ensuring a comprehensive toolset without being overwhelming.
The tool surface covers key aspects like component generation, compliance checking, grading, and extensive documentation access. A minor gap is the lack of tools for updating or deleting components, but agents can likely work around this given the server's focus on development and compliance rather than full 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
Live React design-system APIs, patterns, and code validation so AI agents build real UI, not slop.
Accessibility compliance for AI coding tools. WCAG 2.2 reviews with shared evidence.
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
Serves your design system and coding standards to coding agents, so they stop guessing.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI-powered generation, customization, and documentation of its-just-ui React components. Provides tools for component generation, theme management, form creation, responsive layouts, and accessibility guidance.9304MIT
- AlicenseAqualityDmaintenanceProvides access to 77 pre-built, accessible Basecoat CSS UI components across forms, navigation, feedback, interactive, and layout categories, enabling AI assistants to retrieve HTML components and usage documentation for building user interfaces.7223MIT
- FlicenseAqualityDmaintenanceProvides AI assistants with frontend development tools including component scaffolding, bundle analysis, accessibility checks, and responsive design guidance. Enables automated generation of React components with tests and stories, bundle optimization recommendations, and WCAG compliance fixes.6-
- FlicenseAqualityDmaintenanceProvides AI assistants with direct access to shadcn/ui components and blocks, enabling real-time fetching of component source code, documentation, and implementation examples.4304-
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/getlokiui/components-build-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server