GitShow/modelcontextprotocol/ext-apps
modelcontextprotocol

ext-apps

Official repo for spec & SDK of MCP Apps protocol - standard for UIs embedded AI chatbots, served by MCP servers

by modelcontextprotocol
aiappsmcpmcp-appsmodelcontextprotocolui
Star on GitHubForkWebsitenpm

TypeScript

2.5k stars325 forks40 contributorsActive · 2w agoSince 2025v1.7.4

Meet the team

See all 40 on GitHub →
ochafik
ochafik277 contributions
jonathanhefner
jonathanhefner174 contributions
antonpk1
antonpk170 contributions
martinalong
martinalong30 contributions
localden
localden26 contributions
idosal
idosal18 contributions
mel-anthropic
mel-anthropic7 contributions
liady
liady6 contributions

Languages

View on GitHub →
TypeScript75%
MDX21.4%
JavaScript3.6%

Commit activity

Last 12 weeks · 35 commits

Full graph →

Community health

5 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct○Issue Template✓PR Template

Recent PRs & issues

Active · Last activity 2w ago
See all on GitHub →
beaufortfrancois
feat: add support for 'tools' permissionOpenPR

Motivation and Context This change adds support for the 'tools' permission from the WebMCP specification, mapping it to the Permission Policy 'tools' feature. How Has This Been Tested? I've tried it locally by adding this code in my files: Then, I used WebMCP - Model Context Tool Inspector extension to verify it was properly registered. Without this PR, registration fails because of the missing on both iframes. Breaking Changes Nope. Types of changes [x] Bug fix (non-breaking change which fixes an issue) [ ] New feature (non-breaking change which adds functionality) [ ] Breaking change (fix or feature that would cause existing functionality to change) [ ] Documentation update Checklist [x] I have read the MCP Documentation [x] My code follows the repository's style guidelines [x] New and existing tests pass locally [x] I have added appropriate error handling [x] I have added or updated documentation as needed (I've assumed schema.json will be part of the documentation) Additional context

beaufortfrancois · 17h ago
fredericbarthelet
Add linkTrustedDomains view propertyOpenPR

Fixes #678 Motivation and Context Provide an app controlled way to advertise in-view links that host MAY allow user to navigate to with minimal user friction (removing confirmation modal on redirection). How Has This Been Tested? In the basic host implementation Breaking Changes None, only added as an optional property Types of changes [ ] Bug fix (non-breaking change which fixes an issue) [x] New feature (non-breaking change which adds functionality) [ ] Breaking change (fix or feature that would cause existing functionality to change) [ ] Documentation update Checklist [x] I have read the MCP Documentation [x] My code follows the repository's style guidelines [x] New and existing tests pass locally [x] I have added appropriate error handling [x] I have added or updated documentation as needed Additional context Removed the override from root in order to be able to up to in basic-host exemple and use the recent class to implement link URL testing against trusted domains.

fredericbarthelet · 19h ago
fredericbarthelet
Clarify host behavior for rendering an MCP App view when the tool result is an error (isError: true)OpenIssue

Summary The spec defines how a host renders a view once a tool with a ui.resourceUri returns, but it doesn't say what a host should do when that tool call returns an error result (isError: true). Hosts are diverging, and I'd like a recommendation (ideally normative) so implementations stay consistent. ChatGPT unmount the view iframe (it was already mounted when the output was received) Claude doesn't mount the view iframe Goose keep the iframe mounted and proceed with rendering as usual. The value is not accessible from the view. What the spec covers today The ui/notifications/tool-result notification and the rendering flow describe the success path (result.content / structuredContent are forwarded to the view). There's ui/notifications/tool-cancelled for cancellation, but nothing addresses a completed tool call whose result has isError: true, e.g.: Questions When a tool result has , should the host skip rendering the view and fall back to the normal error/text presentation? If the view is still rendered, should the host deliver the error via ui/notifications/tool-result (with preserved), via a distinct signal, or not at all? If the same notification is used, how to access the boolean?

fredericbarthelet · 20h ago
Structured data for AI agents

Repository: modelcontextprotocol/ext-apps. Description: Official repo for spec & SDK of MCP Apps protocol - standard for UIs embedded AI chatbots, served by MCP servers Stars: 2519, Forks: 325. Primary language: TypeScript. Languages: TypeScript (75%), MDX (21.4%), JavaScript (3.6%). Homepage: https://apps.extensions.modelcontextprotocol.io/ Topics: ai, apps, mcp, mcp-apps, modelcontextprotocol, ui. Latest release: v1.7.4 (3w ago). Open PRs: 71, open issues: 93. Last activity: 2w ago. Community health: 87%. Top contributors: ochafik, jonathanhefner, antonpk1, martinalong, localden, idosal, mel-anthropic, liady, Avcharov, jerome3o-anthropic and others.

·@ofershap

Replace github.com with gitshow.dev