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-slack
The 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.sh
Create 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 .env
Add 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 --build
docker 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 --build
Use 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.