Summary
cmd mcp add --transport http slack https://mcp.slack.com/mcp cannot complete OAuth. Slack rejects the fallback client with Invalid client_id.
Root cause
Slack's MCP server (mcp.slack.com) does not advertise a Dynamic Client Registration endpoint in its OAuth authorization-server metadata:
{"issuer":"https://mcp.slack.com","authorization_endpoint":"https://slack.com/oauth/v2_user/authorize","token_endpoint":"https://slack.com/api/oauth.v2.user.access",...}
(compare Notion: mcp.notion.com advertises registration_endpoint and auto-registers fine).
When DCR is unavailable, the CLI falls back to a generic pre-registered client — clientId: "command-code" — which Slack rejects with Invalid client_id at https://slack.com/oauth/v2_user/authorize.
Expected behavior
One-click install like Claude/ChatGPT: user runs cmd mcp add slack https://mcp.slack.com/mcp, browser opens Slack's authorization page against an official, pre-registered Command Code Slack app, and completes.
Suggestion
Register an official Slack app (Slack "MCP connector" or custom app) with:
- OAuth redirect URL:
http://127.0.0.1:8085/callback (the CLI's local callback)
- User scopes per Slack's MCP server
scopes_supported (search:read., chat:write, channels:history, groups:history, im:history, mpim:history, canvases:read/write, users:read, reactions:, emoji:read, files:read/write, channels:read/write, groups:read/write, im:write, mpim:write, lists:read/write)
Then either ship clientId/clientSecret in the CLI for the well-known slack URL, or support server-keyed pre-registered credentials like other editors do.
Impact
Blocked install for the second most-requested MCP integration after Notion. Workaround today requires users to create their own Slack app and mcp add-json the client credentials.
Summary
cmd mcp add --transport http slack https://mcp.slack.com/mcpcannot complete OAuth. Slack rejects the fallback client withInvalid client_id.Root cause
Slack's MCP server (
mcp.slack.com) does not advertise a Dynamic Client Registration endpoint in its OAuth authorization-server metadata:{"issuer":"https://mcp.slack.com","authorization_endpoint":"https://slack.com/oauth/v2_user/authorize","token_endpoint":"https://slack.com/api/oauth.v2.user.access",...}(compare Notion:
mcp.notion.comadvertisesregistration_endpointand auto-registers fine).When DCR is unavailable, the CLI falls back to a generic pre-registered client —
clientId: "command-code"— which Slack rejects withInvalid client_idathttps://slack.com/oauth/v2_user/authorize.Expected behavior
One-click install like Claude/ChatGPT: user runs
cmd mcp add slack https://mcp.slack.com/mcp, browser opens Slack's authorization page against an official, pre-registered Command Code Slack app, and completes.Suggestion
Register an official Slack app (Slack "MCP connector" or custom app) with:
http://127.0.0.1:8085/callback(the CLI's local callback)scopes_supported(search:read., chat:write, channels:history, groups:history, im:history, mpim:history, canvases:read/write, users:read, reactions:, emoji:read, files:read/write, channels:read/write, groups:read/write, im:write, mpim:write, lists:read/write)Then either ship
clientId/clientSecretin the CLI for the well-knownslackURL, or support server-keyed pre-registered credentials like other editors do.Impact
Blocked install for the second most-requested MCP integration after Notion. Workaround today requires users to create their own Slack app and
mcp add-jsonthe client credentials.