* bug/handle-errors-better: improve error handling for mcp calls
AI Slack Bots
A collection of Slack chatbots that bridge @mentions to various AI model APIs and reply in-thread. Each bot runs as its own process and supports multi-workspace connections.
Bots
| Bot | Entry point | API | Description |
|---|---|---|---|
| DeepSeek | deepseek/bot.py |
DeepSeek | General-purpose assistant |
| Bender | bender/bot.py |
DeepSeek | Bender Rodríguez persona (system prompt in bender/bender.md) |
| Kimi | kimi/bot.py |
Moonshot Kimi | General-purpose assistant |
| MiniMax | minimax/bot.py |
MiniMax | General-purpose assistant |
| wiki-charlesreid1 | wiki-charlesreid1/bot.py |
DeepSeek + MediaWiki MCP | Wiki assistant with page read/write/search via MCP |
| wiki-golly | wiki-golly/bot.py |
DeepSeek + MediaWiki MCP + Golly Life SQL MCP | Wiki assistant for wiki.golly.life with page read/write/search and sports stats |
| golly-personas | golly-personas/bot.py |
DeepSeek + MediaWiki MCP + Golly Life SQL MCP | Team persona chatbot — channels Golly League teams with wiki lore and stats |
Quick Start
cp .env.example .env
# Fill in your tokens (see .env.example for the format)
# Clone the data and populate the database
cd golly-life-sql-mcp
cd data && bash clean-and-clone.sh && cd ..
pip install sqlalchemy pydantic
python populate_db.py
docker compose up -d
Docker Compose Files
Services are split across two compose files:
docker-compose.yml— core bots (DeepSeek, Bender, Kimi, MiniMax, wiki-charlesreid1)docker-compose-golly.yml— golly.life bots (wiki-golly, golly-personas)
# Start core bots only
docker compose up -d
# Start golly bots only
docker compose -f docker-compose-golly.yml up -d
# Start everything
docker compose -f docker-compose.yml -f docker-compose-golly.yml up -d
# View logs for golly services
docker compose -f docker-compose-golly.yml logs -f
# Rebuild a specific golly service
docker compose -f docker-compose-golly.yml build wiki-golly-bot
# Stop golly services without touching core bots
docker compose -f docker-compose-golly.yml down
Each bot needs a Slack app configured with Socket Mode. See SETUP.md for a full walkthrough of creating the Slack app and generating tokens.
For configuration details (multi-workspace setup, environment variables, running without Docker), see DETAILS.md.
MCP Servers
Bots connect to MCP (Model Context Protocol) servers for tool access. Each MCP server runs as a sidecar container.
| MCP Server | Directory | Description |
|---|---|---|
| MediaWiki MCP | (external image) | Read/write access to MediaWiki instances (golly wiki, charlesreid1 wiki) |
| Golly Life SQL MCP | golly-life-sql-mcp/ |
Read-only access to Golly League sports data (SQLite) — team stats, standings, head-to-head, postseason history |
Building the Golly Life SQL database
The golly-life-sql-mcp/ server queries a SQLite database that must be built from the raw season data repos:
cd golly-life-sql-mcp
# 1. Clone all 16 season data repos into data/
cd data && bash clean-and-clone.sh && cd ..
# 2. Build golly.db from the cloned data
pip install sqlalchemy pydantic
python populate_db.py
# 3. Run tests (optional, requires the MCP server deps too)
pip install fastmcp pytest
pytest tests/
The resulting golly.db is gitignored. Place it at golly-life-sql-mcp/golly.db for the Docker volume mount.
How It Works
- Mention
@BotNamein any channel the bot has been invited to - The bot reacts with 👀 while processing
- The AI response is posted as a threaded reply
- Responses over 2800 characters are uploaded as a text file instead