Mirror of https://github.com/modelcontextprotocol/ext-apps — Official repo for spec & SDK of MCP Apps protocol - standard for UIs embedded AI chatbots, served by MCP servers
  • TypeScript 76.4%
  • MDX 19.3%
  • JavaScript 4.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Olivier Chafik eaea3f9e07
feat: store and expose hostContext in App class (#139)
* feat: store and expose hostContext in App class

Fixes #129 - The App class now stores the initial hostContext received
during initialization and exposes it via getHostContext().

Changes:
- Add _hostContext private property to App class
- Store result.hostContext in connect() method
- Add getHostContext() getter method (parallel to getHostCapabilities())
- Update onhostcontextchanged setter to merge partial updates into
  stored context
- Add default notification handler to update context even when
  user hasn't set onhostcontextchanged

This enables apps to:
- Access toolInfo immediately after connection (only in initial context)
- Render with correct theme/locale without waiting for first notification
- Synchronously access viewport, timezone, and other initial state

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: use sendHostContextChange for partial update accumulation test

Address PR review feedback: The test was using setHostContext with full
context spreads which didn't clearly demonstrate partial update
accumulation. Now uses sendHostContextChange directly to send truly
partial updates (only theme, then only viewport), making it clear
the App correctly merges multiple partial notifications.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-12 00:39:58 +01:00
.github/workflows Preserve existing files on gh-pages during docs deploy 2025-12-09 20:33:29 -06:00
.husky build: auto-generate Zod schemas from TypeScript types using ts-to-zod (#116) 2025-12-10 01:05:49 +01:00
docs Add checkpoints and callouts to quickstart guide (#93) 2025-12-09 16:16:28 +01:00
examples feat: implement ui/notifications/tool-cancelled + add missing App.onteardown (#120) 2025-12-11 20:31:17 +01:00
scripts build: auto-generate Zod schemas from TypeScript types using ts-to-zod (#116) 2025-12-10 01:05:49 +01:00
specification/draft fix: host may request user consent (#126) 2025-12-11 20:07:58 +01:00
src feat: store and expose hostContext in App class (#139) 2025-12-12 00:39:58 +01:00
.gitattributes Track package-lock.json for deterministic builds (#44) 2025-12-01 20:06:32 +00:00
.gitignore Add Three.js marketing example server 2025-12-08 21:19:42 +00:00
.prettierignore Add basic-server-vanillajs example 2025-12-04 14:28:27 -06:00
build.bun.ts npm run prettier:fix 2025-11-23 03:15:06 +00:00
CONTRIBUTING.md release: 0.0.3, switched to npm trusted publishing (#101) 2025-12-09 00:52:52 +01:00
LICENSE add license (#96) 2025-12-08 21:51:19 +01:00
package-lock.json release: 0.1.0 (#137) 2025-12-11 23:21:20 +01:00
package.json release: 0.1.0 (#137) 2025-12-11 23:21:20 +01:00
README.md add npm version badge (#113) 2025-12-09 22:44:00 +01:00
tsconfig.json Initial commit 2025-11-21 11:56:27 +00:00
typedoc.json Add Quickstart guide for building MCP Apps 2025-12-04 14:28:55 -06:00

@modelcontextprotocol/ext-apps

npm version API Documentation

This repo contains the SDK and specification for MCP Apps Extension (SEP-1865).

MCP Apps are a proposed standard inspired by MCP-UI and OpenAI's Apps SDK to allow MCP Servers to display interactive UI elements in conversational MCP clients / chatbots.

Overview

This SDK serves two audiences:

App Developers

Build interactive UIs that run inside MCP-enabled chat clients.

  • SDK for Apps: @modelcontextprotocol/ext-apps — API Docs
  • React hooks: @modelcontextprotocol/ext-apps/react — API Docs

Host Developers

Embed and communicate with MCP Apps in your chat application.

  • SDK for Hosts: @modelcontextprotocol/ext-apps/app-bridge — API Docs

There's no supported host implementation in this repo (beyond the examples/basic-host example).

We have contributed a tentative implementation of hosting / iframing / sandboxing logic to the MCP-UI repository, and expect OSS clients may use it, while other clients might roll their own hosting logic.

Installation

npm install -S @modelcontextprotocol/ext-apps

Or edit your package.json manually:

{
  "dependencies": {
    "@modelcontextprotocol/ext-apps": "^0.0.1"
  }
}

Examples

Start with these foundational examples to learn the SDK:

The examples/ directory contains additional demo apps showcasing real-world use cases.

To run all examples together:

npm install
npm run examples:start

Then open http://localhost:8080/.

Resources