From 38aa70261ae9a012d9bb157deffcc2a0e9046d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romuald=20Cz=C5=82onkowski?= <56956555+czlonkowski@users.noreply.github.com> Date: Sat, 7 Feb 2026 15:18:50 +0100 Subject: [PATCH] fix: use text/html;profile=mcp-app MIME type for MCP Apps resources (#577) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ext-apps spec requires RESOURCE_MIME_TYPE (text/html;profile=mcp-app) for hosts to recognize resources as MCP Apps. Without the profile parameter, Claude Desktop/web fails with "Failed to load MCP App: the resource may exceed the 5 MB size limit." Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en Co-authored-by: Claude Opus 4.6 --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- src/mcp/ui/app-configs.ts | 4 ++-- tests/unit/mcp/ui/app-configs.test.ts | 4 ++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 689f0d5..24635df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.34.3] - 2026-02-07 + +### Fixed + +- **MCP Apps: Use correct MIME type for ext-apps spec**: Changed resource MIME type from `text/html` to `text/html;profile=mcp-app` (the `RESOURCE_MIME_TYPE` constant from `@modelcontextprotocol/ext-apps`). Without this profile parameter, Claude Desktop/web fails to recognize resources as MCP Apps and shows "Failed to load MCP App: the resource may exceed the 5 MB size limit." + +Conceived by Romuald Czlonkowski - https://www.aiadvisors.pl/en + ## [2.34.2] - 2026-02-07 ### Fixed diff --git a/package.json b/package.json index b708624..4dde40a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.34.2", + "version": "2.34.3", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/mcp/ui/app-configs.ts b/src/mcp/ui/app-configs.ts index 71e11fd..37c704d 100644 --- a/src/mcp/ui/app-configs.ts +++ b/src/mcp/ui/app-configs.ts @@ -6,7 +6,7 @@ export const UI_APP_CONFIGS: UIAppConfig[] = [ displayName: 'Operation Result', description: 'Visual summary of workflow operations (create, update, delete, test)', uri: 'ui://n8n-mcp/operation-result', - mimeType: 'text/html', + mimeType: 'text/html;profile=mcp-app', toolPatterns: [ 'n8n_create_workflow', 'n8n_update_full_workflow', @@ -22,7 +22,7 @@ export const UI_APP_CONFIGS: UIAppConfig[] = [ displayName: 'Validation Summary', description: 'Visual summary of node and workflow validation results', uri: 'ui://n8n-mcp/validation-summary', - mimeType: 'text/html', + mimeType: 'text/html;profile=mcp-app', toolPatterns: [ 'validate_node', 'validate_workflow', diff --git a/tests/unit/mcp/ui/app-configs.test.ts b/tests/unit/mcp/ui/app-configs.test.ts index e17a401..127bfaf 100644 --- a/tests/unit/mcp/ui/app-configs.test.ts +++ b/tests/unit/mcp/ui/app-configs.test.ts @@ -65,9 +65,9 @@ describe('UI_APP_CONFIGS', () => { } }); - it('should have consistent mimeType of text/html', () => { + it('should have consistent mimeType of text/html;profile=mcp-app', () => { for (const config of UI_APP_CONFIGS) { - expect(config.mimeType).toBe('text/html'); + expect(config.mimeType).toBe('text/html;profile=mcp-app'); } });