From 8550545ccbb87545a2321697edd7f07e9fde1435 Mon Sep 17 00:00:00 2001 From: Anton Pidkuiko <105124934+antonpk1@users.noreply.github.com> Date: Mon, 15 Dec 2025 19:09:47 +0700 Subject: [PATCH] fix: add mimeType to resource declarations in examples (#149) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to spec, mimeType should be present in both the resource declaration and the resource content. This adds the missing mimeType to the registerResource() declaration (third parameter) in all example servers and the quickstart documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Co-authored-by: ochafik --- docs/quickstart.md | 27 +++++++++++-------- examples/basic-server-react/server.ts | 2 +- examples/basic-server-vanillajs/server.ts | 2 +- examples/budget-allocator-server/server.ts | 5 +++- examples/cohort-heatmap-server/server.ts | 2 +- .../customer-segmentation-server/server.ts | 5 +++- examples/scenario-modeler-server/server.ts | 2 +- examples/system-monitor-server/server.ts | 2 +- examples/threejs-server/server.ts | 2 +- examples/wiki-explorer-server/server.ts | 2 +- 10 files changed, 31 insertions(+), 20 deletions(-) diff --git a/docs/quickstart.md b/docs/quickstart.md index f5134f5..320a274 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -130,17 +130,22 @@ server.registerTool( }, ); -server.registerResource(resourceUri, resourceUri, {}, async () => { - const html = await fs.readFile( - path.join(import.meta.dirname, "dist", "mcp-app.html"), - "utf-8", - ); - return { - contents: [ - { uri: resourceUri, mimeType: "text/html;profile=mcp-app", text: html }, - ], - }; -}); +server.registerResource( + resourceUri, + resourceUri, + { mimeType: "text/html;profile=mcp-app" }, + async () => { + const html = await fs.readFile( + path.join(import.meta.dirname, "dist", "mcp-app.html"), + "utf-8", + ); + return { + contents: [ + { uri: resourceUri, mimeType: "text/html;profile=mcp-app", text: html }, + ], + }; + }, +); // Express server for MCP endpoint const app = express(); diff --git a/examples/basic-server-react/server.ts b/examples/basic-server-react/server.ts index 9c9049e..24a07f2 100644 --- a/examples/basic-server-react/server.ts +++ b/examples/basic-server-react/server.ts @@ -41,7 +41,7 @@ function createServer(): McpServer { server.registerResource( RESOURCE_URI, RESOURCE_URI, - {}, + { mimeType: RESOURCE_MIME_TYPE }, async (): Promise => { const html = await fs.readFile(path.join(DIST_DIR, "mcp-app.html"), "utf-8"); diff --git a/examples/basic-server-vanillajs/server.ts b/examples/basic-server-vanillajs/server.ts index 52f1030..0c59695 100644 --- a/examples/basic-server-vanillajs/server.ts +++ b/examples/basic-server-vanillajs/server.ts @@ -41,7 +41,7 @@ function createServer(): McpServer { server.registerResource( RESOURCE_URI, RESOURCE_URI, - {}, + { mimeType: RESOURCE_MIME_TYPE }, async (): Promise => { const html = await fs.readFile(path.join(DIST_DIR, "mcp-app.html"), "utf-8"); diff --git a/examples/budget-allocator-server/server.ts b/examples/budget-allocator-server/server.ts index f07eb6c..ed09e1c 100755 --- a/examples/budget-allocator-server/server.ts +++ b/examples/budget-allocator-server/server.ts @@ -280,7 +280,10 @@ function createServer(): McpServer { server.registerResource( resourceUri, resourceUri, - { description: "Interactive Budget Allocator UI" }, + { + mimeType: RESOURCE_MIME_TYPE, + description: "Interactive Budget Allocator UI", + }, async (): Promise => { const html = await fs.readFile( path.join(DIST_DIR, "mcp-app.html"), diff --git a/examples/cohort-heatmap-server/server.ts b/examples/cohort-heatmap-server/server.ts index 2ad6a14..ca212ed 100644 --- a/examples/cohort-heatmap-server/server.ts +++ b/examples/cohort-heatmap-server/server.ts @@ -182,7 +182,7 @@ function createServer(): McpServer { server.registerResource( resourceUri, resourceUri, - {}, + { mimeType: RESOURCE_MIME_TYPE }, async (): Promise => { const html = await fs.readFile( path.join(DIST_DIR, "mcp-app.html"), diff --git a/examples/customer-segmentation-server/server.ts b/examples/customer-segmentation-server/server.ts index ea3f8c1..c753782 100644 --- a/examples/customer-segmentation-server/server.ts +++ b/examples/customer-segmentation-server/server.ts @@ -86,7 +86,10 @@ function createServer(): McpServer { server.registerResource( resourceUri, resourceUri, - { description: "Customer Segmentation Explorer UI" }, + { + mimeType: RESOURCE_MIME_TYPE, + description: "Customer Segmentation Explorer UI", + }, async (): Promise => { const html = await fs.readFile( path.join(DIST_DIR, "mcp-app.html"), diff --git a/examples/scenario-modeler-server/server.ts b/examples/scenario-modeler-server/server.ts index 6db49be..61b705b 100644 --- a/examples/scenario-modeler-server/server.ts +++ b/examples/scenario-modeler-server/server.ts @@ -291,7 +291,7 @@ function createServer(): McpServer { server.registerResource( resourceUri, resourceUri, - { description: "SaaS Scenario Modeler UI" }, + { mimeType: RESOURCE_MIME_TYPE, description: "SaaS Scenario Modeler UI" }, async (): Promise => { const html = await fs.readFile( path.join(DIST_DIR, "mcp-app.html"), diff --git a/examples/system-monitor-server/server.ts b/examples/system-monitor-server/server.ts index aa54b20..30687ed 100644 --- a/examples/system-monitor-server/server.ts +++ b/examples/system-monitor-server/server.ts @@ -152,7 +152,7 @@ function createServer(): McpServer { server.registerResource( resourceUri, resourceUri, - { description: "System Monitor UI" }, + { mimeType: RESOURCE_MIME_TYPE, description: "System Monitor UI" }, async (): Promise => { const html = await fs.readFile( path.join(DIST_DIR, "mcp-app.html"), diff --git a/examples/threejs-server/server.ts b/examples/threejs-server/server.ts index b3a8f28..72f19b4 100644 --- a/examples/threejs-server/server.ts +++ b/examples/threejs-server/server.ts @@ -194,7 +194,7 @@ function createServer(): McpServer { server.registerResource( resourceUri, resourceUri, - { description: "Three.js Widget UI" }, + { mimeType: RESOURCE_MIME_TYPE, description: "Three.js Widget UI" }, async (): Promise => { const html = await fs.readFile( path.join(DIST_DIR, "mcp-app.html"), diff --git a/examples/wiki-explorer-server/server.ts b/examples/wiki-explorer-server/server.ts index c0d7d8f..4ee5622 100644 --- a/examples/wiki-explorer-server/server.ts +++ b/examples/wiki-explorer-server/server.ts @@ -127,7 +127,7 @@ function createServer(): McpServer { server.registerResource( resourceUri, resourceUri, - {}, + { mimeType: RESOURCE_MIME_TYPE }, async (): Promise => { const html = await fs.readFile( path.join(DIST_DIR, "mcp-app.html"),