Skip to content

[RFC] UI Component Integration in MCP Responses #35

@olaservo

Description

@olaservo

Problem Statement

Currently, MCP interactions are limited to text, images, and audio responses. This creates a significant limitation for building rich, interactive user experiences with MCP servers. The community has expressed strong interest in enabling UI components within tool responses to support complex workflows, forms, interactive data visualization, and guided user interactions.

Specific Implementation Challenges

  1. Limited Interaction Patterns: Current MCP responses cannot support interactive forms, buttons, tables with sorting/filtering, or multi-step workflows
  2. Custom DSL Proliferation: Developers are creating ad-hoc solutions like JSONSchema-based forms or notification systems, leading to inconsistent approaches
  3. Breaking MCP Contract: Workarounds often require stepping outside the MCP protocol, reducing interoperability
  4. Developer Experience: Building meaningful interactive flows requires duplicating logic across tools and frontends

Real-World Use Cases

  • Interactive dashboards for system monitoring
  • Dynamic forms for data collection and validation
  • Step-by-step guided workflows
  • Rich data visualization with user controls
  • Multi-step approval processes

Current State

A community member (idosal) has developed a working implementation:

  • Library: @mcp-ui/client (experimental, community-maintained)
  • URI Scheme: ui:// and ui-app:// for embedded resources
  • Implementation: Fork of MCP Inspector with UI rendering capabilities

Interests vs Positions

Community Interests

  • Security: Ensure UI rendering doesn't introduce XSS or injection vulnerabilities
  • Interoperability: Maintain MCP protocol compatibility across implementations
  • Developer Experience: Provide rich, interactive capabilities without breaking existing patterns
  • Standards: Establish consistent approaches rather than fragmented solutions
  • Innovation: Enable new categories of MCP applications and use cases

Current Positions Being Advocated

  • Official integration into MCP Inspector (rejected)
  • Community fork maintenance approach (current)
  • Plugin architecture for extensibility (proposed)
  • Protocol-level UI support (under consideration)

Related Work


Sources: Discord, original Inspector PR discussion

Sub-issues

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Draft

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions