Conversational Memory for AI Slack Bots
Tiger Slack gives Slack-native AI assistants the ability to understand and engage with your team's conversations naturally. By providing real-time access to Slack message history and context through an MCP server, it enables AI bots to respond to questions with the same contextual awareness that humans have - understanding references to past discussions, ongoing projects, and team dynamics.
Tiger Slack is the superpower behind Eon, TigerData's Slack-native AI assistant.
Ready to get started? Jump to the quick start.
Built for teams who want their AI assistants to:
- Understand conversational context and references to past discussions
- Answer questions about project history and decisions
- Know who's involved in different topics and threads
- Follow ongoing conversations and provide relevant input
- Build conversational memory across all team channels
The ingest service is a Python app that:
- Connects to Slack via WebSocket (Socket Mode)
- Captures messages, reactions, user changes, and channel updates in real-time
- Runs scheduled jobs for user/channel synchronization
The ingest service can process a Slack historical export into the database.
See the ingest README.md for more details.
A Streamable HTTP Model Context Protocol server provides:
- AI-accessible APIs for Slack data analysis
- Channel and user browsing with intelligent filtering
- Conversation retrieval with full threading context
- Message permalink generation
See the mcp README.md for more details.
###️TimescaleDB Database Tiger Slack uses a TimescaleDB database to store the Slack content.
- High-throughput message ingestion with 7-day chunk partitioning
- Efficient time-based queries and analytics
- Automatic compression after 45 days (5-10x space savings)
- Channel-based segmentation for optimal query performance
- Sparse indexes (bloom filters, minmax) for fast filtering
- Chunk skipping for accelerated thread queries
- Full-text search capabilities across message content
graph TB
%% External Systems
S[Slack Workspace]
C[Claude/LLM Client]
%% Core Components
I[Ingest Service<br/>Python]
D[TimescaleDB<br/>Time-series Database]
M[MCP/HTTP Server<br/>TypeScript]
%% Data Flow - Ingestion
S -->|WebSocket Events| I
S -->|Historical Export| I
I -->|Store Events| D
%% Data Flow - Analysis
C -->|MCP Protocol| M
M -->|SQL Queries| D
M -->|Structured Data| C
Start by cloning the repo.
git clone --recurse-submodules [email protected]:timescale/tiger-slack.git
cd tiger-slackThe ingest service requires an app configured in Slack with proper privileges and tokens. You can run a script to automate this setup, or you can do it manually.
Execute the following script to guide you through the setup process:
./setup-tiger-slack.shCreate a Slack App
- Edit the slack-app-manifest.json file to have the names and descriptions you want to use.
- Create a new Slack app
- Choose to create an app from a manifest.
- Pick your workspace and click
Next. - Paste that manifest configuration in the input field provided and click
Next. - Review and verify that the configuration you entered matches the summary and click
Create. - Navigate to: Basic Information → App-Level Tokens
- Click 'Generate Token and Scopes' → Add 'connections:write' scope → Generate
- Save your
SLACK_APP_TOKEN(It starts withxapp-). - Navigate to: Install App → Click 'Install to [Workspace]'
- After installation, save the 'Bot User OAuth Token' A.K.A.
SLACK_BOT_TOKEN(It starts withxoxb-)
cp .env.sample .envAdd the Slack tokens to the .env file.
After setting up the .env file, you are ready to run the system!
Build and run the system in docker compose:
docker compose up -d --builddocker compose up -d # Start all services in background
docker compose down # Stop all services
docker compose build # Build all images
docker compose logs -f # View live logs from all services
docker compose restart # Restart all services
# Reset with fresh volumes (deletes all data)
docker compose down -v
docker compose up -d
# Nuclear reset (complete cleanup)
docker compose down -v --remove-orphans
docker system prune -f --volumes
docker compose up -d --buildUse Claude Code and/or the MCP Inspector to exercise the MCP Server.
-
Connect Claude Code to the MCP Server
To connect to the MCP server running in docker, run:
claude mcp add -s project --transport http tiger-slack http://localhost:3001/mcp
To use the MCP server via stdio (not docker), run this after building the mcp:
export PGHOST=localhost export PGPORT=5432 export PGUSER=tsdbadmin export PGDATABASE=tsdb export LOGFIRE_TOKEN=<your-logfire-token> # optional. sends traces from the mcp server to logfire claude mcp add -s project tiger-slack node /absolute/path/to/tiger-slack/mcp/dist/index.js stdio
-
Connect to Logfire (Optional) Giving Claude Code the ability to "see" the tracing data for the project can drive powerful AI insights.
claude mcp add -s project logfire -e LOGFIRE_READ_TOKEN="your-token-here" -- uvx logfire-mcp@latest -
Start Analyzing Ask Claude: "Show me recent conversations in #engineering"
You can use the MCP Inspector to interact with the MCP server via a web UI. Run the following from the mcp directory:
npm run inspector- First, use a manual execution of the user/channel jobs to create the database schema and populate the users and channels.
- Deploy the ingest service to begin accumulating Slack events in real-time.
- At some point after you have begun accumulating new Slack events in real time, get a historical export from Slack and load it with the import process.
This strategy ensures no gaps in data.
Tiger Slack features full-stack monitoring via Logfire integration:
- Distributed tracing across all components
- Real-time performance metrics
- Error tracking and debugging
- AI-powered log analysis via MCP and Claude Code
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Transform your Slack workspace into an intelligent knowledge base with AI-powered analytics and insights.