mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-16 14:39:31 -05:00
[GH-ISSUE #20969] feat: Add Host Capability for MCP Apps (Interactive UI Components) #122659
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @paulelvers on GitHub (Jan 27, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/20969
Check Existing Issues
Verify Feature Scope
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:
Recognize tools with _meta.ui.resourceUri metadata pointing to ui:// scheme resources
Fetch UI resources from MCP servers via the standard resource API
Render UI content in sandboxed iframes with appropriate security restrictions
Position UI components inline within the conversation flow
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
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.
@paulelvers commented on GitHub (Jan 27, 2026):
Issue was written with Claude.
@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