You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: use profile parameter for MIME type instead of suffix (#75)
Change MIME type from `text/html+mcp` to `text/html;profile=mcp-app`
to follow RFC 6838 recommendations for custom media types.
The `+suffix` format (like `text/html+mcp`) is intended for structured
syntax suffixes (e.g., `+json`, `+xml`) that describe the underlying
format. Since MCP Apps doesn't define a new syntax but rather a profile
of HTML, using a profile parameter is more semantically correct.
Fixes#59
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <[email protected]>
Copy file name to clipboardExpand all lines: specification/draft/apps.mdx
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
8
8
## Abstract
9
9
10
-
This SEP proposes an extension (per SEP-1724) to MCP that enables servers to deliver interactive user interfaces to hosts. MCP Apps introduces a standardized pattern for declaring UI resources via the `ui://` URI scheme, associating them with tools through metadata, and facilitating bidirectional communication between the UI and the host using MCP's JSON-RPC base protocol. This extension addresses the growing community need for rich, interactive experiences in MCP-enabled applications, maintaining security, auditability, and alignment with MCP's core architecture. The initial specification focuses on HTML resources (`text/html+mcp`) with a clear path for future extensions.
10
+
This SEP proposes an extension (per SEP-1724) to MCP that enables servers to deliver interactive user interfaces to hosts. MCP Apps introduces a standardized pattern for declaring UI resources via the `ui://` URI scheme, associating them with tools through metadata, and facilitating bidirectional communication between the UI and the host using MCP's JSON-RPC base protocol. This extension addresses the growing community need for rich, interactive experiences in MCP-enabled applications, maintaining security, auditability, and alignment with MCP's core architecture. The initial specification focuses on HTML resources (`text/html;profile=mcp-app`) with a clear path for future extensions.
11
11
12
12
## Motivation
13
13
@@ -43,7 +43,7 @@ MCP Apps extends the Model Context Protocol to enable servers to deliver interac
43
43
-**Bidirectional Communication:** UI iframes communicate with hosts using standard MCP JSON-RPC protocol
44
44
-**Security Model:** Mandatory iframe sandboxing with auditable communication
45
45
46
-
This specification focuses on HTML content (`text/html+mcp`) as the initial content type, with extensibility for future formats.
46
+
This specification focuses on HTML content (`text/html;profile=mcp-app`) as the initial content type, with extensibility for future formats.
47
47
48
48
As an extension, MCP Apps is optional and must be explicitly negotiated between clients and servers through the extension capabilities mechanism (see Capability Negotiation section).
49
49
@@ -87,11 +87,11 @@ interface UIResource {
87
87
/**
88
88
* MIME type of the UI content
89
89
*
90
-
* SHOULD be `text/html+mcp` for HTML-based UIs in the initial MVP.
90
+
* SHOULD be `text/html;profile=mcp-app` for HTML-based UIs in the initial MVP.
91
91
* Other content types are reserved for future extensions.
92
92
*
93
93
* @example
94
-
* "text/html+mcp"
94
+
* "text/html;profile=mcp-app"
95
95
*/
96
96
mimeType:string;
97
97
@@ -168,7 +168,7 @@ The resource content is returned via `resources/read`:
168
168
{
169
169
contents: [{
170
170
uri: string; // Matching UI resource URI
171
-
mimeType: "text/html+mcp"; // MUST be "text/html+mcp"
171
+
mimeType: "text/html;profile=mcp-app"; // MUST be "text/html;profile=mcp-app"
172
172
text?:string; // HTML content as string
173
173
blob?:string; // OR base64-encoded HTML
174
174
_meta?: {
@@ -188,7 +188,7 @@ The resource content is returned via `resources/read`:
188
188
#### Content Requirements:
189
189
190
190
- URI MUST start with `ui://` scheme
191
-
-`mimeType` MUST be `text/html+mcp` (other types reserved for future extensions)
191
+
-`mimeType` MUST be `text/html;profile=mcp-app` (other types reserved for future extensions)
192
192
- Content MUST be provided via either `text` (string) or `blob` (base64-encoded)
0 commit comments