Cursor 3.23.12 on Windows, Atlassian plugin 0.1.0 (plugin-atlassian-atlassian), endpoint https://mcp.atlassian.com/v2/mcp. The OAuth callback exchange completes and the tokens are saved. The next streamable HTTP call then returns “401 after successful authentication” and the status goes back to needsAuth (v2). The UI stays on “Exchanging token”. The same sequence happened at 9:45, 9:59, 10:12, and 10:32, including after I removed the Atlassian MCP grant under Connected apps and signed in again. The same plugin connects successfully outside the local Cursor app.
Steps to Reproduce
Install the Atlassian plugin 0.1.0 in Cursor 3.23.12 on Windows.
Click Authenticate on the atlassian MCP row.
Finish the Atlassian consent screen and return to Cursor.
The row stays on Exchanging token and the log shows needsAuth (v2).
Expected Behavior
After the token is saved, the Atlassian MCP connects and its tools become available.
Hey, thanks for the detailed report. The Server returned 401 after successful authentication error means Atlassian rejected the token Cursor just received. Most often this points to a stale local sign-in state, not an issue with your Atlassian grant. Let’s try a clean sign-in.
If Grok Bot desktop is open, close it for this test.
In Cursor: Cursor Settings > Tools & MCP.
Open the Atlassian entry and under Environments > Local click Logout.
Check your mcp.json files global and project for another Atlassian entry. If you find one, temporarily remove it or disable it.
Fully close Cursor all windows, then reopen it.
Go back to Tools & MCP, click Authenticate for Atlassian, and complete the consent screen.
If it gets stuck on Exchanging token again, here’s a workaround that helped in similar cases. Disable the plugin and add Atlassian directly in mcp.json, pinning your site:
Thanks. I tested the direct mcp.json configuration as suggested, with the Atlassian plugin disabled.
The connection still gets stuck on “Exchanging token”. The log shows that the OAuth refresh completes and the tokens are persisted, but the subsequent Streamable HTTP connection is rejected:
Auth-related error connecting to streamableHttp server:
Server returned 401 after successful authentication
The client then returns to:
MCP OAuth needsAuth (v2)
Attempt time:
4 October 2026 at approximately 12:41 EEST (UTC+3)
I can confirm that the mcp.json connection was pinned to the relevant Atlassian site.
Could this indicate a Cursor OAuth/resource-audience issue, or is there a specific Atlassian-side authorization setting I should check?