# Slack > Canonical: https://www.yalc.ai/mcps/slack/ Read channels, send messages, and trigger Yalc workflows from inside your team Slack. ## Categories - operations - content **Website:** https://slack.com/ **Repo:** https://www.npmjs.com/package/@modelcontextprotocol/server-slack ## Glance - Maintainer: ModelContextProtocol - Auth: Bot token + OAuth - Tools: Read + post + react **Install Command:** claude mcp add slack --env SLACK_BOT_TOKEN=xoxb-your-token --env SLACK_TEAM_ID=T01234567 -- npx -y @modelcontextprotocol/server-slack **Install Notes:** Create a Slack app at api.slack.com/apps with bot scopes (channels:history, channels:read, chat:write, reactions:write, users:read). Install to your workspace, copy the Bot User OAuth Token, replace the placeholders, run the command. Or use `claude plugin install slack` if your Claude Code version supports the plugin command. **Yalc Fit Score:** 9 **Yalc Verdict:** The internal coordination layer for Yalc operators. Push agent run summaries, reply alerts, and weekly reports straight into the channels your team already lives in. ## Plain Description The Slack MCP is the official `@modelcontextprotocol/server-slack` package. It exposes channel reads, message posts, reactions, user lookups, and thread management as native Claude tool calls. Auth is a single bot token plus your team ID. For Yalc operators, Slack is the team coordination layer. The MCP lets workflows post agent run summaries to channels, alert on reply intent classification, surface campaign performance digests, and trigger interactive approval flows. Where Notion is async memory, Slack is sync attention. ## Yalc Framework **Workflow Step:** route ### Workflow Narrative The Slack MCP sits at the **route** node when Yalc needs to surface output to humans (you, your team, your AM). It pairs with Notion (async state) and Unipile (external comms) to complete the operator loop. Yalc workflows that benefit most: agent run health alerts, hot reply notifications, weekly campaign digests, signal triggered ICP alerts, and human in the loop approval flows. **Workflow Position:** The team coordination node. Yalc posts to Slack when a human needs to know something or approve something. Reads are for context (last 10 messages in #gtm) and triggers (a slash command starts a workflow). ### Prompt Patterns - Yalc, every Friday at 5pm, post a campaign performance digest for the last 7 days to #gtm. Include reply rate, top performing variant, and the 3 biggest accounts that engaged. → Yalc reads stats from Instantly + Unipile, summarizes via Claude, posts to Slack. - Yalc, when Predictleads detects a Series B announcement on a target account, post an alert to #signals with the company name, source URL, and recommended outbound action. → Yalc subscribes to Predictleads webhook, classifies, posts via Slack MCP. - Yalc, summarize the last 50 messages in #product, identify the top 3 customer questions, and add them to the FAQ Notion page. → Yalc reads channel history via Slack MCP, classifies via Claude, writes to Notion. ### Chaining **Upstream:** Yalc workflow output (any source) → Slack MCP (post) **Downstream:** Slack reply or reaction → Yalc workflow trigger (via webhook) ### Anti Patterns - Don't post to high traffic channels without testing. Yalc workflows can produce noisy alerts. Pilot in a quiet channel first, then scale. - Don't store sensitive client data in Slack messages. Slack search makes everything findable. Use Notion for state, Slack for transient signals. - Don't use Slack as a CRM. The MCP can read messages but Slack's data model is conversational, not structured. Notion or HubSpot for CRM, Slack for signals. **Compatibility:** Works in Claude Code (primary), Claude Desktop, Cursor, and any MCP-compatible client. The npm package is maintained by the official ModelContextProtocol GitHub org. Slack's per-bot rate limits apply (50 msg/min per channel typical). ## Pros - Official ModelContextProtocol package. Stable and well documented. - Bot token auth, no OAuth dance for the MCP itself. - Reads channel history, posts messages, manages reactions and threads. - Free to use. Slack's bot quotas are generous for typical Yalc volume. - Slash command trigger pattern enables interactive approval workflows. ## Cons - Bot scope choices matter. Wrong scope grant means tool calls return permissions errors. - SLACK_TEAM_ID is per workspace. Multi workspace setups need multiple MCP server registrations. - Slack's free plan limits message history retention. Reads can return empty for old context. - The MCP doesn't subscribe to events natively. Use Slack Events API plus a webhook handler for real time triggers. ## Who For - GTM teams running daily standups, alerts, and digests in Slack - Agencies managing per client coordination channels - Operators who want one prompt to summarize, alert, and route across the team ## Related ### Tool **Rule:** Vendor review and pricing context. ## Alternatives - **Microsoft Teams MCP** - Rule: Switch when your team runs on Teams instead of Slack. - Url: # - **Discord MCP** - Rule: Switch when the workflow is community management, not internal team coordination. - Url: # - **Slack Events API + custom webhook** - Rule: Skip the MCP for high volume real time event handling. Direct Events API is more efficient. - Url: # ## Faq - Q: What scopes does the Slack bot need? - A: At minimum channels:history, channels:read, chat:write, reactions:write, and users:read. For private channels add groups:history and groups:read. For DMs add im:history and im:read. - Q: Can the MCP post to private channels? - A: Yes, if the bot is invited to the channel and has the groups:read and groups:write scopes. The MCP itself doesn't auto join channels. - Q: How do I trigger a Yalc workflow from a Slack slash command? - A: Set up a Slack slash command pointing at a webhook handler you control. The handler invokes Claude Code (or a Claude API call) which runs the Yalc workflow. The MCP itself is for reads and posts, not slash command receiving. - Q: Does this MCP work on Slack's free plan? - A: Yes. The free plan limits message history retention (90 days), so reads of old messages may return empty. Posts and reactions work normally. - Q: How do I prevent the MCP from spamming a channel? - A: Yalc workflows that post to Slack should always include a rate limit and a dry run flag. Test in a private channel first. If you accidentally spam, kick the bot from the channel to break the loop. - Q: Is there an official Anthropic Slack plugin? - A: As of April 2026, `claude plugin install slack` works on recent Claude Code versions. If your version doesn't support plugins, use the manual `claude mcp add` command above. **Reviewer:** Othmane Khadri