Skip to main content

Sync Slack DM + thread activity you're part of into EvolutionDB long-term memory.

Project description

evolutiondb-slack-sync

Pull Slack DMs, group DMs, and the channels you're a member of into EvolutionDB long-term memory. The MCP server then surfaces them through search_memory so an AI assistant can answer "what did Ahmet say about the database migration last week?" weeks later.

Setup

  1. Visit https://api.slack.com/apps → "Create New App" → "From scratch".
  2. Under "OAuth & Permissions", add the User Token Scopes listed in .env.example. They're all read-only: channels:history, channels:read, groups:history, groups:read, im:history, im:read, mpim:history, mpim:read, users:read.
  3. Install the app to your workspace.
  4. Copy the User OAuth Token (starts with xoxp-) into your .env as SLACK_USER_TOKEN.

No workspace-admin approval is needed for user-scope tokens.

Install

pip install evolutiondb-slack-sync
# or, from this repo:
pip install -e client/slack-sync

Run

# First run — pull the last three days, then exit.
evolutiondb-slack-sync --once --since 3d

# Daemon mode.
evolutiondb-slack-sync --interval 600

# Auth/scope check, no DB writes.
evolutiondb-slack-sync --once --dry-run

Each pass prints a one-line JSON summary:

{"ok": true, "channels": 28, "messages": 412, "replies": 96, "skipped": 14, "errors": 0}

What gets indexed

Record Key shape
A top-level message slack_msg_<channel>_<ts>
A thread reply slack_msg_<channel>_<ts>

Keys carry the Slack ts which is unique per channel, so re-sync UPSERTS instead of duplicating. Each record carries the channel display name, sender display name, and thread_ts if it lives inside a thread, so search_memory can filter the way you'd want.

What's not indexed

  • channel_join / bot_add system messages — pure noise.
  • Files / images — the text caption is captured, the binary isn't.
  • Reactions — too high-volume relative to recall value.

Rate limits

Slack throttles conversations.history at Tier 3 (50+ req/min per workspace). The client honours Retry-After on 429 responses and retries exactly once. For very active workspaces with hundreds of channels, increase SLACK_POLL_INTERVAL rather than running tighter loops.

Privacy

The user-scope token reads the same conversations the human can see — no privilege escalation. But once a message lands in EvolutionDB, anyone with the matching MCP_USER_ID namespace can recall it via search_memory. Confirm with your employer that piping work-Slack into a personal memory store is acceptable before flipping it on.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evolutiondb_slack_sync-0.1.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evolutiondb_slack_sync-0.1.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file evolutiondb_slack_sync-0.1.0.tar.gz.

File metadata

  • Download URL: evolutiondb_slack_sync-0.1.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for evolutiondb_slack_sync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 18cf610ba307eeaba8bd5f35a68ec9d26c5b1eb4aa0c36d23a059752b006b740
MD5 af586d9f754bc644ca754b1b5f8bc28c
BLAKE2b-256 e1e38f56ded383f051537ce745ea39bb7db7f52c11018b0beb41fdeca70ed3e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for evolutiondb_slack_sync-0.1.0.tar.gz:

Publisher: slack-sync-release.yml on alptekin/evolutiondb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evolutiondb_slack_sync-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for evolutiondb_slack_sync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4389c97d31cebbcaf7e4c1d6c18eb4bff456d9d3bb4e0485702c89fdda3b408c
MD5 31ca6091d545c552c2cbaeb9cfa285ff
BLAKE2b-256 8d7dca9167d3051e3846b66eb1dcd72fe20549322d84096256c5db405f5e284d

See more details on using hashes here.

Provenance

The following attestation bundles were made for evolutiondb_slack_sync-0.1.0-py3-none-any.whl:

Publisher: slack-sync-release.yml on alptekin/evolutiondb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page