Skip to content

Conversation

@antonpk1
Copy link
Collaborator

@antonpk1 antonpk1 commented Dec 4, 2025

Summary

  • Changes MIME type from text/html+mcp to text/html;profile=mcp-app across spec and examples
  • Follows RFC 6838 recommendations for custom media types
  • The +suffix format 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

Test plan

  • Verify spec examples are consistent
  • Verify example server and host compile and run correctly

Fixes #59

🤖 Generated with Claude Code

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 <noreply@anthropic.com>
@antonpk1 antonpk1 mentioned this pull request Dec 4, 2025
@antonpk1 antonpk1 requested review from idosal, liady and ochafik December 4, 2025 15:42
Copy link
Collaborator

@idosal idosal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thanks @antonpk1 !

@idosal idosal merged commit 0af1532 into main Dec 4, 2025
5 checks passed
const content = resource.contents[0];
let html: string;
const isHtml = (t?: string) => t === "text/html+mcp";
const isHtml = (t?: string) => t === "text/html;profile=mcp-app";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: spaces are allowed before / after the ; and the profile value can be quoted (see spec) so in theory we should test w/ t.match(/text\/html\s*;\s*profile=(mcp-app|"mcp-app")/)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SEP: Finalize MIME type

4 participants