CommandCodeAI / CommandCodeAI/command-code

One-click Slack MCP install: register official OAuth client

Open
#610 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
4k
Forks
350
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the cmd mcp add --transport http OAuth flow and compare Slack's authorization-server metadata with the existing Notion DCR path. Trace where the fallback command-code client is selected and how the local http://127.0.0.1:8085/callback redirect is configured. Done means the well-known Slack URL opens Slack authorization with an official client and completes installation without user-created credentials.

Written by the indexing model from the issue text.

Assessment

Domain
authentication, cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.