diff --git a/README.md b/README.md index e1429330..3b437087 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,59 @@ -# @modelcontextprotocol/ext-apps - -[![npm version](https://img.shields.io/npm/v/@modelcontextprotocol/ext-apps.svg)](https://www.npmjs.com/package/@modelcontextprotocol/ext-apps) [![API Documentation](https://img.shields.io/badge/docs-API%20Reference-blue)](https://modelcontextprotocol.github.io/ext-apps/api/) - -This repo contains the SDK and specification for MCP Apps Extension ([SEP-1865](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1865)). + +
+ MCP Apps + MCP Apps +

MCP Apps

+

+ Build interactive UIs for MCP tools — charts, forms, dashboards — that render inline in any compliant chat client. +

+ Why + · + Quickstart + · + API Docs + · + Spec + · + Contributing +

+
+ +

+ CI + License: Apache 2.0 + npm version + npm downloads + GitHub stars + API Documentation +

+ +

+ MCP Apps demo +
Color picker built with MCP Apps, running in Claude +

+ +## Table of Contents + +- [Specification](#specification) +- [Why MCP Apps?](#why-mcp-apps) +- [How It Works](#how-it-works) +- [Getting Started](#getting-started) +- [Using the SDK](#using-the-sdk) +- [Agent Skills](#agent-skills) +- [Examples](#examples) +- [Resources](#resources) +- [Contributing](#contributing) ## Specification +
+ | Version | Status | Link | | -------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------- | | **2026-01-26** | Stable | [specification/2026-01-26/apps.mdx](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx) | -| draft | Development | [specification/draft/apps.mdx](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx) | +| **draft** | Development | [specification/draft/apps.mdx](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx) | + +
MCP Apps are a proposed standard inspired by [MCP-UI](https://mcpui.dev/) and [OpenAI's Apps SDK](https://developers.openai.com/apps-sdk/) to allow MCP Servers to display interactive UI elements in conversational MCP clients / chatbots. @@ -28,34 +72,30 @@ MCP Apps extend the Model Context Protocol by letting tools declare UI resources 3. **Host renders** — The host fetches the resource and displays it in a sandboxed iframe 4. **Bidirectional communication** — The host passes tool data to the UI via notifications, and the UI can call other tools through the host -## Using the SDK +## Getting Started -This SDK serves two audiences: - -### For App Developers - -Build interactive UIs that run inside MCP-enabled chat clients. +```bash +npm install -S @modelcontextprotocol/ext-apps +``` -- **SDK for Apps**: `@modelcontextprotocol/ext-apps` — [API Docs](https://modelcontextprotocol.github.io/ext-apps/api/modules/app.html) -- **React hooks**: `@modelcontextprotocol/ext-apps/react` — [API Docs](https://modelcontextprotocol.github.io/ext-apps/api/modules/_modelcontextprotocol_ext-apps_react.html) +**New here?** Start with the [Quickstart Guide](https://modelcontextprotocol.github.io/ext-apps/api/documents/Quickstart.html) to build your first MCP App. -### For Host Developers +## Using the SDK -Embed and communicate with MCP Apps in your chat application. +The SDK serves three roles: app developers building interactive Views, host developers embedding those Views, and MCP server authors registering tools with UI metadata. -- **SDK for Hosts**: `@modelcontextprotocol/ext-apps/app-bridge` — [API Docs](https://modelcontextprotocol.github.io/ext-apps/api/modules/app-bridge.html) +| Package | Purpose | Docs | +|---------|---------|------| +| `@modelcontextprotocol/ext-apps` | Build interactive Views (App class, PostMessageTransport) | [API Docs →](https://modelcontextprotocol.github.io/ext-apps/api/modules/app.html) | +| `@modelcontextprotocol/ext-apps/react` | React hooks for Views (useApp, useHostStyles, etc.) | [API Docs →](https://modelcontextprotocol.github.io/ext-apps/api/modules/_modelcontextprotocol_ext-apps_react.html) | +| `@modelcontextprotocol/ext-apps/app-bridge` | Embed and communicate with Views in your chat client | [API Docs →](https://modelcontextprotocol.github.io/ext-apps/api/modules/app-bridge.html) | +| `@modelcontextprotocol/ext-apps/server` | Register tools and resources on your MCP server | [API Docs →](https://modelcontextprotocol.github.io/ext-apps/api/modules/server.html) | There's no _supported_ host implementation in this repo (beyond the [examples/basic-host](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-host) example). The [MCP-UI](https://github.com/idosal/mcp-ui) client SDK offers a fully-featured MCP Apps framework used by a few hosts. Clients may choose to use it or roll their own implementation. -## Installation - -```bash -npm install -S @modelcontextprotocol/ext-apps -``` - -### Install Agent Skills +## Agent Skills This repository provides two [Agent Skills](https://agentskills.io/) for building MCP Apps. You can install the skills as a Claude Code plugin: @@ -512,3 +552,7 @@ This configuration rebuilds each server on launch, ensuring your local changes a - [API Documentation](https://modelcontextprotocol.github.io/ext-apps/api/) - [Specification (2026-01-26)](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx) ([Draft](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx)) - [SEP-1865 Discussion](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1865) + +## Contributing + +Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to get started, submit pull requests, and report issues. diff --git a/media/claude-colorpicker-apps.gif b/media/claude-colorpicker-apps.gif new file mode 100644 index 00000000..1b64ee9d Binary files /dev/null and b/media/claude-colorpicker-apps.gif differ diff --git a/media/mcp-white.svg b/media/mcp-white.svg new file mode 100644 index 00000000..cacaef5a --- /dev/null +++ b/media/mcp-white.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/media/mcp.svg b/media/mcp.svg new file mode 100644 index 00000000..03d9f85d --- /dev/null +++ b/media/mcp.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + +