MCP-UI-Org/mcp-ui
UI over MCP. Create next-gen UI experiences with the protocol and SDK!
What it solves
mcp-ui provides a standardized way to deliver interactive web interfaces for AI tools using the Model Context Protocol (MCP). It solves the problem of AI agents being limited to text-only responses by allowing servers to link tools to rich, sandboxed UI components that can be rendered by a compatible host.
How it works
The project implements the MCP Apps standard, which links tools to their UIs via a _meta.ui.resourceUri.
- Server-side: Developers use SDKs (available in TypeScript, Python, and Ruby) to create UI resources (such as raw HTML or external URLs) and register them. When a tool is called, the server provides a URI that the host can use to fetch the UI content.
- Client-side: Hosts use the
@mcp-ui/clientSDK to render these resources using components likeAppRendererorUIResourceRenderer, which execute the remote code inside a sandboxed<iframe>for security. - Interactivity: UI components can communicate back to the agent via a
postMessageprotocol, allowing buttons or inputs in the UI to trigger tool calls or other actions in the host. - Adapters: Platform-specific adapters translate the open MCP-UI protocol into host-specific APIs (e.g., for ChatGPT's Apps SDK).
Who it’s for
- MCP Server Developers: Those building tools for AI agents who want to provide a visual, interactive experience instead of just text.
- MCP Host Developers: Developers building AI chat interfaces or IDEs that need a standardized way to render third-party tool UIs.
Highlights
- Multi-language Support: Server SDKs for TypeScript, Python, and Ruby.
- Security-First: All remote UI content is executed in sandboxed iframes.
- Standardized: Fully compliant with the MCP Apps specification.
- Cross-Platform: Includes adapters to ensure widgets work across different AI hosts (e.g., Claude, ChatGPT, Goose).
- Flexible Rendering: Supports raw HTML, external URLs, and Remote-DOM.
Related
- Project
- Project
- Project
- Project