Crawler Summary

@modelcontextprotocol/ext-apps answer-first brief

MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients. <!-- LOGO --> <div align="center"> <img src="media/mcp.svg#gh-light-mode-only" alt="MCP Apps" width="128"> <img src="media/mcp-white.svg#gh-dark-mode-only" alt="MCP Apps" width="128"> <h1>MCP Apps</h1> <p> Build interactive UIs for MCP tools — charts, forms, dashboards — that render inline in Claude, ChatGPT and any other compliant chat client. <br /><br /> <a href="#why-mcp-apps">Why</a> · <a href="https://modelcont Published capability contract available. No trust telemetry is available yet. 1.6K GitHub stars reported by the source. Last updated 2/24/2026.

Freshness

Last checked 2/22/2026

Best For

Contract is available with explicit auth and schema references.

Not Ideal For

@modelcontextprotocol/ext-apps is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.

Evidence Sources Checked

editorial-content, capability-contract, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 100/100

@modelcontextprotocol/ext-apps

MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients. <!-- LOGO --> <div align="center"> <img src="media/mcp.svg#gh-light-mode-only" alt="MCP Apps" width="128"> <img src="media/mcp-white.svg#gh-dark-mode-only" alt="MCP Apps" width="128"> <h1>MCP Apps</h1> <p> Build interactive UIs for MCP tools — charts, forms, dashboards — that render inline in Claude, ChatGPT and any other compliant chat client. <br /><br /> <a href="#why-mcp-apps">Why</a> · <a href="https://modelcont

MCPverified

Public facts

7

Change events

1

Artifacts

0

Freshness

Feb 22, 2026

Verifiededitorial-content1 verified compatibility signal1.6K GitHub stars

Published capability contract available. No trust telemetry is available yet. 1.6K GitHub stars reported by the source. Last updated 2/24/2026.

1.6K GitHub starsSchema refs publishedTrust evidence available

Trust score

Unknown

Compatibility

MCP

Freshness

Feb 22, 2026

Vendor

Modelcontextprotocol

Artifacts

0

Benchmarks

0

Last release

1.1.0

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Published capability contract available. No trust telemetry is available yet. 1.6K GitHub stars reported by the source. Last updated 2/24/2026.

Setup snapshot

git clone https://github.com/modelcontextprotocol/ext-apps.git
  1. 1

    Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Modelcontextprotocol

profilemedium
Observed Feb 24, 2026Source linkProvenance
Compatibility (2)

Protocol compatibility

MCP

contracthigh
Observed Feb 24, 2026Source linkProvenance

Auth modes

mcp, api_key

contracthigh
Observed Feb 24, 2026Source linkProvenance
Artifact (1)

Machine-readable schemas

OpenAPI or schema references published

contracthigh
Observed Feb 24, 2026Source linkProvenance
Adoption (1)

Adoption signal

1.6K GitHub stars

profilemedium
Observed Feb 24, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB MCP

Extracted files

0

Examples

5

Snippets

0

Languages

typescript

Executable Examples

text

/plugin marketplace add modelcontextprotocol/ext-apps
/plugin install mcp-apps@modelcontextprotocol-ext-apps

bash

npm install -S @modelcontextprotocol/ext-apps

bash

git clone https://github.com/modelcontextprotocol/ext-apps.git
cd ext-apps
npm install
npm start

json

{
  "mcpServers": {
    "<name>": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-<name>", "--stdio"]
    }
  }
}

json

{
  "mcpServers": {
    "<name>": {
      "command": "bash",
      "args": [
        "-c",
        "cd ~/code/ext-apps/examples/<name>-server && npm run build >&2 && node dist/index.js --stdio"
      ]
    }
  }
}

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB MCP

Docs source

GITHUB MCP

Editorial quality

ready

MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients. <!-- LOGO --> <div align="center"> <img src="media/mcp.svg#gh-light-mode-only" alt="MCP Apps" width="128"> <img src="media/mcp-white.svg#gh-dark-mode-only" alt="MCP Apps" width="128"> <h1>MCP Apps</h1> <p> Build interactive UIs for MCP tools — charts, forms, dashboards — that render inline in Claude, ChatGPT and any other compliant chat client. <br /><br /> <a href="#why-mcp-apps">Why</a> · <a href="https://modelcont

