Slack Message Sender
Provides tools for sending messages and replying in threads to Slack channels, with automatic channel name resolution.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slack Message Sender Send a message to #general saying 'Hello team!'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP_Slack_Server
MCP Server that provides Slack message sending capabilities for Claude Desktop and KADI agents.
Overview
This server is part of the KADI Slack bot architecture. It:
Provides stateless message sending tools
Resolves channel names to IDs automatically
Supports both direct messages and thread replies
Works with Claude Desktop and Agent_TypeScript via KADI broker
Related MCP server: Slack MCP Server
Architecture
Claude Desktop / Agent_TypeScript
↓
KADI Broker (MCP Upstream)
↓
MCP_Slack_Server (this project)
↓
Slack Web API
↓
Slack ChannelInstallation
cd C:\p4\Personal\SD\MCP_Slack_Server
npm installConfiguration
Create .env file:
SLACK_BOT_TOKEN=xoxb-your-bot-token
MCP_LOG_LEVEL=infoRequired Slack Scopes
chat:write- Send messages to channelschat:write.public- Send messages to public channels without joiningchannels:read- List and resolve channel namesgroups:read- Access private channels (if needed)
Usage
Development Mode
npm run devProduction Mode
npm run build
npm startAs MCP Upstream (via KADI Broker)
Add to kadi-broker/mcp-upstreams.json:
{
"id": "slack-server",
"name": "Slack Message Sender",
"type": "stdio",
"prefix": "slack",
"networks": ["global", "slack"],
"stdio": {
"command": "node",
"args": ["C:/p4/Personal/SD/MCP_Slack_Server/dist/index.js"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-..."
}
}
}Tools
send_message
Send a message to a Slack channel.
Input:
{
"channel": "#general", // or "C09T6RU41HP"
"text": "Hello from Claude!",
"thread_ts": "1234567890.123456" // optional
}Output:
{
"success": true,
"message": "Message sent successfully",
"timestamp": "1234567890.123456",
"channel": "C09T6RU41HP"
}send_reply
Reply to a message in a thread.
Input:
{
"channel": "C09T6RU41HP",
"thread_ts": "1234567890.123456",
"text": "This is a threaded reply"
}Output:
{
"success": true,
"message": "Reply sent successfully",
"timestamp": "1234567890.654321",
"channel": "C09T6RU41HP",
"thread_ts": "1234567890.123456"
}Integration Examples
From Claude Desktop
Send a message to #general saying "Hello team!"From Agent_TypeScript
await client.getBrokerProtocol().invokeTool({
targetAgent: 'slack-server',
toolName: 'slack_send_message',
toolInput: {
channel: '#general',
text: 'Hello from Agent_TypeScript!'
},
timeout: 10000
});Reply to Slack Mention
// After getting mention from MCP_Slack_Client
const mention = mentions[0];
await client.getBrokerProtocol().invokeTool({
targetAgent: 'slack-server',
toolName: 'slack_send_reply',
toolInput: {
channel: mention.channel,
thread_ts: mention.thread_ts,
text: claudeResponse
},
timeout: 10000
});License
MIT
Available Tools
2 toolssend_messageB
Send a message to a Slack channel. Can be used by Claude Desktop and KADI agents to send messages to channels or start new threads.
Inputs: channel (required), text (required), thread_ts.
send_replyA
Reply to a message in a Slack thread. Useful for maintaining conversation context.
Inputs: channel (required), thread_ts (required), text (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one sends a new message or starts a thread, the other replies within a thread. No ambiguity.
Both tools follow a consistent 'send_' prefix and verb_noun pattern ('send_message', 'send_reply'), making the naming predictable.
With only 2 tools, the server is very focused. While this is appropriate for a minimal message sender, it feels slightly thin for general Slack interaction.
The tool set covers sending and replying, but lacks other common Slack operations (e.g., reading, editing, deleting messages), leaving notable gaps.
Maintenance
Related MCP Connectors
Hosted Slack MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
One MCP server for all your work accounts: Slack, Teams, Google Chat, Jira, ClickUp, digest, tasks.
Related MCP Servers
- -licenseNot gradedqualityBmaintenanceMCP Server for the Slack API, enabling Claude to interact with Slack workspaces.70,822 npm91,897MIT
- AlicenseNot gradedqualityDmaintenanceA Slack MCP server for Claude Code that provides full messaging, channels, search, and threads across multiple Slack workspaces.156 npm1MIT
- FlicenseBqualityDmaintenanceMCP server for Slack workspace integration, exposing 40+ Slack operations as tools for Claude Desktop and providing a clean async Python API.641-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Slack integration, allowing Claude to interact with your Slack workspace.53,813 npmMIT