MCP servers authenticated and shown as Connected in Cursor Desktop Settings → MCP remain unusable in Cursor Agent CLI sessions. The CLI agent catalog reports those namespaces as needsAuth with an empty tool list. Attempting interactive MCP authentication from the CLI fails because auth is restricted to the desktop IDE.
This breaks the expectation that Desktop MCP connection state applies to CLI Agent on the same machine.
Steps to Reproduce
In Cursor Desktop → Settings → MCP, connect one or more MCP servers (plugin and/or URL-based). Confirm status Connected.
Open a terminal and start Cursor Agent CLI in a workspace.
Ask the agent to list available MCP tools or invoke a tool from a Connected server.
Observe needsAuth / empty tools and failed CLI auth.
Expected Behavior
MCP servers marked Connected in Desktop are available to Agent CLI (same user/machine), or
Agent CLI provides a working auth path (agent mcp login / equivalent) for both:
servers in ~/.cursor/mcp.json
Desktop plugin MCPs
so tools can be used from terminal Agent sessions.
The CLI and Cursor Desktop keep separate MCP sign-ins right now, so a server showing Connected in Desktop still needs a one-time sign-in from the CLI. The agent inside the CLI can’t start that sign-in itself (that’s the “desktop IDE” message you saw), but the CLI has its own login command that does.
Could you try this?
Open a terminal in the project folder where you run the CLI.
Run agent mcp list and note the names of the servers that aren’t ready.
For each one, run agent mcp login <name> (for example agent mcp login atlassian, using the exact name from step 2).
Finish the sign-in in the browser window that opens, then come back to the terminal.
Run agent mcp list again and check that the server now shows as ready.
Start agent and ask it to use one of that server’s tools.
You can also do this inside a running session: type /mcp, pick the server, and choose Login. The CLI saves sign-ins per project folder, so you may need to repeat this once in another repo.
If any server fails at step 4 (for example, the provider’s consent page rejects the request), reply with the server name and the exact message shown, and I’ll pass it on to the team.
This was 100% a solution for my problem, loved that there are two ways to do that from the cli both from within the agent window and from terminal.
As a feedback point it would be great to perhaps have some kind of system prompt instruction for the agent to be able to direct me to do these actions you have listed here as solutions for my problem!