MCP error -32603: Discord client not logged in.
Fixes the Discord MCP server failing every tool with client not logged in. Use when the bot token tests fine via curl but the MCP server says it is not logged in. Not for invalid tokens or missing intents.
MCP error -32603: Discord client not logged in.
TL;DR: On the Smithery remote server this was a token-passing bug; the maintainer re-enabled the discordlogin tools as the workaround. Locally, make sure DISCORDTOKEN is in the server env block and restart the whole MCP client. Test the token with a direct Discord API curl to rule out a bad token first.
The error
MCP error -32603: Discord client not logged in.Fix it
- curl the Discord API with your bot token to verify it.
Expected: A 200 proves the token is good.
- Check the MCP config env block for DISCORD_TOKEN.
Expected: The token is present and correct.
- Fully restart the MCP client.
Expected: The Discord client logs in at server startup.
- Call a Discord tool, or run the discord_login tool if your version has it.
Expected: Tools succeed.
When this applies
Every Discord MCP tool fails with client not logged in while the token works via curl.
When this does NOT apply
If curl also fails, the token is bad; regenerate it. Gateway 4014 closes are the intents issue.
Tool compatibility
barryyip0625/mcp-discord, Smithery remote and local installs
Also seen as
- Discord MCP not logged in
- discord client not logged in smithery
- MCP error 32603 discord
Why it happens
The server keeps one Discord gateway client; if the token never reaches the server process (remote token-passing bug, or env not set locally), the client never logs in and every tool fails with -32603.
Edge cases
- Smithery remote users hit the token-passing bug; local users hit env config.
- Restart the client, not just the chat; the gateway client lives with the server process.
- Regenerating the token requires updating every place it is configured.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.