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.

1 Like

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.

1 Like

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

Thanks!