[GH-ISSUE #20969] feat: Add Host Capability for MCP Apps (Interactive UI Components) #122659

Closed
opened 2026-05-21 01:36:02 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @paulelvers on GitHub (Jan 27, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/20969

Check Existing Issues

  • I have searched for all existing open AND closed issues and discussions for similar requests. I have found none that is comparable to my request.

Verify Feature Scope

  • I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions.

Problem Description

Open WebUI currently supports MCP tools via the Streamable HTTP transport (native in v0.6.31+) and through the MCPO proxy for stdio/SSE transports. However, tool responses are limited to text/structured data. Users cannot benefit from the rich interactive experiences that MCP Apps enables, such as:

Data exploration: Interactive dashboards with filtering, drill-down, and export
Configuration wizards: Dynamic forms with conditional fields
Document review: Inline PDF viewers with annotation capabilities
Real-time monitoring: Live-updating metrics and system status
3D visualizations: Three.js scenes, interactive maps, charts

This limitation means Open WebUI users miss out on a rapidly growing ecosystem of MCP Apps being developed for the standard.

Desired Solution you'd like

Implement MCP Apps host capability in Open WebUI by:

  1. Support UI Resource Resolution

Recognize tools with _meta.ui.resourceUri metadata pointing to ui:// scheme resources
Fetch UI resources from MCP servers via the standard resource API

  1. Sandboxed Iframe Rendering

Render UI content in sandboxed iframes with appropriate security restrictions
Position UI components inline within the conversation flow

  1. Implement the Host-App Communication Protocol

Enable bidirectional JSON-RPC communication via postMessage
Support the App API methods:

ontoolresult - Pass tool results to the UI
callServerTool - Allow UI to invoke server tools
updateModelContext - Let UI update model context
Link opening, event logging, follow-up messages

  1. Security Controls

Pre-render content review/approval (optional admin setting)
Auditable message logging for UI-to-host communication
User consent prompts for UI-initiated tool calls (configurable)

Alternatives Considered

No response

Additional Context

MCP Apps Documentation: https://modelcontextprotocol.io/docs/extensions/apps
Quickstart Guide: https://modelcontextprotocol.github.io/ext-apps/api/documents/Quickstart.html
SDK: @modelcontextprotocol/ext-apps on npm
Example Servers: https://github.com/modelcontextprotocol/ext-apps/tree/main/examples

threejs-server - 3D visualization
map-server - Interactive maps
pdf-server - Document viewing
system-monitor-server - Real-time dashboards

Implementation Guide for Clients: https://modelcontextprotocol.io/docs/extensions/apps

Benefits

Feature parity with Claude, ChatGPT, VS Code, and other major MCP clients
Rich user experiences without leaving the conversation
Access to growing ecosystem of MCP Apps being built by the community
Differentiation from other self-hosted LLM interfaces
Future-proof architecture aligned with the official MCP extension standard

Considerations

Security: The sandboxed iframe model and consent mechanisms should be carefully implemented for multi-tenant deployments
Mobile support: Ensure responsive rendering of UI components on mobile clients
Performance: Lazy-load UI resources to avoid impacting conversation load times
Compatibility: Consider graceful degradation when connecting to MCP servers that don't support Apps

Related Issues/Discussions
This builds on Open WebUI's existing MCP support and would complement the native Streamable HTTP transport added in v0.6.31.

Originally created by @paulelvers on GitHub (Jan 27, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/20969 ### Check Existing Issues - [x] I have searched for all existing **open AND closed** issues and discussions for similar requests. I have found none that is comparable to my request. ### Verify Feature Scope - [x] I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions. ### Problem Description Open WebUI currently supports MCP tools via the Streamable HTTP transport (native in v0.6.31+) and through the MCPO proxy for stdio/SSE transports. However, tool responses are limited to text/structured data. Users cannot benefit from the rich interactive experiences that MCP Apps enables, such as: Data exploration: Interactive dashboards with filtering, drill-down, and export Configuration wizards: Dynamic forms with conditional fields Document review: Inline PDF viewers with annotation capabilities Real-time monitoring: Live-updating metrics and system status 3D visualizations: Three.js scenes, interactive maps, charts This limitation means Open WebUI users miss out on a rapidly growing ecosystem of MCP Apps being developed for the standard. ### Desired Solution you'd like Implement MCP Apps host capability in Open WebUI by: 1. Support UI Resource Resolution Recognize tools with _meta.ui.resourceUri metadata pointing to ui:// scheme resources Fetch UI resources from MCP servers via the standard resource API 2. Sandboxed Iframe Rendering Render UI content in sandboxed iframes with appropriate security restrictions Position UI components inline within the conversation flow 3. Implement the Host-App Communication Protocol Enable bidirectional JSON-RPC communication via postMessage Support the App API methods: ontoolresult - Pass tool results to the UI callServerTool - Allow UI to invoke server tools updateModelContext - Let UI update model context Link opening, event logging, follow-up messages 4. Security Controls Pre-render content review/approval (optional admin setting) Auditable message logging for UI-to-host communication User consent prompts for UI-initiated tool calls (configurable) ### Alternatives Considered _No response_ ### Additional Context MCP Apps Documentation: https://modelcontextprotocol.io/docs/extensions/apps Quickstart Guide: https://modelcontextprotocol.github.io/ext-apps/api/documents/Quickstart.html SDK: @modelcontextprotocol/ext-apps on npm Example Servers: https://github.com/modelcontextprotocol/ext-apps/tree/main/examples threejs-server - 3D visualization map-server - Interactive maps pdf-server - Document viewing system-monitor-server - Real-time dashboards Implementation Guide for Clients: https://modelcontextprotocol.io/docs/extensions/apps Benefits Feature parity with Claude, ChatGPT, VS Code, and other major MCP clients Rich user experiences without leaving the conversation Access to growing ecosystem of MCP Apps being built by the community Differentiation from other self-hosted LLM interfaces Future-proof architecture aligned with the official MCP extension standard Considerations Security: The sandboxed iframe model and consent mechanisms should be carefully implemented for multi-tenant deployments Mobile support: Ensure responsive rendering of UI components on mobile clients Performance: Lazy-load UI resources to avoid impacting conversation load times Compatibility: Consider graceful degradation when connecting to MCP servers that don't support Apps Related Issues/Discussions This builds on Open WebUI's existing MCP support and would complement the native Streamable HTTP transport added in v0.6.31.
Author
Owner

@paulelvers commented on GitHub (Jan 27, 2026):

Issue was written with Claude.

<!-- gh-comment-id:3805933155 --> @paulelvers commented on GitHub (Jan 27, 2026): Issue was written with Claude.
Author
Owner

@spider-yamet commented on GitHub (Jan 29, 2026):

@paulelvers Hope you are doing great, I am so interested in this feature implementation, I just want to know if this issue is open for contributors.
I'd love to work on this issue. Let me submit reasonable approach.

Regards

<!-- gh-comment-id:3817526818 --> @spider-yamet commented on GitHub (Jan 29, 2026): @paulelvers Hope you are doing great, I am so interested in this feature implementation, I just want to know if this issue is open for contributors. I'd love to work on this issue. Let me submit reasonable approach. Regards
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#122659