[BUG] Slack MCP: 302 redirect not followed after OAuth – permanent connection failure (not resolved by restart)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The pre-configured OAuth credentials feature (--client-id / --client-secret) does not work with Slack's MCP server (mcp.slack.com/sse), despite the v2.1.30 release notes explicitly citing Slack as the target use case:
"Added pre-configured OAuth client credentials for MCP servers that don't support Dynamic Client Registration (e.g., Slack)"
Attempt 1: HTTP transport
claude mcp add --transport http \
--client-id CLIENT_ID --client-secret --callback-port 4180 \
slack-official https://mcp.slack.com/sse
OAuth completes successfully in the browser, but Claude Code reports:
Authentication successful, but server reconnection failed.
You may need to manually restart Claude Code for the changes to take effect.
Restarting does not resolve the issue.
Attempt 2: SSE transport
Removed and re-added with --transport sse. Same result – authentication succeeds, reconnection fails.
Attempt 3: Direct redirect target
Slack's endpoint returns a 302 redirect:
GET https://mcp.slack.com/sse → 302 → https://mcp-9827.slack.com/sse
Pointing directly at the redirect target (mcp-9827.slack.com/sse) produces a different error – Slack's OAuth page rejects the authorisation request with:
Error: "scope is required"
This suggests mcp.slack.com injects the required scopes into the OAuth flow automatically, but Claude Code fails to establish the connection after the redirect.
Root cause
The likely issue is that Claude Code's SSE/HTTP client does not follow the 302 redirect from mcp.slack.com → mcp-9827.slack.com, or does not carry the OAuth bearer token through the redirect.
What Should Happen?
Successful OAuth authentication and connection to Slack's MCP server.
Suggested Fix
Follow 302 redirects on SSE/HTTP connections, carrying the OAuth bearer token through to the target host.
Error Messages/Logs
Steps to Reproduce
- Create a Slack app and note client ID / client secret
- Add the server:
claude mcp add --transport http \
--client-id YOUR_CLIENT_ID --client-secret --callback-port 4180 \
slack-official https://mcp.slack.com/sse
- Start Claude Code and run
/mcp - Select Authenticate → browser opens, OAuth completes successfully
- Claude Code reports "Authentication successful, but server reconnection failed"
- Restarting Claude Code does not resolve – server remains in failed state
Claude Model
Opus
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.32
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
_No response_
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