Two tools do the work — list the channels, post the message — behind a Slack OAuth flow that runs on first use, so no token is minted by hand.
A remote Slack server built on FastMCP. It runs the Slack OAuth flow itself and persists the token — locally, or in DynamoDB when deployed to the cloud — so each user authorizes their own workspace.
- list_channels returns the workspace's channels mapped to their IDs
- post_message posts to a channel by channel_id
- get_auth_status reports whether the current user is authorized
- The OAuth flow starts automatically on the first tool call, rather than needing a token pasted into a config file
- Dynamic client registration, so clients that register themselves connect without manual setup
Python 3.11 or later and uv. You bring your own Slack app: register it in Slack's app console and give the server that app's client id and secret, with the chat:write and channels:read scopes and a redirect URL registered. Runs locally or on AWS App Runner.
