
slack voice mcp
AI-powered Slack integration with text-to-speech capabilities using OpenAI GPT and voice synthesis.
Repository Info
About This Server
AI-powered Slack integration with text-to-speech capabilities using OpenAI GPT and voice synthesis.
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
Slack Voice MCP Server
AI-powered Slack integration with text-to-speech capabilities using OpenAI GPT-4 and voice synthesis.
Features
- 🤖 AI Summarization: Intelligent message summaries using OpenAI GPT-4o-mini
- 📱 Slack Integration: Retrieve unread messages from channels and DMs
- 🔊 Text-to-Speech: Multiple TTS options (OpenAI, Piper, System)
- 🖥️ MCP Protocol: Seamless integration with Claude Desktop and other AI tools
- ⚡ Real-time: Fast message processing and voice synthesis
Quick Start
Prerequisites
- Node.js 18+
- Claude Desktop application (or other MCP-compatible AI tool)
- Slack workspace access
- OpenAI API key
Installation
- Clone and setup:
git clone https://github.com/karl-frascari/slack-voice-mcp.git
cd slack-voice-mcp
npm install
npm run build
- Optional: Install Piper TTS for offline voice synthesis:
Download Piper TTS files and extract to piper/ directory:
- Download from: Piper TTS Releases
- Extract
piper.exe, voice models, andespeak-ng-data/topiper/folder - Recommended voice:
en_US-libritts-high.onnx
- Configure environment:
cp .env.example .env
# Edit .env and add your tokens and API keys
- Configure Claude Desktop:
Add to your
claude_desktop_config.json:
{
"mcpServers": {
"slack-voice": {
"command": "node",
"args": ["/absolute/path/to/slack-voice/dist/index.js"],
"env": {
"SLACK_USER_TOKEN": "xoxp-your-slack-user-token",
"SLACK_BOT_TOKEN": "xoxb-your-slack-bot-token",
"OPENAI_API_KEY": "sk-proj-your-openai-api-key",
"TTS_PROVIDER": "openai",
"NODE_ENV": "production"
}
}
}
}
Configuration
Environment Variables
Create a .env file based on .env.example:
# Required
SLACK_USER_TOKEN=xoxp-your-slack-user-token
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
OPENAI_API_KEY=sk-proj-your-openai-api-key
# Optional
TTS_PROVIDER=openai
MCP_SERVER_NAME=slack-voice-mcp
NODE_ENV=production
LOG_LEVEL=info
Slack Token Setup
- Visit api.slack.com/apps
- Create new app or use existing
- Go to OAuth & Permissions
- Add these scopes:
channels:readchannels:historygroups:readgroups:historyim:readim:historympim:readmpim:history
- Install app to workspace
- Copy User OAuth Token (starts with
xoxp-)
OpenAI API Key
- Visit platform.openai.com
- Create an API key
- Add to your
.envfile
TTS Providers
OpenAI TTS (Recommended)
High-quality cloud-based text-to-speech with multiple voice options.
Features:
- 🎭 Multiple Voices: alloy, echo, fable, onyx, nova, shimmer
- 🌐 High Quality: Natural-sounding speech synthesis
- 💰 Paid Service: Requires OpenAI API key
Piper TTS
High-quality neural text-to-speech that runs completely offline.
Features:
- 🔒 Completely Offline: No internet connection required
- ⚡ Fast: Optimized for real-time synthesis
- 🎵 Natural: LibriTTS-trained voice model
System TTS
Built-in operating system text-to-speech as fallback.
Supported Platforms:
- Windows: Microsoft Speech API
- macOS: Built-in
saycommand - Linux: System TTS
Usage
Available MCP Tools
get_summarize_and_speak- Complete workflow: get messages, summarize with AI, and speakget_available_voices- List available TTS voices
Example Usage in Claude Desktop
Please get my Slack summary and read it to me.
Claude will use the MCP server to:
- Fetch your unread Slack messages
- Generate an intelligent summary using OpenAI GPT-4o-mini
- Speak the summary using your configured TTS provider
Architecture
Claude Desktop (or other AI tool)
↕ MCP Protocol
Slack Voice MCP Server
├── Slack Service (Message Retrieval)
├── Summarization Service (OpenAI GPT-4o-mini)
└── TTS Service (Voice Output)
├── OpenAI TTS
├── Piper TTS (Local)
└── System TTS (Fallback)
Development
Build and Run
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
# Start production server
npm start
# Lint and format
npm run check
npm run fix
Project Structure
src/
├── index.ts # MCP server entry point
├── services/
│ ├── slack.ts # Slack API integration
│ ├── summarization.ts # OpenAI summarization
│ └── tts.ts # Text-to-speech providers
└── types/ # TypeScript type definitions
Troubleshooting
Common Issues
MCP connection errors:
- Ensure absolute paths in Claude Desktop config
- Check environment variables are set correctly
- Restart Claude Desktop after config changes
Slack token errors:
- Verify token starts with
xoxp-(User Token) - Check token has required scopes
- Ensure workspace access permissions
OpenAI API errors:
- Verify API key is valid and has credits
- Check internet connection
- Ensure API key has proper permissions
Audio not working:
- Try different TTS providers in order: OpenAI → Piper → System
- Check system audio settings
- For WSL users: use
TTS_PROVIDER=openai
Security
- Environment Variables: Sensitive tokens stored in
.env(not committed) - Minimal Permissions: Only requests necessary Slack scopes
- No Persistent Storage: Messages processed in memory only
- Secure Communication: Uses official Slack and OpenAI APIs
License
MIT
Quick Start
Clone the repository
git clone https://github.com/karl-frascari/slack-voice-mcpInstall dependencies
cd slack-voice-mcp
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.