@modelcontextprotocol/ext-apps
Advanced tools
@@ -51,3 +51,3 @@ import { z } from "zod"; | ||
| * @internal | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx#sandbox-proxy | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx#sandbox-proxy | ||
| */ | ||
@@ -376,3 +376,3 @@ export declare const McpUiSandboxProxyReadyNotificationSchema: z.ZodObject<{ | ||
| * @internal | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx#sandbox-proxy | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx#sandbox-proxy | ||
| */ | ||
@@ -379,0 +379,0 @@ export declare const McpUiSandboxResourceReadyNotificationSchema: z.ZodObject<{ |
@@ -10,3 +10,3 @@ /** | ||
| * | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx | ||
| */ | ||
@@ -20,3 +20,3 @@ import type { CallToolResult, ContentBlock, Implementation, RequestId, Tool } from "@modelcontextprotocol/sdk/types.js"; | ||
| */ | ||
| export declare const LATEST_PROTOCOL_VERSION = "2025-11-21"; | ||
| export declare const LATEST_PROTOCOL_VERSION = "2026-01-26"; | ||
| /** | ||
@@ -97,3 +97,3 @@ * @description Color theme preference for the host environment. | ||
| * @internal | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx#sandbox-proxy | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx#sandbox-proxy | ||
| */ | ||
@@ -107,3 +107,3 @@ export interface McpUiSandboxProxyReadyNotification { | ||
| * @internal | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx#sandbox-proxy | ||
| * @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx#sandbox-proxy | ||
| */ | ||
@@ -110,0 +110,0 @@ export interface McpUiSandboxResourceReadyNotification { |
+1
-1
@@ -8,3 +8,3 @@ { | ||
| "homepage": "https://github.com/modelcontextprotocol/ext-apps", | ||
| "version": "0.4.2", | ||
| "version": "1.0.0", | ||
| "license": "MIT", | ||
@@ -11,0 +11,0 @@ "description": "MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients.", |
+182
-2
@@ -5,4 +5,11 @@ # @modelcontextprotocol/ext-apps | ||
| This repo contains the SDK and [specification](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx) for MCP Apps Extension ([SEP-1865](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1865)). | ||
| This repo contains the SDK and specification for MCP Apps Extension ([SEP-1865](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1865)). | ||
| ## 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) | | ||
| 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. | ||
@@ -330,2 +337,175 @@ | ||
| #### Local Development | ||
| To test local modifications with MCP clients, first clone and install the repository: | ||
| ```bash | ||
| git clone https://github.com/modelcontextprotocol/ext-apps.git | ||
| cd ext-apps | ||
| npm install | ||
| ``` | ||
| Then configure your MCP client to build and run the local server. Replace `~/code/ext-apps` with your actual clone path: | ||
| <details> | ||
| <summary>MCP client configuration for local development (all examples)</summary> | ||
| ```json | ||
| { | ||
| "mcpServers": { | ||
| "basic-react": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/basic-server-react && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "basic-vanillajs": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/basic-server-vanillajs && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "basic-vue": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/basic-server-vue && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "basic-svelte": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/basic-server-svelte && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "basic-preact": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/basic-server-preact && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "basic-solid": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/basic-server-solid && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "budget-allocator": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/budget-allocator-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "cohort-heatmap": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/cohort-heatmap-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "customer-segmentation": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/customer-segmentation-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "map": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/map-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "pdf": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/pdf-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "scenario-modeler": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/scenario-modeler-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "shadertoy": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/shadertoy-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "sheet-music": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/sheet-music-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "system-monitor": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/system-monitor-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "threejs": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/threejs-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "transcript": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/transcript-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "video-resource": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/video-resource-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "wiki-explorer": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "cd ~/code/ext-apps/examples/wiki-explorer-server && npm run build >&2 && node dist/index.js --stdio" | ||
| ] | ||
| }, | ||
| "qr": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "uv run ~/code/ext-apps/examples/qr-server/server.py --stdio" | ||
| ] | ||
| }, | ||
| "say": { | ||
| "command": "bash", | ||
| "args": [ | ||
| "-c", | ||
| "uv run --index https://pypi.org/simple ~/code/ext-apps/examples/say-server/server.py --stdio" | ||
| ] | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
| </details> | ||
| This configuration rebuilds each server on launch, ensuring your local changes are picked up. | ||
| ## Resources | ||
@@ -335,3 +515,3 @@ | ||
| - [API Documentation](https://modelcontextprotocol.github.io/ext-apps/api/) | ||
| - [Draft Specification](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx) | ||
| - [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) |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
2034970
0.27%6
-14.29%515
53.73%