# webmcpui > Framework-agnostic, WebMCP-native web components: accessible form controls an agent can fill and interaction primitives an agent can drive, with Standard Schema validation and design tokens. Each element is a good HTML control first and, when a WebMCP host is present, exposes itself as a tool an agent can call — additive and feature-detected. ## Getting started - [Introduction](https://webmcpui.com/docs): Agent-aware web components for the WebMCP era — framework-agnostic form and interaction primitives with Standard Schema validation. - [Installation](https://webmcpui.com/docs/installation): Add webmcpui to your project with a build tool, or drop a single script tag — no build step required. - [Validation](https://webmcpui.com/docs/validation): Bring any Standard Schema validator — Zod, Valibot, ArkType — and wire it straight into form validation. - [WebMCP exposure](https://webmcpui.com/docs/webmcp): How a form control becomes an imperative WebMCP tool an agent can discover and call. - [Testing](https://webmcpui.com/docs/testing): Exercise WebMCP exposure end-to-end with the bundled fake agent. - [React & Vue](https://webmcpui.com/docs/frameworks): Idiomatic, typed React and Vue components that wrap the core custom elements — with unstyled and SSR guidance. ## Elements - [](https://webmcpui.com/docs/elements/input): A text input — the canonical form control, with type variants, validation, and WebMCP exposure. - [](https://webmcpui.com/docs/elements/textarea): A multi-line text control with the same validation and WebMCP exposure as the input. - [](https://webmcpui.com/docs/elements/select): A native select with declarative options and an enum-typed WebMCP tool schema. - [](https://webmcpui.com/docs/elements/checkbox): A boolean control whose WebMCP tool takes a checked argument. - [](https://webmcpui.com/docs/elements/radio): An accessible radio group with roving focus and an enum-typed WebMCP tool. ## Interaction - [](https://webmcpui.com/docs/elements/button): A themeable button that exposes an action — not a value — for an agent to trigger. - [](https://webmcpui.com/docs/elements/dialog): A modal dialog whose exposed action is opening — the agent surfaces it, the human confirms. - [](https://webmcpui.com/docs/elements/menu): A menu button whose exposed action is parameterized — the agent picks which item. - [](https://webmcpui.com/docs/elements/tabs): A tab set whose exposed action switches a persistent active tab — the first stateful interaction primitive. - [](https://webmcpui.com/docs/elements/popover): A non-modal anchored floating panel — and a tooltip mode — whose exposed action is opening. - [](https://webmcpui.com/docs/elements/toast): A notification region whose agent surface is perceiving, not actuating — the agent reads the toasts the page throws. ## Full text - [llms-full.txt](https://webmcpui.com/llms-full.txt): every doc page concatenated.