Slack MCP integration for agent-to-human notifications and bi-directional communication. Use when agents need to post progress updates, request approvals, or read user responses via Slack channels and threads.
100
100%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Package: @kazuph/mcp-slack (stdio). Auth: SLACK_MCP_XOXB_TOKEN env var. Enable SLACK_MCP_ADD_MESSAGE_TOOL=true.
See REFERENCE.md for OAuth scopes and token setup.
🔄 TAS-42 — In progress — implementing unit tests
Files: 3 (PriceFilter.tsx, test, index) | ETA: ~5 minPost an approval request:
const res = mcp_slack_conversations_add_message({
channel: 'C012345',
text: '⏳ Approval Required — TAS-42: Run DB migration?',
thread_ts: null
});
if (!res?.ok) throw new Error('Slack post failed: ' + res?.error);Approval requests are dual-channel — post to Slack AND ask in chat. First response wins.
Post to Slack:
⏳ Approval Required — TAS-42: Run DB migration
Reply: ✅ approved | ❌ rejected | 💬 questionsAsk in chat with the same question.
Chat response wins → post confirmation to Slack thread.
Waiting for Slack → poll thread:
// Poll for approval reply (30s interval, 10 min timeout)
const replies = mcp_slack_conversations_replies({ channel: 'C012345', ts: threadTs, limit: 20 });
for (const msg of replies?.messages || []) {
if (/\b(approved|yes|go)\b/i.test(msg.text)) return 'approved';
if (/\b(rejected|no|stop)\b/i.test(msg.text)) return 'rejected';
}
// Retry after 30s; timeout after 10 minon-session-start hook checks for replies.Project-specific channel mappings: .opencastle/stack/notifications-config.md. Always thread replies; one thread per task; include tracker issue ID.
Write: 20/min; Read: 50/min. Batch updates; use threads; cache channel/user IDs.
See REFERENCE.md for security guidelines.
f5c8508
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.