mcp-notify
Minimal MCP server for sending Slack messages as user — with bot signature and concurrent safety
claude mcp add --transport stdio pilat-mcp-notify npx -y @pilat/mcp-notify \ --env SLACK_MCP_DATA_DIR="~/.local/share/mcp-notify" \ --env SLACK_MCP_BOT_TOKEN="xoxb-..." \ --env SLACK_MCP_XOXC_TOKEN="xoxc-..." \ --env SLACK_MCP_XOXD_TOKEN="xoxd-..."
How to use
mcp-notify is a minimal MCP server that sends Slack messages using a single tool called send_message. It supports two authentication modes: bot token mode (xoxb) and user-token mode (xoxc + cookie). In bot-token mode, messages are sent as the Slack app with appropriate branding; in user-token mode, each message includes a :robot_face: context block to indicate AI-assisted origin. The server uses Block Kit with a plain-text fallback and stores channel/user data in a SQLite cache to improve performance and enable concurrent access across multiple MCP instances.
How to install
Prerequisites:
- Node.js and npm installed
- Access to publish/run MCP servers (Claude Code configuration or your MCP client)
Installation steps:
- Install the MCP server via npx in your environment (no global install required):
# Bot token (recommended for Slack apps)
npx -y @pilat/mcp-notify
or configure via Claude Code using the example config below (Bot token):
{
"mcpServers": {
"mcp-notify": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pilat/mcp-notify"],
"env": {
"SLACK_MCP_BOT_TOKEN": "xoxb-..."
}
}
}
}
- If you prefer the user-token mode, supply the user token and cookie token in the environment:
SLACK_MCP_XOXC_TOKEN=xoxc-...
SLACK_MCP_XOXD_TOKEN=xoxd-...
npx -y @pilat/mcp-notify
- If using the MCP via a YAML/JSON config (Claude Code), ensure the configuration is saved to your MCP config file (e.g., ~/.claude.json or .mcp.json):
{
"mcpServers": {
"mcp-notify": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pilat/mcp-notify"],
"env": {
"SLACK_MCP_BOT_TOKEN": "xoxb-...",
"SLACK_MCP_XOXC_TOKEN": "xoxc-...",
"SLACK_MCP_XOXD_TOKEN": "xoxd-..."
}
}
}
}
Additional notes
Tips and caveats:
- Do not set both bot token and user token environment variables simultaneously; the server expects one mode of authentication at a time.
- The data directory can be customized with SLACK_MCP_DATA_DIR; ensure the path is writable by the MCP process.
- The server uses a lightweight SQLite cache (WAL mode) to improve performance and enable concurrent access; monitor disk usage if you run many instances.
- For user-token mode, ensure you secure the xoxc token and the cookie value (d= token) as described in the README; exposure could allow misuse.
- If you need to update configuration, restart the MCP server to pick up new environment variables or token changes.
- This MCP focuses on a single send_message tool; if you need advanced features like reading channels or reacting, consider the full-featured Slack MCP server linked in the README.
Related MCP Servers
obsidian -tools
Add Obsidian integrations like semantic search and custom Templater prompts to Claude or any MCP client.
ironcurtain
A secure* runtime for autonomous AI agents. Policy from plain-English constitutions. (*https://ironcurtain.dev)
CanvasMCPClient
Canvas MCP Client is an open-source, self-hostable dashboard application built around an infinite, zoomable, and pannable canvas. It provides a unified interface for interacting with multiple MCP (Model Context Protocol) servers through a flexible, widget-based system.
grok-faf
First MCP server for Grok | FAST⚡️AF • URL-based AI context • Vercel-deployed
mcp-turso
MCP server for interacting with Turso-hosted LibSQL databases
LiquidSoapMCP
MCP server for LiquidSoap 2.4.0 documentation and script assistance