TL;DR In the terminal:
/mcp, the server, Authenticate; if you already fixed it outside the session,/mcp reconnect all. In a cloud session: reconnect it atclaude.ai/customize/connectorsand ask Claude again in the same conversation.
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate) shows up when the login of an MCP server or a claude.ai connector expires. Nothing warns you when it expires: you see it the first time Claude tries to use it. What broke is the connection, not the conversation, so don't open a new session: reconnect and carry on.
What expires and what you see
An OAuth login keeps two tokens: a short-lived access token, and a refresh token used to get a new one. Tested on v2.1.319 against a local MCP server with real OAuth whose tokens were expired by hand:
| What expires | What you see | What you do |
|---|---|---|
| Only the access token | Nothing: Claude Code gets a new one with the refresh token and retries the call | Nothing |
| Both | MCP server "probe" needs you to sign in again (run /mcp to re-authenticate) |
Sign in again, in the same session |
In the terminal
1. Sign in again from /mcp
/mcp, pick the server, Authenticate. The browser opens, you sign in, and the session confirms it:
❯ /mcp
⎿ Authentication successful. Connected to probe.
The next call works, conversation intact.
2. If you fixed it outside, reconnect
Here's the trap. If you sign in from another terminal with claude mcp login <name> after the open session has already failed, that session never finds out: it keeps returning MCP server "probe" needs authentication and doesn't even try again. /mcp shows it with two lines that disagree:
Status: ⚠ needs authentication
Auth: ✔ authenticated
The good token is already stored; what's missing is for the session to connect again. No browser needed:
❯ /mcp reconnect all
⎿ Reconnected 1 of 1 MCP server
If you sign in outside before the session fails, its next call picks up the new token on its own. That's why authenticating from the shell before you start avoids the interruption.
In a cloud session
The error is the same and also points you at /mcp, but in the cloud the connector is authorized by your claude.ai account, not by the session. You fix it at claude.ai/customize/connectors: connect it again, go through the service's login, and come back.
Tested with Google Slides in an open cloud session. Once it was disconnected, the first call failed with MCP server "Google_Slides" needs you to sign in again (run /mcp to re-authenticate). Once it was reconnected on claude.ai, the same session, with no restart and nothing else touched, read presentations again on the first try. In the cloud, a fix made outside does reach the open session.
When Claude checks your connectors, the desktop app shows you a card:
Don't use it to tell whether a connector works. With Google Slides disconnected it still offered the button that uses it (Usar in the Spanish app), while a connector you never connected gets Conectar. And that button connects nothing: it types a message into the chat for you (for Tella, "Use Tella for this") and leaves the connector as it was.
Reference
| Where the session runs | Where connectors come from | Where you fix it | Does the open session pick it up? |
|---|---|---|---|
| Terminal, VS Code, JetBrains: your own MCP servers | Your config (claude mcp add, .mcp.json) |
/mcp, Authenticate |
Yes; fixed outside, only after /mcp reconnect all |
| Terminal, VS Code, JetBrains: claude.ai connectors | Claude Code fetches them from claude.ai | claude.ai/customize/connectors |
Not tested |
| Cloud | The session's host passes them in | claude.ai/customize/connectors |
Yes, no restart |
| Desktop, local or SSH | The desktop app passes them in | claude.ai/customize/connectors |
Not tested |
If the server never connects in the first place, the diagnosis is a different one: the "Failed to connect" decision tree.
Official docs: How connectors reach Claude Code · Authenticate with remote MCP servers
Requirements
/mcp reconnect allneeds Claude Code v2.1.284 or later. Everything above was run on v2.1.319 on November 7, 2026.