Hey, thanks for the detailed report. It really helped with debugging.
The clue is in the error text: “Error response / Error code: 404 / Message: File not found. / Nothing matches the given URI.” This is not a Cursor page, it is the default error page from Python http.server. That means port 8787 on your Mac is already taken by another local process, and after you click Allow the redirect goes to that process instead of Cursor’s callback listener. That’s also why Cmd+Q didn’t help. The port is held by a third party process, not Cursor.
Workaround:
- Find what’s listening on port 8787:
lsof -nP -iTCP:8787 -sTCP:LISTEN - Stop that process. It’s often
python3 -m http.server, a Dask dashboard, orwrangler devsince they default to 8787. - Click Authorize for Slack or Gmail again. The port is only needed during the handshake, after that you can use it again.
This is basically the same fixed port 8787 redirect behavior we’re tracking. It has come up in other threads too: Cursor OAuth redirect_uri uses fixed localhost:8787 port, OAuth redirect URI changed from cursor:// to http://localhost for Streamable HTTP MCP. I can’t share an ETA yet, but I’ll post here when there’s an update.
Let me know if the workaround helped.