Full README
<!-- LOGO --> <div align="center"> <img src="media/mcp.svg#gh-light-mode-only" alt="MCP Apps" width="128"> <img src="media/mcp-white.svg#gh-dark-mode-only" alt="MCP Apps" width="128"> <h1>MCP Apps</h1> <p> Build interactive UIs for MCP tools — charts, forms, dashboards — that render inline in Claude, ChatGPT and any other compliant chat client. <br /><br /> <a href="#why-mcp-apps">Why</a> · <a href="https://modelcontextprotocol.github.io/ext-apps/api/documents/Quickstart.html">Quickstart</a> · <a href="https://modelcontextprotocol.github.io/ext-apps/api/">API Docs</a> · <a href="https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx">Spec</a> · <a href="CONTRIBUTING.md">Contributing</a> </p> </div> <p align="center"> <a href="https://github.com/modelcontextprotocol/ext-apps/actions/workflows/ci.yml"><img src="https://github.com/modelcontextprotocol/ext-apps/actions/workflows/ci.yml/badge.svg" alt="CI"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="License: Apache 2.0"></a> <a href="https://www.npmjs.com/package/@modelcontextprotocol/ext-apps"><img src="https://img.shields.io/npm/v/@modelcontextprotocol/ext-apps.svg" alt="npm version"></a> <a href="https://www.npmjs.com/package/@modelcontextprotocol/ext-apps"><img src="https://img.shields.io/npm/dm/@modelcontextprotocol/ext-apps.svg" alt="npm downloads"></a> <a href="https://github.com/modelcontextprotocol/ext-apps"><img src="https://img.shields.io/github/stars/modelcontextprotocol/ext-apps" alt="GitHub stars"></a> <a href="https://modelcontextprotocol.github.io/ext-apps/api/"><img src="https://img.shields.io/badge/docs-API%20Reference-blue" alt="API Documentation"></a> </p> <p align="center"> <img src="media/excalidraw.gif" alt="MCP Apps demo" width="600"> <br><em>Excalidraw built with MCP Apps, running in Claude</em> </p>

Table of Contents

Build with Agent Skills

The fastest way to build an MCP App is to let your AI coding agent do it. This repo ships four Agent Skills — install them once, then just ask:

| Skill | What it does | Try it | | --------------------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------- | | create-mcp-app | Scaffolds a new MCP App with an interactive UI from scratch | "Create an MCP App" | | migrate-oai-app | Converts an existing OpenAI App to use MCP Apps | "Migrate from OpenAI Apps SDK" | | add-app-to-server | Adds interactive UI to an existing MCP server's tools | "Add UI to my MCP server" | | convert-web-app | Turns an existing web app into a hybrid web + MCP App | "Add MCP App support to my web app" |

Install the Skills

Claude Code — install via the plugin marketplace:

/plugin marketplace add modelcontextprotocol/ext-apps
/plugin install mcp-apps@modelcontextprotocol-ext-apps

Other agents — any AI coding agent that supports Agent Skills can use these skills. See the agent skills guide for manual installation instructions.

Once installed, verify by asking your agent "What skills do you have?" — you should see create-mcp-app, migrate-oai-app, add-app-to-server, and convert-web-app in the list. Then just ask it to create or migrate an app and it will guide you through the rest.

Supported Clients

<p align="center"> <a href="https://developers.openai.com/apps-sdk/mcp-apps-in-chatgpt/"><img src="https://img.shields.io/badge/ChatGPT-docs-74aa9c?logo=openai&logoColor=white" alt="ChatGPT"></a> <a href="https://claude.com/docs/connectors/building/mcp-apps/getting-started"><img src="https://img.shields.io/badge/Claude-docs-d97706?logo=claude&logoColor=white" alt="Claude"></a> <a href="https://code.visualstudio.com/blogs/2026/01/26/mcp-apps-support"><img src="https://img.shields.io/badge/VS_Code-docs-007ACC?logo=visualstudiocode&logoColor=white" alt="VS Code"></a> <a href="https://block.github.io/goose/docs/tutorials/building-mcp-apps/"><img src="https://img.shields.io/badge/Goose-docs-000000?logo=goose&logoColor=white" alt="Goose"></a> <a href="https://learning.postman.com/docs/postman-ai/mcp-requests/interact"><img src="https://img.shields.io/badge/Postman-docs-FF6C37?logo=postman&logoColor=white" alt="Postman"></a> <a href="https://www.mcpjam.com/blog/mcp-apps-example"><img src="https://img.shields.io/badge/MCPJam-docs-8B5CF6" alt="MCPJam"></a> </p>

[!NOTE] MCP Apps is an extension to the core MCP specification. Host support varies — see the clients page for the full list.

Why MCP Apps?

MCP tools return text and structured data. That works for many cases, but not when you need an interactive UI, like a chart, form, design canvas or video player.

MCP Apps provide a standardized way to deliver interactive UIs from MCP servers. Your UI renders inline in the conversation, in context, in any compliant host.

How It Works

MCP Apps extend the Model Context Protocol by letting tools declare UI resources:

  1. Tool definition — Your tool declares a ui:// resource containing its HTML interface
  2. Tool call — The LLM calls the tool on your server
  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

Getting Started

npm install -S @modelcontextprotocol/ext-apps

New here? Start with the Quickstart Guide to build your first MCP App.

Using the SDK

The SDK serves three roles: app developers building interactive Views, host developers embedding those Views, and MCP server authors registering tools with UI metadata.

| Package | Purpose | Docs | | ------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | | @modelcontextprotocol/ext-apps | Build interactive Views (App class, PostMessageTransport) | API Docs → | | @modelcontextprotocol/ext-apps/react | React hooks for Views (useApp, useHostStyles, etc.) | API Docs → | | @modelcontextprotocol/ext-apps/app-bridge | Embed and communicate with Views in your chat client | API Docs → | | @modelcontextprotocol/ext-apps/server | Register tools and resources on your MCP server | API Docs → |

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

