Charles Reid 65cae8961e Merge branch 'bug/handle-errors-better'
* bug/handle-errors-better:
  improve error handling for mcp calls
2026-06-24 12:53:32 -07:00
2026-06-21 16:12:31 -07:00
2026-06-21 18:05:43 -07:00
2026-06-05 07:42:17 -07:00
2026-04-26 09:18:58 -07:00
2026-06-21 16:12:31 -07:00
2026-06-05 09:58:14 -07:00
2026-06-21 18:05:43 -07:00
2026-06-21 18:05:43 -07:00
2026-06-21 18:05:43 -07:00
2026-06-21 11:11:35 -07:00

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

  1. Mention @BotName in any channel the bot has been invited to
  2. The bot reacts with 👀 while processing
  3. The AI response is posted as a threaded reply
  4. Responses over 2800 characters are uploaded as a text file instead
Description
No description provided
Readme 1.5 MiB
Languages
Python 97.8%
Shell 2%
Dockerfile 0.2%