Skip to main content
Glama
mitsuru

A2UI MCP Server

by mitsuru

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
a2ui_create_surfaceA

Create a new A2UI surface (UI container) for rendering components.

A surface is the top-level container for A2UI components. You must create a surface before adding components to it.

Args:

  • surface_id (string): Unique identifier for the surface

  • catalog_id (string, optional): Component catalog to use

Returns: JSON message confirming surface creation

Example: Create a surface for a booking form: { "surface_id": "booking_form" }

a2ui_update_componentsA

Add or update components on an A2UI surface.

Components are defined as a flat list with ID references. The component tree is built using the 'children' property.

IMPORTANT: You must include a component with id='root' as the entry point.

Available components:

  • Column: Vertical layout container (children: string[])

  • Row: Horizontal layout container (children: string[])

  • Card: Card container with optional title (children: string[], title?: string)

  • Text: Text display (text: string, style?: {...})

  • Button: Clickable button (label: string, variant?: 'primary'|'secondary'|'outlined', action?: string)

  • TextField: Input field (label: string, placeholder?: string, value?: string)

  • Image: Image display (src: string, alt?: string)

  • Divider: Horizontal line

  • Progress: Progress bar (value?: number 0-100, indeterminate?: boolean)

Example - Simple form: { "surface_id": "my_form", "components": [ { "id": "root", "component": "Column", "children": ["title", "name_field", "submit_btn"] }, { "id": "title", "component": "Text", "text": "Contact Form", "style": { "fontSize": 24, "fontWeight": "bold" } }, { "id": "name_field", "component": "TextField", "label": "Your Name", "placeholder": "Enter name..." }, { "id": "submit_btn", "component": "Button", "label": "Submit", "variant": "primary" } ] }

a2ui_update_dataA

Update the data model of an A2UI surface.

The data model provides dynamic values that components can bind to using dataBinding.

Operations:

  • replace: Completely replace the data model

  • merge: Shallow merge with existing data

  • remove: Delete specified keys

Example: { "surface_id": "booking_form", "operation": "merge", "data": { "userName": "John Doe", "selectedDate": "2025-01-15", "guestCount": 4 } }

a2ui_previewA

Open a live preview of all A2UI surfaces in the browser.

The preview auto-updates when you make changes using other a2ui_* tools.

Returns the preview URL that you can share or open manually.

a2ui_clearA

Clear all A2UI surfaces and reset the state.

a2ui_get_stateA

Get the current state of all A2UI surfaces and their components.

a2ui_poll_eventsA

Poll for UI events from the browser (button clicks, text input, etc.).

Events are consumed when polled (unless peek=true). Use this to react to user interactions.

Event types:

  • tap: Button was clicked (payload: { action?: string })

  • change: TextField value changed (payload: { value: string, dataBinding?: string })

Example response: [ { "eventId": "abc-123", "surfaceId": "my_form", "componentId": "submit_btn", "eventType": "tap", "timestamp": 1234567890, "payload": { "action": "submit" } } ]

To enable events on components, set onTap=true (Button) or onChange=true (TextField).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation5/5

Each tool serves a clearly distinct purpose: state inspection, surface creation, component updates, data model updates, preview, reset, and event polling. There is no meaningful overlap or ambiguity between tool responsibilities.

Naming Consistency4/5

All tools share the a2ui_ prefix and most follow a verb_noun pattern such as create_surface, update_components, and poll_events. The exceptions are preview and clear, which lack a noun target, creating a minor inconsistency.

Tool Count5/5

Seven tools is a well-scoped size for a UI surface management server. Each tool addresses a necessary part of the workflow without redundancy or unnecessary expansion.

Completeness4/5

The toolset covers the main surface lifecycle well: create, read, update, preview, reset, and handle events. The main gap is the lack of targeted removal for individual surfaces or components, though a2ui_clear provides a blunt workaround.

Maintenance

ActivityInactive
ResponsivenessNo issues