Skip to main content
Connector plugin · listing tai42/connector-slack

Install

Permissions

Provides

slack

Connector — OAuth connector for Slack over Slack’s hosted MCP server. Registers the slack connector: one OAuth connection per alias against Slack’s hosted MCP server at https://mcp.slack.com/mcp. The plugin is pure descriptor data and ships no package; the runtime’s connector engine runs the OAuth flow, seals the tokens, and reaches the MCP server over Streamable HTTP.

Install

Install the descriptor into the running server with the CLI:
Or add the provider by hand as a manifest connectors: entry:
manifest.yml

Create the Slack app

Create a Slack app and configure OAuth. The app must be directory-published or internal to your workspace — Slack refuses an unlisted app on this flow, and there is no dynamic client registration. These are USER-token endpoints:
  • authorize: https://slack.com/oauth/v2_user/authorize
  • token: https://slack.com/api/oauth.v2.user.access
Add this exact redirect URI, where {origin} is your deployment’s public origin (or CONNECTORS_OAUTH_BRIDGE_URL when you run a shared bridge):
Then set the client credentials on the API process:
The engine-wide CONNECTORS_* settings — the key-encryption key (CONNECTORS_KEK), the state HMAC key (CONNECTORS_STATE_HMAC_KEY), and the redirect-URI allowlist (or CONNECTORS_OAUTH_BRIDGE_URL) — are shared by every connector and are described in Connectors. The origin you registered with Slack must appear in the redirect-URI allowlist, and it must be https for anything but a local host.

Verify the rotating-token response (before release)

Slack’s official documentation confirms this descriptor’s flow: the oauth.v2.user.access endpoint returns the user token at the top level (access_token, token_type: "user") — not nested under authed_user like the bot oauth.v2.access response — and /oauth/v2_user/authorize is the user-token authorize endpoint. The one detail Slack’s docs do not show in an explicit example is the rotation-enabled response body, so before release run one manual Connect against a rotation-enabled Slack dev app and confirm a top-level refresh_token and expires_in are present, as the OAuth 2.0 spec requires.

See also