MCP Client: Icon.sizes incorrectly validated as string instead of array

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Description

The MCP client incorrectly expects serverInfo.icons[].sizes to be a string,
but the MCP specification defines it as an array of strings.

Error

{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [“serverInfo”, “icons”, 0, “sizes”]
}## Expected Behavior
Per the MCP specification,
sizes should accept an array like ["48x48", "96x96"].

Actual Behavior

Cursor’s client rejects arrays and only accepts a single string.

Similar Issue

Similar issue was resolved for Copilot-CLI: serverInfo.icons.sizes is wrongly expecting a string and fails MCP connection · Issue #486 · github/copilot-cli · GitHub.

Steps to Reproduce

Try to connect to an MCP that provides Icons with the sizes as an array (based on the spec).

Expected Behavior

Cursor’s client accepts MCP Icon size as arrays and tools load successfully.

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.46 (Universal)
VSCode Version: 1.105.1
Commit: ab326d0767c02fb9847b342c43ea58275c4b1680
Date: 2025-12-02T03:59:29.283Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 24.6.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

1 Like

Hey, thanks for the report. The Cursor MCP client is using an outdated version of the TypeScript SDK, where Icon.sizes expects a string instead of an array. This issue has already been fixed in modelcontextprotocol/typescript-sdk 1.19.0.

I’ll pass this to the team for updating the SDK in Cursor to version 1.19.0 or higher.

2 Likes