thinkingmachines/slack-mcp
3.1
If you are the rightful owner of slack-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Slack MCP Server is a powerful Model Context Protocol server designed for Slack Workspaces, offering a range of features for seamless integration and communication.
Tools
5
Resources
0
Prompts
0
Slack MCP Server
Proof-of-concept Slack MCP server
📋 Prerequisites
- Python 3.8+
- Azure CLI
- Docker
- Slack App credentials (Client ID and Secret)
- direnv
Local Development
-
Clone the repository
git clone https://github.com/thinkingmachines/slack-mcp cd slack-mcp -
Set up development environment
make dev -
Fill out the .envrc file with the require values
-
Start the server
make start
🔧 Development
Available Make Commands
make dev- Set up development environmentmake start- Start the development servermake test- Run test suitemake status- Check development environment statusmake deploy- Quick Deploy to Azure Container Apps
Running Tests
# Run all tests
make test
# Run specific test file
uv run pytest tests/test_server.py -v
# Run with coverage
uv run pytest tests/ --cov=src/slack_mcp_server
Project Structure
slack-mcp/
├── src/
│ └── slack_mcp_server/
│ ├── __init__.py
│ ├── main.py # FastAPI application
│ ├── azure_keyvault.py # Azure Key Vault wrapper
│ └── slack_mcp.py # Slack MCP implementation
├── tests/ # Test suite
├── Dockerfile # Docker configuration
├── docker-compose.yml # Docker Compose setup
├── pyproject.toml # Project configuration
├── Makefile # Development automation
└── quick-deploy.sh # Azure deployment script
🚀 Deployment
Azure Container Apps
-
Prerequisites
- Azure CLI installed and authenticated
- Azure Key Vault created with proper RBAC permissions
- Service Principal with Key Vault access
-
Deploy
make deployThis will:
- Build and push Docker image to Azure Container Registry
- Create/update Azure Container App
- Configure environment variables
🔧 Configuration
Environment Variables
| Variable | Description | Required | Default |
|---|---|---|---|
ENVIRONMENT | Deployment environment | No | dev |
MCP_SERVER_HOST | Server host binding | No | localhost |
MCP_SERVER_PORT | Server port | No | 8000 |
SLACK_CLIENT_ID | Slack OAuth client ID | Yes | - |
SLACK_CLIENT_SECRET | Slack OAuth client secret | Yes | - |
AZURE_KEY_VAULT_URL | Azure Key Vault URL | Yes | - |
AZURE_TENANT_ID | Azure tenant ID | Yes | - |
AZURE_CLIENT_ID | Service Principal client ID | Yes | - |
AZURE_CLIENT_SECRET | Service Principal secret | Yes | - |
Slack App Configuration
- Create a Slack app at api.slack.com/apps
- Configure OAuth & Permissions
- Add required scopes:
channels:historychannels:readchat:writegroups:readgroups:writeim:historyim:readim:writempim:historympim:readmpim:writesearch:readusers:read