使用说明
mcp-slack
MCP server for Slack integration, built with FastMCP. Provides tools for listing channels, reading messages, and posting to Slack.
Channel listing and reading are observational. slack_post_message performs an
external write immediately when invoked, so callers should confirm the resolved
destination and message content before calling it.
Install
pip install -e ".[dev]"
Environment Variables
| Variable | Required | Description |
|---|---|---|
SLACK_BOT_TOKEN |
Yes | Bot User OAuth Token (xoxb-...) |
SLACK_DEFAULT_CHANNEL |
No | Current fallback channel when slack_post_message receives an empty channel |
Copy .env.example to .env and fill in your values.
Tools
| Tool | Description |
|---|---|
slack_list_channels |
List all channels accessible by the bot |
slack_read_channel(channel, limit?) |
Read last N messages from a channel (default: 20, max: 100) |
slack_post_message(channel, text) |
Send a message to a channel |
The channel parameter accepts a channel name (without #) or a public-channel
ID beginning with C. Correct handling for other Slack conversation ID types is
tracked in Issue #8.
Slack App Setup
-
Go to api.slack.com/apps and create a new app
-
Under OAuth & Permissions, add the required Bot Token Scopes for the tools you want to use:
Tool Required Bot Scopes slack_list_channelschannels:read,groups:readslack_read_channelchannels:history,groups:historyslack_post_messagechat:writeNote: Private-channel access requires the corresponding
groups:*scopes and bot membership. Direct-message and multi-party conversation support is not currently implemented; the supported conversation contract is tracked in Issue #8. -
Install the app to your workspace
-
Copy the Bot User OAuth Token (
xoxb-...) toSLACK_BOT_TOKEN -
Invite the bot to channels it should access:
/invite @your-bot-name
Troubleshooting: missing_scope Error
If a tool fails with a missing_scope error, it means the bot doesn't have the necessary permissions to perform that action. Check the error message to see which scope is missing, cross-reference it with the table above, and add the missing scope in your Slack App's OAuth & Permissions page. (Remember to reinstall the app to your workspace after changing scopes!)
Usage
Standalone
mcp-slack
Claude Desktop config
{
"mcpServers": {
"slack": {
"command": "mcp-slack",
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token"
}
}
}
}
Development
pip install -e ".[dev]"
ruff check src/ tests/
ruff format src/ tests/
pytest
License
MIT
Documentation and roadmap
Priorities live in GitHub Issues and Projects. Delivery history lives in closed Issues, pull requests and GitHub Releases.