Provides component intelligence for AI agents building user interfaces. Offers tools to list available A2UI components, retrieve detailed schemas, discover layout patterns, and validate A2UI JSON.
The A2UI Catalog MCP server defines 4 tools with reasonable naming and descriptions, but has critical gaps in schema definition, parameter documentation, and error handling. Tool names follow verb-noun convention (list_, get_, validate_), which is positive. Descriptions are present but lack LLM-optimization specifics. Most critically: input schemas visible in tools.ts show only partial type information, the `AnthropicTool` interface declares `properties: Record<string, unknown>`, which means individual parameter types are not formally declared in the visible source. Parameter descriptions exist but are not comprehensive enough to guide LLM behavior. No output schemas are documented anywhere. Error handling is absent, no guidance on retryability, failure modes, or recovery steps. The tool set is READ_ONLY, which is safe but limits utility. Overall, this is a functional but underdeveloped tool suite typical of early-stage MCP servers.
Get the detailed schema for a specific A2UI component. Returns the component's props, their types, constraints, and usage examples. Use this before using a component to ensure you're using it correctly.
Get pre-built layout patterns for common UI needs. Patterns include: ContactCard, TaskList, LoginForm, ProductCard, SettingsForm, Dashboard, Wizard. Use this to get recommended component compositions for specific use cases.
List all available A2UI components. Use this to discover what UI components you can use. Returns component names, categories, and descriptions. Categories: Layout, Typography, Form Inputs, Feedback, Navigation, Overlays, Data Display, Media
Validate A2UI JSON before generating output. Checks that all components exist, props are valid, and structure is correct. Use this to verify your A2UI JSON is valid before returning it.
Input schemas lack explicit type definitions for parameters. The AnthropicTool interface declares properties as `Record<string, unknown>`, hiding actual parameter types from static analysis. Parameter descriptions in tools.ts exist but are not formally typed in the schema object.
No output schema documentation. Tools return unstructured responses (e.g., 'Returns component names, categories, and descriptions'), but the exact structure, field names, types, and nested objects are not formally defined. LLMs cannot reliably extract or chain results.
Missing error handling and recovery guidance. No tool describes what failures are possible, which are retryable, or how to recover. A validation error in validate_a2ui returns nothing actionable to guide LLM correction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Parameter descriptions are too brief and lack constraint details. 'The component name (e.g., "Button", "Card", "TextField")' in get_component_schema lacks enum constraints or validation rules. LLMs may pass invalid component names, requiring trial-and-error.
No pagination support declared for list_components, though it will likely return a large component catalog. No limit parameter, offset/cursor, or total count field in description. Large unfiltered results will blow context windows.
Tool descriptions contain example values ('Button', 'Card', 'TextField', 'contact', 'login', 'dashboard'). LLMs frequently reuse examples literally rather than adapting to context, causing incorrect tool calls.