# Notion MCP tools stuck loading in Cursor 2.2.43 (OAuth completes but 0 tools; fetch failed / No server info found)

**URL:** <https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936>\
**Category:** Bug Reports\
**Created:** [December 20, 2025, 3:42pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936 "2025-12-20T15:42:10Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Truthanb](https://avatars.discourse-cdn.com/v4/letter/t/ecd19e/32.png) [@Truthanb](https://forum.cursor.com/u/Truthanb)\
**Post date:** [December 20, 2025, 3:42pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/1 "2025-12-20T15:42:10Z")

</div>

### Where does the bug appear (feature/product)?

Cursor IDE

### Describe the Bug

Notion MCP is broken in Cursor 2.2.43 on macOS: after I click Connect and complete the OAuth flow, Cursor never loads any Notion MCP tools/resources (stuck “loading tools” / shows 0). Logs show repeated “Saving tokens” after OAuth completes plus transport errors (“fetch failed”) and occasional “No server info found” while trying to list offerings.

### Steps to Reproduce

1. Open Cursor 2.2.43 on macOS (Apple Silicon).
2. Open MCP settings and click Connect on the Notion MCP server ([https://mcp.notion.com/mcp](https://mcp.notion.com/mcp)).
3. Complete the OAuth flow in the browser and return to Cursor.
4. Observe that Notion MCP stays “loading tools” / tools never appear (0 tools/resources).

### Expected Behavior

After completing OAuth, Notion MCP should load and expose its tools/resources in Cursor.

### Operating System

MacOS

### Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.2.43  
VSCode Version: 1.105.1  
Commit: 32cfbe848b35d9eb320980195985450f244b3030  
Date: 2025-12-19T06:06:44.644Z  
Electron: 37.7.0  
Chromium: 138.0.7204.251  
Node.js: 22.20.0  
V8: 13.8.258.32-electron.0  
OS: Darwin arm64 25.2.0

### For AI issues: which model did you use?

N/A (not model-specific; MCP integration issue before any AI/model usage)

### Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

---

<div class="post-metadata">

**Author:** ![Truthanb](https://avatars.discourse-cdn.com/v4/letter/t/ecd19e/32.png) [@Truthanb](https://forum.cursor.com/u/Truthanb)\
**Post date:** [December 20, 2025, 4:05pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/2 "2025-12-20T16:05:31Z")

</div>

One observation for why I believe this is related to Cursor, not Notion: Notion MCP still works fine for me with vscode/copilot.

---

<div class="post-metadata">

**Author:** ![deanrie](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/deanrie/32/1263_2.png) [@deanrie](https://forum.cursor.com/u/deanrie)\
**Post date:** [December 20, 2025, 5:09pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/3 "2025-12-20T17:09:29Z")

</div>

Hey, thanks for the report. I’ll pass it to the team.

---

<div class="post-metadata">

**Author:** ![Jarod\_Guerra](https://avatars.discourse-cdn.com/v4/letter/j/3be4f8/32.png) [@Jarod\_Guerra](https://forum.cursor.com/u/Jarod_Guerra)\
**Post date:** [December 20, 2025, 6:47pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/5 "2025-12-20T18:47:32Z")

</div>

I am also having the same issue tried on multiple different computers Windows and Mac.

---

<div class="post-metadata">

**Author:** ![Lemeb](https://avatars.discourse-cdn.com/v4/letter/l/e5b9ba/32.png) [@Lemeb](https://forum.cursor.com/u/Lemeb)\
**Post date:** [December 20, 2025, 10:04pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/6 "2025-12-20T22:04:43Z")

</div>

Seems likely the problem is Notion-related because I’m getting the same problem with Claude (mobile and web and desktop)

---

<div class="post-metadata">

**Author:** ![federico\_barbarisi](https://avatars.discourse-cdn.com/v4/letter/f/c67d28/32.png) [@federico\_barbarisi](https://forum.cursor.com/u/federico_barbarisi)\
**Post date:** [December 21, 2025, 1:49pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/7 "2025-12-21T13:49:13Z")

</div>

### Where does the bug appear (feature/product)?

Cursor IDE

### Describe the Bug

i can’t connect with notion mcp . these are the logs : 2025-12-21 14:40:01.374 [info] Handling ListOfferings action, server stored: false  
2025-12-21 14:40:01.375 [error] No server info found  
2025-12-21 14:40:05.990 [info] Handling CreateClient action  
2025-12-21 14:40:05.991 [info] Creating streamableHttp transport  
2025-12-21 14:40:05.991 [info] Connecting to streamableHttp server  
2025-12-21 14:40:05.993 [info] Handling CreateClient action  
2025-12-21 14:40:05.993 [info] Creating streamableHttp transport  
2025-12-21 14:40:05.993 [info] Connecting to streamableHttp server  
2025-12-21 14:40:05.996 [info] Handling CreateClient action  
2025-12-21 14:40:05.996 [info] Creating streamableHttp transport  
2025-12-21 14:40:05.998 [info] Connecting to streamableHttp server  
2025-12-21 14:40:07.074 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:07.093 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:07.093 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:07.787 [info] Invalidating credentials: tokens  
2025-12-21 14:40:07.787 [info] Invalidating credentials: tokens  
2025-12-21 14:40:07.811 [info] Invalidating credentials: tokens  
2025-12-21 14:40:08.189 [info] No stored tokens found  
2025-12-21 14:40:08.190 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:08.190 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:08.191 [info] Saving PKCE code verifier {“verifierLen”:43}  
2025-12-21 14:40:08.200 [info] Redirect to authorization requested {“url”:“[Notion](https://mcp.notion.com/authorize?response_type=code&client_id=SldlrFltk4Du2ch6&code_challenge=jgzlE3kZQdZQCWwYLGuNN95lQ4cagvhgVaY2AR5UlQw&code_challenge_method=S256&redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback&state=eyJpZCI6InVzZXItTm90aW9uIn0&resource=https%3A%2F%2Fmcp.notion.com%2F)”}  
2025-12-21 14:40:08.201 [info] No stored tokens found  
2025-12-21 14:40:08.203 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:08.203 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:08.203 [info] Stored server URL for OAuth flow  
2025-12-21 14:40:08.203 [info] OAuth provider needs auth callback during connection  
2025-12-21 14:40:08.204 [error] Error connecting to streamableHttp server, falling back to SSE: Unauthorized  
2025-12-21 14:40:08.204 [warning] Unauthorized error connecting to streamableHttp server, returning transport  
2025-12-21 14:40:08.204 [info] Successfully connected to streamableHttp server  
2025-12-21 14:40:08.204 [info] Storing streamableHttp client  
2025-12-21 14:40:08.204 [info] CreateClient completed, server stored: true  
2025-12-21 14:40:08.205 [info] Saving PKCE code verifier {“verifierLen”:43}  
2025-12-21 14:40:08.219 [info] Redirect to authorization requested {“url”:“[Notion](https://mcp.notion.com/authorize?response_type=code&client_id=SldlrFltk4Du2ch6&code_challenge=lZhUEPTM0RoSKT69Ov2mOx_x4XlM67NvCxDiyIF3nG0&code_challenge_method=S256&redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback&state=eyJpZCI6InVzZXItTm90aW9uIn0&resource=https%3A%2F%2Fmcp.notion.com%2F)”}  
2025-12-21 14:40:08.248 [info] Stored server URL for OAuth flow  
2025-12-21 14:40:08.248 [info] OAuth provider needs auth callback during connection  
2025-12-21 14:40:08.248 [error] Error connecting to streamableHttp server, falling back to SSE: Unauthorized  
2025-12-21 14:40:08.248 [warning] Unauthorized error connecting to streamableHttp server, returning transport  
2025-12-21 14:40:08.248 [info] Successfully connected to streamableHttp server  
2025-12-21 14:40:08.248 [info] A second client was created while connecting, discarding it.  
2025-12-21 14:40:08.249 [info] CreateClient completed, server stored: true  
2025-12-21 14:40:08.263 [info] No stored tokens found  
2025-12-21 14:40:08.264 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:08.264 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:08.264 [info] Saving PKCE code verifier {“verifierLen”:43}  
2025-12-21 14:40:08.276 [info] Redirect to authorization requested {“url”:“[Notion](https://mcp.notion.com/authorize?response_type=code&client_id=SldlrFltk4Du2ch6&code_challenge=LkxaCt262Z5QVyB7-2I5qOUZIc2CjXjQnHKXMJ-k8Ps&code_challenge_method=S256&redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback&state=eyJpZCI6InVzZXItTm90aW9uIn0&resource=https%3A%2F%2Fmcp.notion.com%2F)”}  
2025-12-21 14:40:08.288 [info] Stored server URL for OAuth flow  
2025-12-21 14:40:08.288 [info] OAuth provider needs auth callback during connection  
2025-12-21 14:40:08.289 [error] Error connecting to streamableHttp server, falling back to SSE: Unauthorized  
2025-12-21 14:40:08.289 [warning] Unauthorized error connecting to streamableHttp server, returning transport  
2025-12-21 14:40:08.289 [info] Successfully connected to streamableHttp server  
2025-12-21 14:40:08.289 [info] A second client was created while connecting, discarding it.  
2025-12-21 14:40:08.289 [info] CreateClient completed, server stored: true  
2025-12-21 14:40:08.644 [info] Handling ListOfferings action, server stored: true  
2025-12-21 14:40:08.644 [info] Connected to streamableHttp server, fetching offerings  
2025-12-21 14:40:08.645 [info] Found 0 tools, 0 prompts, and 0 resources  
2025-12-21 14:40:12.536 [info] Handling LogoutServer action  
2025-12-21 14:40:12.537 [info] Clearing stored OAuth data  
2025-12-21 14:40:12.561 [info] Successfully cleared OAuth tokens  
2025-12-21 14:40:12.561 [info] Cleaning up  
2025-12-21 14:40:12.566 [info] Handling ReloadClient action  
2025-12-21 14:40:12.566 [info] Creating streamableHttp transport  
2025-12-21 14:40:12.566 [info] Connecting to streamableHttp server  
2025-12-21 14:40:12.568 [info] No stored tokens found  
2025-12-21 14:40:13.112 [info] No stored client information found  
2025-12-21 14:40:13.114 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:13.314 [info] Saving client information {“redirects”:1,“clientIdPresent”:true}  
2025-12-21 14:40:13.317 [info] No stored tokens found  
2025-12-21 14:40:13.317 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:13.318 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:13.318 [info] Saving PKCE code verifier {“verifierLen”:43}  
2025-12-21 14:40:13.323 [info] Redirect to authorization requested {“url”:“[Notion](https://mcp.notion.com/authorize?response_type=code&client_id=d-UMLm__T_tfGTzf&code_challenge=ywo4fEK0KdlWp2bUGjpXsXnWyH3FUj_EtwkUESj3ySc&code_challenge_method=S256&redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback&state=eyJpZCI6InVzZXItTm90aW9uIn0&resource=https%3A%2F%2Fmcp.notion.com%2F)”}  
2025-12-21 14:40:13.334 [info] Stored server URL for OAuth flow  
2025-12-21 14:40:13.334 [info] OAuth provider needs auth callback during connection  
2025-12-21 14:40:13.335 [error] Error connecting to streamableHttp server, falling back to SSE: Unauthorized  
2025-12-21 14:40:13.335 [warning] Unauthorized error connecting to streamableHttp server, returning transport  
2025-12-21 14:40:13.335 [info] Successfully connected to streamableHttp server  
2025-12-21 14:40:13.335 [info] Storing streamableHttp client  
2025-12-21 14:40:13.335 [info] Successfully reloaded client  
2025-12-21 14:40:13.785 [info] Handling ListOfferings action, server stored: true  
2025-12-21 14:40:13.785 [info] Connected to streamableHttp server, fetching offerings  
2025-12-21 14:40:13.785 [info] Found 0 tools, 0 prompts, and 0 resources  
2025-12-21 14:40:20.841 [info] Received OAuth callback with code  
2025-12-21 14:40:21.265 [info] Using redirect URL {“url”:“cursor://anysphere.cursor-mcp/oauth/callback”}  
2025-12-21 14:40:21.557 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:21.560 [info] OAuth authorization completed  
2025-12-21 14:40:21.563 [info] Handling ReloadClient action  
2025-12-21 14:40:21.563 [info] Cleaning up  
2025-12-21 14:40:21.564 [info] Creating streamableHttp transport  
2025-12-21 14:40:21.564 [info] Connecting to streamableHttp server  
2025-12-21 14:40:22.428 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:23.295 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:24.114 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:24.994 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:25.818 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:26.625 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:27.440 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:28.272 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:29.105 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:29.999 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:30.824 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:31.658 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:32.517 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:33.384 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:34.663 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:35.480 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:36.301 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:37.122 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:37.943 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:38.756 [info] Handling ListOfferings action, server stored: false  
2025-12-21 14:40:38.756 [error] No server info found  
2025-12-21 14:40:38.805 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:39.637 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:40.478 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:41.346 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:42.753 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:43.582 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:44.439 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:45.247 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:46.127 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:46.943 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:47.836 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:48.658 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:49.486 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:50.355 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:51.202 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:52.058 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:52.911 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:53.742 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:54.566 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:55.434 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:56.280 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:57.136 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:57.954 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:58.761 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:40:59.614 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:00.459 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:01.355 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:02.356 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:03.252 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:04.127 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:05.000 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:05.872 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:06.670 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:07.582 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:08.420 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:09.308 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:10.139 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:10.966 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:11.778 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:12.652 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:13.472 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:14.296 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:15.126 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:15.977 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:16.804 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:17.996 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:18.863 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:19.771 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:20.636 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:21.491 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:21.571 [info] Client closed for command  
2025-12-21 14:41:21.572 [error] Error connecting to streamableHttp server, falling back to SSE: MCP error -32001: Request timed out  
2025-12-21 14:41:21.572 [error] Error connecting to streamableHttp server, falling back to SSE: MCP error -32001: Request timed out  
2025-12-21 14:41:21.572 [info] Connecting to SSE server  
2025-12-21 14:41:21.573 [error] Client error for command This operation was aborted  
2025-12-21 14:41:21.583 [error] Client error for command This operation was aborted  
2025-12-21 14:41:21.583 [error] Client error for command Failed to send cancellation: AbortError: This operation was aborted  
2025-12-21 14:41:21.965 [info] Handling ListOfferings action, server stored: false  
2025-12-21 14:41:21.965 [error] No server info found  
2025-12-21 14:41:22.464 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:23.323 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:24.145 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:24.980 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:25.819 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:26.638 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:27.458 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:28.268 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:28.891 [info] Handling DeleteClient action  
2025-12-21 14:41:29.121 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:29.921 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:30.764 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:31.579 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:32.409 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:33.279 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:34.117 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:34.951 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:35.808 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:36.648 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:37.486 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:38.310 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:39.157 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:39.975 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:40.872 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:41.702 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:42.572 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:43.384 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:44.225 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:45.083 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:45.934 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:46.778 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:47.608 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:48.443 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:49.248 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:50.065 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:50.886 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:51.709 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:52.560 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:53.405 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:54.261 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:55.063 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:55.908 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:56.753 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:57.624 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:58.437 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:41:59.280 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:00.104 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:01.317 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:02.148 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:02.944 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:03.781 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:04.615 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:05.451 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:06.283 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:07.118 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:07.990 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:08.855 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}  
2025-12-21 14:42:09.687 [info] Saving tokens {“accessTokenLen”:86,“refreshPresent”:true,“expiresIn”:3600}

### Steps to Reproduce

when i click “connect” to autenticate my notion , it opens notion, i click on my profile, i click continue, then i click on continue and then i wait and i see the logs and it doesn’t connect.

### Expected Behavior

i can’t connect with notion via mcp

### Operating System

Windows 10/11

### Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.2.43 (user setup)  
VSCode Version: 1.105.1  
Commit: 32cfbe848b35d9eb320980195985450f244b3030  
Date: 2025-12-19T06:06:44.644Z  
Electron: 37.7.0  
Chromium: 138.0.7204.251  
Node.js: 22.20.0  
V8: 13.8.258.32-electron.0  
OS: Windows\_NT x64 10.0.26200

### Does this stop you from using Cursor

No - Cursor works, but with this issue

---

<div class="post-metadata">

**Author:** ![dbolotin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/dbolotin/32/40940_2.png) [@dbolotin](https://forum.cursor.com/u/dbolotin)\
**Post date:** [December 21, 2025, 3:26pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/8 "2025-12-21T15:26:48Z")

</div>

Link to related Notion issue:

> <https://github.com/makenotion/notion-mcp-server/issues/167>
>
> Since 2.0.75 Claude Code, both pure MCP or installation via Plugin do not work, …they lost auth and can't reconnect.
> Restarting Claude Code - do not help
> Reinstall of the MCP / Plugin - do not help
> 
> On fresh install - it asks for Auth, tells you that Auth was successful and you can close the window, but then \`Authentication successful, but server reconnection failed\`

---

<div class="post-metadata">

**Author:** ![ggat](https://avatars.discourse-cdn.com/v4/letter/g/c68b51/32.png) [@ggat](https://forum.cursor.com/u/ggat)\
**Post date:** [December 21, 2025, 3:47pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/9 "2025-12-21T15:47:48Z")

</div>

### Where does the bug appear (feature/product)?

macOS 15.6.1  
Cursor IDE (2.2.43)

### Describe the Bug

Can’t connect to Notion MCP from Cursor IDE, it keeps getting stuck in “Loading tools…” or “Needs authentication”.

Full output

```auto
2025-12-21 10:30:59.774 [info] Handling CreateClient action
2025-12-21 10:30:59.774 [info] Creating streamableHttp transport
2025-12-21 10:30:59.774 [info] Connecting to streamableHttp server
2025-12-21 10:30:59.777 [info] No stored tokens found
2025-12-21 10:31:00.180 [info] No stored client information found
2025-12-21 10:31:00.183 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:31:00.541 [info] Saving client information {"redirects":1,"clientIdPresent":true}
2025-12-21 10:31:00.551 [info] No stored tokens found
2025-12-21 10:31:00.551 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:31:00.551 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:31:00.553 [info] Saving PKCE code verifier {"verifierLen":43}
2025-12-21 10:31:00.555 [info] Redirect to authorization requested {"url":"https://mcp.notion.com/authorize?response_type=code&client_id=qQ-IXVfcn4_uNpHO&code_challenge=DWpGSKF4IC0nz4451zec2g7MlX0fa8KC6ouvEL74X_Q&code_challenge_method=S256&redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback&state=eyJpZCI6InVzZXItTm90aW9uIn0&resource=https%3A%2F%2Fmcp.notion.com%2F"}
2025-12-21 10:31:00.560 [info] Stored server URL for OAuth flow
2025-12-21 10:31:00.560 [info] OAuth provider needs auth callback during connection
2025-12-21 10:31:00.561 [error] Error connecting to streamableHttp server, falling back to SSE: Unauthorized
2025-12-21 10:31:00.561 [warning] Unauthorized error connecting to streamableHttp server, returning transport
2025-12-21 10:31:00.561 [info] Successfully connected to streamableHttp server
2025-12-21 10:31:00.561 [info] Storing streamableHttp client
2025-12-21 10:31:00.561 [info] CreateClient completed, server stored: true
2025-12-21 10:31:59.887 [info] Handling ListOfferings action, server stored: true
2025-12-21 10:31:59.887 [info] Connected to streamableHttp server, fetching offerings
2025-12-21 10:31:59.888 [info] Found 0 tools, 0 prompts, and 0 resources
2025-12-21 10:33:08.768 [info] Handling ListOfferings action, server stored: true
2025-12-21 10:33:08.768 [info] Connected to streamableHttp server, fetching offerings
2025-12-21 10:33:08.768 [info] Found 0 tools, 0 prompts, and 0 resources
2025-12-21 10:35:31.677 [info] Handling LogoutServer action
2025-12-21 10:35:31.677 [info] Clearing stored OAuth data
2025-12-21 10:35:31.689 [info] Successfully cleared OAuth tokens
2025-12-21 10:35:31.689 [info] Cleaning up
2025-12-21 10:35:31.701 [info] Handling ReloadClient action
2025-12-21 10:35:31.701 [info] Creating streamableHttp transport
2025-12-21 10:35:31.701 [info] Connecting to streamableHttp server
2025-12-21 10:35:31.710 [info] No stored tokens found
2025-12-21 10:35:32.615 [info] No stored client information found
2025-12-21 10:35:32.619 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:35:32.630 [info] Handling ListOfferings action, server stored: false
2025-12-21 10:35:32.630 [error] No server info found
2025-12-21 10:35:33.015 [info] Saving client information {"redirects":1,"clientIdPresent":true}
2025-12-21 10:35:33.025 [info] No stored tokens found
2025-12-21 10:35:33.026 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:35:33.026 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:35:33.026 [info] Saving PKCE code verifier {"verifierLen":43}
2025-12-21 10:35:33.028 [info] Redirect to authorization requested {"url":"https://mcp.notion.com/authorize?response_type=code&client_id=ZG36CpUcUP4eO5TS&code_challenge=1m7CKpMKnOO79zrN5qN_TJMKm6l2DS8sl8F6VDjwi9k&code_challenge_method=S256&redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback&state=eyJpZCI6InVzZXItTm90aW9uIn0&resource=https%3A%2F%2Fmcp.notion.com%2F"}
2025-12-21 10:35:33.030 [info] Stored server URL for OAuth flow
2025-12-21 10:35:33.030 [info] OAuth provider needs auth callback during connection
2025-12-21 10:35:33.030 [error] Error connecting to streamableHttp server, falling back to SSE: Unauthorized
2025-12-21 10:35:33.030 [warning] Unauthorized error connecting to streamableHttp server, returning transport
2025-12-21 10:35:33.030 [info] Successfully connected to streamableHttp server
2025-12-21 10:35:33.030 [info] Storing streamableHttp client
2025-12-21 10:35:33.031 [info] Successfully reloaded client
2025-12-21 10:35:33.346 [info] Handling ListOfferings action, server stored: true
2025-12-21 10:35:33.346 [info] Connected to streamableHttp server, fetching offerings
2025-12-21 10:35:33.346 [info] Found 0 tools, 0 prompts, and 0 resources
2025-12-21 10:35:46.716 [info] Received OAuth callback with code
2025-12-21 10:35:47.054 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:35:47.533 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:47.536 [info] OAuth authorization completed
2025-12-21 10:35:47.544 [info] Handling ReloadClient action
2025-12-21 10:35:47.544 [info] Cleaning up
2025-12-21 10:35:47.544 [info] Creating streamableHttp transport
2025-12-21 10:35:47.544 [info] Connecting to streamableHttp server
2025-12-21 10:35:48.439 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:49.633 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:51.735 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:53.072 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:54.391 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:56.087 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:57.312 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:35:58.826 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:00.166 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:01.150 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:02.089 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:02.956 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:04.001 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:05.482 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:06.826 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:07.857 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:09.254 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:10.529 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:12.060 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:13.280 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:14.717 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:16.183 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:17.419 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:18.819 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:19.789 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:21.524 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:23.048 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:24.605 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:26.101 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:27.521 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:29.311 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:30.823 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:31.953 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:32.899 [info] Saving tokens {"accessTokenLen":86,"refreshPresent":true,"expiresIn":3600}
2025-12-21 10:36:33.441 [info] Invalidating credentials: tokens
2025-12-21 10:36:33.761 [info] No stored tokens found
2025-12-21 10:36:33.763 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:36:33.763 [info] Using redirect URL {"url":"cursor://anysphere.cursor-mcp/oauth/callback"}
2025-12-21 10:36:33.764 [info] Saving PKCE code verifier {"verifierLen":43}
2025-12-21 10:36:33.771 [info] Redirect to authorization requested {"url":"https://mcp.notion.com/authorize?response_type=code&client_id=ZG36CpUcUP4eO5TS&code_challenge=9aVW5YcWc1CCsMfC8W6iEQc4b_hVXXFz_9q48qGBlUI&code_challenge_method=S256&redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback&state=eyJpZCI6InVzZXItTm90aW9uIn0&resource=https%3A%2F%2Fmcp.notion.com%2F"}
2025-12-21 10:36:33.775 [info] Stored server URL for OAuth flow
2025-12-21 10:36:33.775 [info] OAuth provider needs auth callback during connection
2025-12-21 10:36:33.775 [error] Error connecting to streamableHttp server, falling back to SSE: Unauthorized
2025-12-21 10:36:33.775 [warning] Unauthorized error connecting to streamableHttp server, returning transport
2025-12-21 10:36:33.775 [info] Successfully connected to streamableHttp server
2025-12-21 10:36:33.775 [info] Storing streamableHttp client
2025-12-21 10:36:33.775 [info] Successfully reloaded client
2025-12-21 10:36:34.198 [info] Handling ListOfferings action, server stored: true
2025-12-21 10:36:34.198 [info] Connected to streamableHttp server, fetching offerings
2025-12-21 10:36:34.198 [info] Found 0 tools, 0 prompts, and 0 resources
2025-12-21 10:38:08.686 [info] Handling ListOfferings action, server stored: true
2025-12-21 10:38:08.686 [info] Connected to streamableHttp server, fetching offerings
2025-12-21 10:38:08.686 [info] Found 0 tools, 0 prompts, and 0 resources
2025-12-21 10:43:08.307 [info] Handling ListOfferings action, server stored: true
2025-12-21 10:43:08.307 [info] Connected to streamableHttp server, fetching offerings
2025-12-21 10:43:08.307 [info] Found 0 tools, 0 prompts, and 0 resources

```

### Steps to Reproduce

- Notion: Settings → Connections → Notion MCP → Cursor → Connect

- Cursor: Click “Install”

- Notion: OAuth Authorize

- Cursor: Notion - “Needs authentication”

- Cursor: Click “Connect”

- Notion: Connection prompt - Click “Continue”

- Cursor: For sometime (up to 1 min) keeps printing the “Saving tokens…” and the UI says “Loading tools…”

- Cursor: Reverts back to “Needs authentication”

---

<div class="post-metadata">

**Author:** ![federico\_barbarisi](https://avatars.discourse-cdn.com/v4/letter/f/c67d28/32.png) [@federico\_barbarisi](https://forum.cursor.com/u/federico_barbarisi)\
**Post date:** [December 21, 2025, 10:04pm UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/11 "2025-12-21T22:04:01Z")

</div>

ok, now i can connect with the notion mcp

---

<div class="post-metadata">

**Author:** ![Truthanb](https://avatars.discourse-cdn.com/v4/letter/t/ecd19e/32.png) [@Truthanb](https://forum.cursor.com/u/Truthanb)\
**Post date:** [December 22, 2025, 2:05am UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/12 "2025-12-22T02:05:27Z")

</div>

I am good too, now.

---

<div class="post-metadata">

**Author:** ![ggat](https://avatars.discourse-cdn.com/v4/letter/g/c68b51/32.png) [@ggat](https://forum.cursor.com/u/ggat)\
**Post date:** [December 22, 2025, 11:28am UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/13 "2025-12-22T11:28:44Z")

</div>

It started working for me too

---

<div class="post-metadata">

**Author:** ![Chris\_Drake](https://avatars.discourse-cdn.com/v4/letter/c/da6949/32.png) [@Chris\_Drake](https://forum.cursor.com/u/Chris_Drake)\
**Post date:** [December 24, 2025, 3:04am UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/14 "2025-12-24T03:04:40Z")

</div>

This is actually caused by a whole swathe of Cursor bugs, which I’m told are being worked on.

Here’s a list of some:

> [@Cursor MCP server subsystem is totally SNAFU - Please can you prioritize some fixes!](https://forum.cursor.com/t/cursor-mcp-server-subsystem-is-totally-snafu-please-can-you-prioritize-some-fixes/143156):
>
> Where does the bug appear (feature/product)? Cursor IDE Describe the Bug Me and others have reported, days ago, a critical issue with tool calls going to the wrong MCP server, which remains unfixed. The IDE still makes multiple unnecessary simultaneous connections to non-stdio MCP servers If any server goes down, cursor drops all connections to all servers Whether or not cursor works after changing the mcp.json file is 50%/50% half -the time it says “Error show output” (when there was nothing …

> [@New MCP bugs on non-stdio MCP servers](https://forum.cursor.com/t/new-mcp-bugs-on-non-stdio-mcp-servers/146819):
>
> Where does the bug appear (feature/product)? Cursor IDE Describe the Bug Cursor continually re-connects to non-stdio MCP servers every 20s for no reason Steps to Reproduce look at the logs Expected Behavior MCP is a permanent connection - it should connect one time only, at start, and stay connected. Operating System Windows 10/11 Current Cursor Version (Menu → About Cursor → Copy) version 2.2.36 on windows 11 Additional Information Logs: 2025-12-19 10:24:32.885 [info] Successfully connec…

> [@Auto-reconnection to MCP servers is broken (runs multiple times in parallel, then fails). on/off works OK](https://forum.cursor.com/t/auto-reconnection-to-mcp-servers-is-broken-runs-multiple-times-in-parallel-then-fails-on-off-works-ok/141497):
>
> Where does the bug appear (feature/product)? Cursor IDE Describe the Bug When cursor detects a change to mcp.json (i.e. when we edit it), it auto-reconnects, but it incorrectly calls its own auto-reconnect code 3 times in parallel, all at the same time, then errors out. Toggling off/on works OK. Steps to Reproduce Toggle-off-toggle-on:- Good, works: 2025-11-07 12:16:06.847 [info] Handling CreateClient action 2025-11-07 12:16:06.847 [info] Creating streamableHttp transport 2025-11-07 12:16…

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [January 15, 2026, 3:04am UTC](https://forum.cursor.com/t/notion-mcp-tools-stuck-loading-in-cursor-2-2-43-oauth-completes-but-0-tools-fetch-failed-no-server-info-found/146936/15 "2026-01-15T03:04:41Z")

</div>

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.
