mcp-notify
Allows sending Slack messages via a single send_message tool, supporting both bot tokens and user tokens. Messages can include mention resolution and a signature block in user-token mode.
Click on "Install 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., "@mcp-notifysend a message to #general saying deployment completed successfully"
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-notify
Minimal MCP server for sending Slack messages. Supports both bot tokens (xoxb) and user tokens (xoxc + cookie auth). Fire-and-forget — single send_message tool, nothing else.
Looking for a full-featured Slack MCP? Check out korotovsky/slack-mcp-server — it supports reading, searching, reactions, threads, DMs, and much more. We recommend it for most use cases.
This project exists because we needed two things it doesn't offer:
Bot signature — in user-token mode, every message gets a
:robot_face:context block so it's clear the message was sent by an AI assistant, not a human. In bot-token mode, the app name/icon already serves this purpose.Concurrent safety — SQLite with WAL mode and check-lock-recheck sync pattern, safe for multiple MCP instances running in parallel
Installation
Claude Code
Add to your MCP config (~/.claude.json globally or .mcp.json per project).
Bot token (recommended for Slack apps):
{
"mcpServers": {
"mcp-notify": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pilat/mcp-notify"],
"env": {
"SLACK_MCP_BOT_TOKEN": "xoxb-..."
}
}
}
}User token (xoxc + cookie):
{
"mcpServers": {
"mcp-notify": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pilat/mcp-notify"],
"env": {
"SLACK_MCP_XOXC_TOKEN": "xoxc-...",
"SLACK_MCP_XOXD_TOKEN": "xoxd-..."
}
}
}
}Other MCP clients
Use npx @pilat/mcp-notify as the command with stdio transport. Pass credentials as environment variables:
# Bot token
SLACK_MCP_BOT_TOKEN=xoxb-... npx @pilat/mcp-notify
# User token
SLACK_MCP_XOXC_TOKEN=xoxc-... SLACK_MCP_XOXD_TOKEN=xoxd-... npx @pilat/mcp-notifyRelated MCP server: Slack Notify MCP
Environment Variables
Variable | Required | Description |
| One of bot/user | Bot token ( |
| One of bot/user | User's |
| With xoxc | User's |
| No | Custom path for SQLite cache (default: |
Set either SLACK_MCP_BOT_TOKEN or SLACK_MCP_XOXC_TOKEN + SLACK_MCP_XOXD_TOKEN. Setting both bot and user tokens is an error.
Bot token setup
Create a Slack app at api.slack.com/apps
Add the following OAuth scopes:
channels:read,groups:read,users:read,usergroups:read,chat:writeInstall the app to your workspace
Copy the Bot User OAuth Token (
xoxb-...)
User token setup (xoxc + cookie)
Open Slack in browser (not desktop app)
Open DevTools → Network tab
Make any action in Slack (switch channel, send message)
Find any request to
api.slack.com→ Headers tabSLACK_MCP_XOXC_TOKEN: from request payload, find
token=xoxc-...SLACK_MCP_XOXD_TOKEN: from Cookie header, find
d=xoxd-...— copy only thexoxd-...part (withoutd=)
Architecture
Single tool: send_message. In user-token mode, messages include a :robot_face: context block. In bot-token mode, messages are sent without the signature (the app name/icon already identifies the sender). Both modes use Block Kit with plain text fallback.
SQLite cache (
~/.local/share/mcp-notify/data.db, WAL mode) — channels, users, user groups with lazy sync on first cache miss, 24h TTLMention resolution —
@username→<@U123>,@grouphandle→<!subteam^ID>. Groups take priority. Resolved in parallel.Concurrent sync safety — CAS-based check-lock-recheck pattern via
sync_metatable
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pilat/mcp-notify'
If you have feedback or need assistance with the MCP directory API, please join our Discord server