diff --git a/src/examples/server/simpleStreamableHttp.ts b/src/examples/server/simpleStreamableHttp.ts index 6f1e20080..de420c1cc 100644 --- a/src/examples/server/simpleStreamableHttp.ts +++ b/src/examples/server/simpleStreamableHttp.ts @@ -22,7 +22,7 @@ const getServer = () => { const server = new McpServer({ name: 'simple-streamable-http-server', version: '1.0.0', - icons: [{src: './mcp.svg', sizes: '512x512', mimeType: 'image/svg+xml'}], + icons: [{src: './mcp.svg', sizes: ['512x512'], mimeType: 'image/svg+xml'}], websiteUrl: 'https://github.com/modelcontextprotocol/typescript-sdk', }, { capabilities: { logging: {} } }); diff --git a/src/types.ts b/src/types.ts index 262e3b623..9ca4e4d8a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -214,9 +214,11 @@ export const IconSchema = z */ mimeType: z.optional(z.string()), /** - * Optional string specifying icon dimensions (e.g., "48x48 96x96"). + * Optional array of strings that specify sizes at which the icon can be used. + * Each string should be in WxH format (e.g., "48x48", "96x96") or "any" for scalable formats like SVG. + * If not provided, the client should assume that the icon can be used at any size. */ - sizes: z.optional(z.string()), + sizes: z.optional(z.array(z.string())), }) .passthrough();