Team-nodd/chrisco-mcp-server
If you are the rightful owner of chrisco-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Enterprise-grade Model Context Protocol (MCP) server for Slack integration with advanced business features.
get_slack_channels
List all accessible channels with member information.
get_channel_messages
Retrieve latest 15 messages with nested thread replies.
get_thread_replies
Get all replies to a specific message thread.
send_slack_message
Send messages with advanced threading and formatting.
Slack MCP Server
Enterprise-grade Model Context Protocol (MCP) server for Slack integration with advanced business features.
ā Connected to Railway auto-deploy!
Overview
This MCP server provides comprehensive Slack workspace integration through Claude.ai, enabling:
- Channel Management: List and explore accessible Slack channels
- Message Retrieval: Fetch latest messages with threaded replies
- Thread Navigation: Get complete conversation threads
- Message Sending: Send messages with threading and formatting options
- Rich Resources: Access Slack API documentation and best practices
- Workflow Prompts: Generate team communication templates
Features
š ļø Tools (4 available)
get_slack_channels
- List all accessible channels with member informationget_channel_messages
- Retrieve latest 15 messages with nested thread repliesget_thread_replies
- Get all replies to a specific message threadsend_slack_message
- Send messages with advanced threading and formatting
š Resources (3 available)
slack://api-documentation
- Comprehensive Slack API integration guideslack://rate-limits
- Current API rate limiting informationslack://message-formatting
- Message formatting and Block Kit guide
š¬ Prompts (3 available)
slack_team_standup
- Generate team standup templatesslack_incident_response
- Create incident response communicationslack_project_kickoff
- Project kickoff communication templates
Quick Start
1. Create a Slack App
- Go to api.slack.com/apps
- Click "Create New App" ā "From scratch"
- Name your app and select your workspace
- Go to OAuth & Permissions
- Add the following User Token Scopes:
channels:history, channels:read, channels:write, chat:write, files:read, groups:history, groups:read, groups:write, im:history, im:read, im:write, links:read, mpim:history, mpim:read, mpim:write, reactions:write, users.profile:read, users:read, files:write
- Set Redirect URLs to:
http://localhost:8080/auth/slack/callback
- Go to Basic Information and copy your Client ID and Client Secret
2. Configure Environment
Create a .env
file with your Slack app credentials:
# Required for OAuth flow
SLACK_CLIENT_ID=your_slack_client_id_here
SLACK_CLIENT_SECRET=your_slack_client_secret_here
# Optional
PORT=8080
SLACK_DEFAULT_CHANNEL=C1234567890
3. Install & Run
npm install
npm run dev
4. Authorize Your Slack Account
- Open http://localhost:8080
- Click "Connect to Slack"
- Authorize the app in Slack
- Copy the access token from the success page
- Set
SLACK_BOT_TOKEN=<your_token>
in your environment
5. Use with MCP Client
Configure your MCP client to use: http://localhost:8080/mcp
š Available Tools
list_channels
- Get all channels/DMs with member infolist_users
- Get all users with profilesget_channel_members
- Get members of a specific channelget_channel_messages
- Fetch recent messages from a channelget_thread_replies
- Get replies to a message threadsend_message
- Send a message to a channelrefresh_all_slack_data
- Update local cache with latest Slack data
š” Endpoints
- Homepage:
http://localhost:8080/
- OAuth authorization - MCP Server:
http://localhost:8080/mcp
- MCP protocol endpoint - Health Check:
http://localhost:8080/health
- Server status - OAuth Callback:
http://localhost:8080/auth/slack/callback
- Slack OAuth redirect
š§ Development
npm run build # Compile TypeScript
npm start # Run compiled version
npm run dev # Development mode with auto-reload
Deployment
Railway (Recommended)
This server is configured for Railway deployment with automatic builds and health checks.
-
Connect to Railway:
npm install -g @railway/cli railway login railway init --name slack-mcp-server
-
Deploy:
git add . git commit -m "Deploy slack-mcp-server" git push origin main
-
Your MCP endpoint will be:
https://your-project.up.railway.app/mcp
Alternative Hosting
- Render: Native Node.js support with free tier
- DigitalOcean App Platform: $5/month, reliable hosting
- Fly.io: Global distribution with generous free tier
- Heroku: Mature platform, $7/month
Slack Bot Setup
1. Create Slack App
- Go to api.slack.com/apps
- Click "Create New App" ā "From scratch"
- Name your app and select workspace
2. Configure Bot Permissions
Add these OAuth scopes under "OAuth & Permissions":
channels:read
- Read public channel informationgroups:read
- Read private channel informationim:read
- Read direct messageschat:write
- Send messagesusers:read
- Read user information
3. Install to Workspace
- Click "Install to Workspace"
- Copy the "Bot User OAuth Token" (starts with
xoxb-
)
4. Get Channel IDs
- Right-click any channel ā "View channel details" ā Copy Channel ID
- Or use the
get_slack_channels
tool to list all accessible channels
Claude.ai Integration
1. Add MCP Server
In Claude.ai, go to Settings ā MCP Servers and add:
{
"name": "slack-mcp-server",
"endpoint": "https://your-railway-app.up.railway.app/mcp",
"transport": "streamableHttp"
}
2. Test Connection
Ask Claude: "What Slack tools are available?"
You should see all 4 tools, 3 resources, and 3 prompts listed.
Usage Examples
Get Channel List
Use the get_slack_channels tool with token: xoxb-your-token
Read Messages
Get latest messages from channel C1234567890 using token: xoxb-your-token
Send Message
Send "Hello team!" to channel C1234567890 using token: xoxb-your-token
Thread Reply
Reply to message 1234567890.123456 in channel C1234567890 with: "Great point!"
API Limitations
ā ļø Important: Non-Marketplace Slack apps have severe API restrictions as of May 2025:
- conversations.history: 1 request/minute, max 15 messages
- Rate limits: Tier 4 restrictions apply
- Workaround: Use webhooks for real-time updates instead of polling
Architecture
Claude.ai āā MCP Protocol āā Slack MCP Server āā Slack Web API
- Transport: StreamableHTTP (modern MCP protocol)
- Framework: Express.js with CORS support
- Slack SDK: @slack/web-api v7.0
- Validation: Zod schemas for input validation
- Deployment: Railway with health checks
Development
Project Structure
slack-mcp-server/
āāā src/
ā āāā index.ts # Main MCP server
ā āāā slack.ts # Slack API functions
āāā build/ # Compiled output
āāā package.json # Dependencies
āāā tsconfig.json # TypeScript config
āāā railway.json # Railway deployment
āāā README.md # This file
Scripts
npm run build
- Compile TypeScriptnpm run dev
- Development with auto-rebuildnpm start
- Production servernpm run clean
- Remove build files
Environment
- Node.js: >=18.0.0
- TypeScript: ^5.0.0
- MCP SDK: ^1.0.0
Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature-name
- Make changes and test thoroughly
- Submit pull request with detailed description
License
MIT License - see LICENSE file for details.
Support
- Issues: Report bugs and feature requests via GitHub Issues
- Documentation: Slack API docs at api.slack.com
- MCP Protocol: Model Context Protocol Specification
Built with ā¤ļø for enterprise Slack integration