The 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.

Examples

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

<!-- prettier-ignore-start -->

| | | | |:---:|:---:|:---:| | Map | Three.js | ShaderToy | | Map | Three.js | ShaderToy | | Sheet Music | Wiki Explorer | Cohort Heatmap | | Sheet Music | Wiki Explorer | Cohort Heatmap | | Scenario Modeler | Budget Allocator | Customer Segmentation | | Scenario Modeler | Budget Allocator | Customer Segmentation | | System Monitor | Transcript | Video Resource | | System Monitor | Transcript | Video Resource | | PDF Server | QR Code | Say Demo | | PDF Server | QR Code (Python) | Say Demo |

Starter Templates

| | | |:---:|:---| | Basic | The same app built with different frameworks — pick your favorite!<br><br>React · Vue · Svelte · Preact · Solid · Vanilla JS |

<!-- prettier-ignore-end -->

Running the Examples

With basic-host

To run all examples locally using basic-host (the reference host implementation included in this repo):

git clone https://github.com/modelcontextprotocol/ext-apps.git
cd ext-apps
npm install
npm start

Then open http://localhost:8080/.

With MCP Clients

Every Node.js example is published as @modelcontextprotocol/server-<name>. To add one to an MCP client that supports stdio (Claude Desktop, VS Code, etc.), use this pattern:

{
  "mcpServers": {
    "<name>": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-<name>", "--stdio"]
    }
  }
}

For example, to add the map server: @modelcontextprotocol/server-map. The Python examples (qr-server, say-server) use uv run instead — see their READMEs for details.

Local Development

To test local modifications with an MCP client, clone the repo, install, then point your client at a local build:

{
  "mcpServers": {
    "<name>": {
      "command": "bash",
      "args": [
        "-c",
        "cd ~/code/ext-apps/examples/<name>-server && npm run build >&2 && node dist/index.js --stdio"
      ]
    }
  }
}

Specification

<div align="center">

| Version | Status | Link | | -------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------- | | 2026-01-26 | Stable | specification/2026-01-26/apps.mdx | | draft | Development | specification/draft/apps.mdx |

</div>

Resources

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines on how to get started, submit pull requests, and report issues.

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

Verifiedcapability-contract

Contract coverage

Status

ready

Auth

mcp, api_key

Streaming

No

Data region

global

Protocol support

MCP: verified

Requires: mcp, lang:typescript

Forbidden: none

Guardrails

Operational confidence: medium

Contract is available with explicit auth and schema references.
Trust confidence is not low and verification freshness is acceptable.
Protocol support is explicitly confirmed in contract metadata.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
GITLAB_AI_CATALOGgitlab-mcp

Rank

83

A Model Context Protocol (MCP) server for GitLab

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_PUBLIC_PROJECTSgitlab-mcp

Rank

80

A Model Context Protocol (MCP) server for GitLab

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_AI_CATALOGrmcp-openapi

Rank

74

Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_AI_CATALOGrmcp-actix-web

Rank

72

An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)

Traction

No public download signal

Freshness

Updated 2d ago

MCP
Machine Appendix

Contract JSON

{
  "contractStatus": "ready",
  "authModes": [
    "mcp",
    "api_key"
  ],
  "requires": [
    "mcp",
    "lang:typescript"
  ],
  "forbidden": [],
  "supportsMcp": true,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": "https://github.com/modelcontextprotocol/ext-apps#input",
  "outputSchemaRef": "https://github.com/modelcontextprotocol/ext-apps#output",
  "dataRegion": "global",
  "contractUpdatedAt": "2026-02-24T19:46:42.046Z",
  "sourceUpdatedAt": "2026-02-24T19:46:42.046Z",
  "freshnessSeconds": 4436859
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "MCP"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_MCP",
      "generatedAt": "2026-04-17T04:14:21.731Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "MCP",
      "type": "protocol",
      "support": "supported",
      "confidenceSource": "contract",
      "notes": "Confirmed by capability contract"
    }
  ],
  "flattenedTokens": "protocol:MCP|supported|contract"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "MCP",
    "href": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:46:42.046Z",
    "isPublic": true
  },
  {
    "factKey": "auth_modes",
    "category": "compatibility",
    "label": "Auth modes",
    "value": "mcp, api_key",
    "href": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:46:42.046Z",
    "isPublic": true
  },
  {
    "factKey": "schema_refs",
    "category": "artifact",
    "label": "Machine-readable schemas",
    "value": "OpenAPI or schema references published",
    "href": "https://github.com/modelcontextprotocol/ext-apps#input",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:46:42.046Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Modelcontextprotocol",
    "href": "https://github.com/modelcontextprotocol/ext-apps",
    "sourceUrl": "https://github.com/modelcontextprotocol/ext-apps",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "1.6K GitHub stars",
    "href": "https://github.com/modelcontextprotocol/ext-apps",
    "sourceUrl": "https://github.com/modelcontextprotocol/ext-apps",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-modelcontextprotocol-ext-apps/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to @modelcontextprotocol/ext-apps and adjacent AI workflows.