Github MCP being loaded infinitely

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Having an infinite “Loading tools” for Github MCP. I am using this one: GitHub - github/github-mcp-server: GitHub's official MCP Server. Had it working properly for a long time now, but suddenly today it doesn’t work anymore.

Steps to Reproduce

  1. Open Cursor IDE
  2. Open Cursor Settings → Tools & MCP
  3. Observe MCP server named “github”

Expected Behavior

Github MCP should be Available and Green

Screenshots / Screen Recordings

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.2.36 (Universal)
VSCode Version: 1.105.1
Commit: 55c9bc11e99cedd1fb93fbb7996abf779c583150
Date: 2025-12-18T06:25:21.733Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 23.5.0

Additional Information

Piece of mcp.json for github MCP:
“github”: {
“url”: “https://api.githubcopilot.com/mcp/”,
“headers”: {
“Authorization”: “Bearer MY_PAT_TOKEN”,
“X-MCP-Toolsets”: “default,actions”
}
},

Logs for github MCP form the Output panel:
2025-12-18 18:36:00.912 [info] Handling CreateClient action
2025-12-18 18:36:00.912 [info] Creating streamableHttp transport
2025-12-18 18:36:00.912 [info] Connecting to streamableHttp server
2025-12-18 18:36:00.912 [info] Handling CreateClient action
2025-12-18 18:36:00.912 [info] Creating streamableHttp transport
2025-12-18 18:36:00.912 [info] Connecting to streamableHttp server
2025-12-18 18:36:00.912 [info] No stored tokens found
2025-12-18 18:36:00.912 [info] No stored tokens found
2025-12-18 18:36:00.912 [info] Handling CreateClient action
2025-12-18 18:36:00.912 [info] Creating streamableHttp transport
2025-12-18 18:36:00.912 [info] Connecting to streamableHttp server
2025-12-18 18:36:00.912 [info] No stored tokens found
2025-12-18 18:36:02.500 [info] Client closed for command
2025-12-18 18:36:02.503 [error] Error connecting to streamableHttp server, falling back to SSE: [
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
0,
“sizes”
],
“message”: “Expected string, received array”
},
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
1,
“sizes”
],
“message”: “Expected string, received array”
}
]
2025-12-18 18:36:02.504 [error] Error connecting to streamableHttp server, falling back to SSE: [
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
0,
“sizes”
],
“message”: “Expected string, received array”
},
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
1,
“sizes”
],
“message”: “Expected string, received array”
}
]
2025-12-18 18:36:02.504 [info] Connecting to SSE server
2025-12-18 18:36:02.504 [info] SSE stream disconnected, transport will reconnect automatically SSE stream disconnected: AbortError: This operation was aborted
2025-12-18 18:36:02.515 [info] No stored tokens found
2025-12-18 18:36:02.539 [info] Client closed for command
2025-12-18 18:36:02.539 [error] Error connecting to streamableHttp server, falling back to SSE: [
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
0,
“sizes”
],
“message”: “Expected string, received array”
},
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
1,
“sizes”
],
“message”: “Expected string, received array”
}
]
2025-12-18 18:36:02.539 [error] Error connecting to streamableHttp server, falling back to SSE: [
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
0,
“sizes”
],
“message”: “Expected string, received array”
},
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
1,
“sizes”
],
“message”: “Expected string, received array”
}
]
2025-12-18 18:36:02.540 [info] Connecting to SSE server
2025-12-18 18:36:02.540 [info] SSE stream disconnected, transport will reconnect automatically SSE stream disconnected: AbortError: This operation was aborted
2025-12-18 18:36:02.546 [info] No stored tokens found
2025-12-18 18:36:02.582 [info] Client closed for command
2025-12-18 18:36:02.582 [error] Error connecting to streamableHttp server, falling back to SSE: [
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
0,
“sizes”
],
“message”: “Expected string, received array”
},
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
1,
“sizes”
],
“message”: “Expected string, received array”
}
]
2025-12-18 18:36:02.582 [error] Error connecting to streamableHttp server, falling back to SSE: [
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
0,
“sizes”
],
“message”: “Expected string, received array”
},
{
“code”: “invalid_type”,
“expected”: “string”,
“received”: “array”,
“path”: [
“serverInfo”,
“icons”,
1,
“sizes”
],
“message”: “Expected string, received array”
}
]
2025-12-18 18:36:02.582 [info] Connecting to SSE server
2025-12-18 18:36:02.582 [info] SSE stream disconnected, transport will reconnect automatically SSE stream disconnected: AbortError: This operation was aborted
2025-12-18 18:36:02.588 [info] No stored tokens found
2025-12-18 18:36:03.371 [error] Client error for command SSE error: Non-200 status code (405)
2025-12-18 18:36:03.371 [error] Error connecting to SSE server after fallback: SSE error: Non-200 status code (405)
2025-12-18 18:36:03.371 [info] Client closed for command
2025-12-18 18:36:03.392 [error] Client error for command SSE error: Non-200 status code (405)
2025-12-18 18:36:03.392 [error] Error connecting to SSE server after fallback: SSE error: Non-200 status code (405)
2025-12-18 18:36:03.392 [info] Client closed for command
2025-12-18 18:36:03.436 [error] Client error for command SSE error: Non-200 status code (405)
2025-12-18 18:36:03.436 [error] Error connecting to SSE server after fallback: SSE error: Non-200 status code (405)
2025-12-18 18:36:03.436 [info] Client closed for command
2025-12-18 18:36:04.389 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:36:04.389 [error] No server info found
2025-12-18 18:36:07.038 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:36:07.038 [error] No server info found
2025-12-18 18:36:18.587 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:36:18.587 [error] No server info found
2025-12-18 18:40:58.648 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:40:58.648 [error] No server info found
2025-12-18 18:41:01.464 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:41:01.464 [error] No server info found
2025-12-18 18:42:00.301 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:42:00.301 [error] No server info found
2025-12-18 18:46:02.194 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:46:02.194 [error] No server info found
2025-12-18 18:46:22.351 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:46:22.351 [error] No server info found
2025-12-18 18:46:25.216 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:46:25.216 [error] No server info found
2025-12-18 18:46:29.901 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:46:29.901 [error] No server info found
2025-12-18 18:46:39.981 [info] Handling ListOfferings action, server stored: false
2025-12-18 18:46:39.982 [error] No server info found

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hi, thanks for the report.

This is a known issue - the GitHub MCP server was updated to v0.26.0 and now returns icons in a new format, while Cursor uses an outdated MCP TypeScript SDK version. The team is already working on updating the SDK.

Discussion and other affected users are here: MCP Client: Icon.sizes incorrectly validated as string instead of array

Unfortunately, there is no workaround for now except to wait for the fix. Please follow updates in that thread.

Thanks for the update.

Although, I see that linked topic is created 16 days ago and I didn’t have any issue up until today.

FYI I am someone who is updating Cursor (and apps in general) very regulary, almost immediately after my company make an update available through out system managing platform.

I see there is no issue today, seems like it’s resolved.

Thanks!