{
  "markdown": "# Slack MCP\n\n![License](https://img.shields.io/github/license/aaronsb/slack-mcp)\n![GitHub stars](https://img.shields.io/github/stars/aaronsb/slack-mcp?style=social)\n![Latest Release](https://img.shields.io/github/v/release/aaronsb/slack-mcp?include_prereleases&label=version)\n\nMCP server that gives AI agents access to your Slack workspaces using session tokens. No OAuth apps, no bot permissions, no admin approval required.\n\nBeyond reading and writing messages, it accumulates a durable picture of the workspace — every channel and user's state over time, departures kept as dated tombstones — and synthesizes a relationship graph from it on demand: `estate view='about' person='X'` answers \"tell me about X\" with their footprint, circle, and a ranked reading plan. The graph is never stored; it is computed per query from two small local ledgers that hold no message content ([design note](docs/design-notes/runtime-graph-synthesis.md)).\n\n## How it works\n\nSlack MCP uses your existing browser session tokens (`xoxc`/`xoxd`) to interact with Slack on your behalf. It reads stealthily by default — only the `mark-read` tool triggers read receipts. Everything else is invisible to other users.\n\n**Token extraction** is built into the binary. If you're logged into Slack in Chrome or Firefox, the setup flow can extract tokens automatically — no copy-pasting from DevTools.\n\n## Prerequisites\n\nYou need an active Slack session in your browser. Log into your workspace at [app.slack.com](https://app.slack.com) in **Chrome**, **Chromium**, **Edge**, or **Firefox** before running setup.\n\n## Install\n\n### Claude Code\n\n```bash\nclaude mcp add slack-mcp -- npx -y @aaronsb/slack-mcp\n```\n\nThen ask Claude to run the `auth` tool. It will guide you through browser selection, profile selection, and automatic token extraction.\n\n### Claude Desktop\n\nDownload the `.mcpb` file for your platform from the [latest release](https://github.com/aaronsb/slack-mcp/releases/latest):\n\n| Platform | File |\n|----------|------|\n| macOS (Apple Silicon) | `slack-mcp-darwin-arm64.mcpb` |\n| macOS (Intel) | `slack-mcp-darwin-x64.mcpb` |\n| Linux (x64) | `slack-mcp-linux-x64.mcpb` |\n| Linux (ARM) | `slack-mcp-linux-arm64.mcpb` |\n| Windows (x64) | `slack-mcp-windows-x64.mcpb` |\n\nOpen the file (double-click or drag into Claude Desktop). When prompted for tokens, you can either:\n- Leave them blank and use the `auth` tool after connecting\n- Paste tokens if you already have them\n\n### Standalone binary\n\nDownload the binary for your platform from [releases](https://github.com/aaronsb/slack-mcp/releases/latest), then:\n\n```bash\n# Extract tokens from your browser (interactive)\n./slack-mcp setup\n\n# Run as MCP server (stdio, default)\n./slack-mcp\n\n# Run as MCP server (SSE, for remote/shared access)\n./slack-mcp --transport sse\n```\n\n### npm (global)\n\n```bash\nnpm install -g @aaronsb/slack-mcp\nslack-mcp setup\n```\n\n## Token setup\n\nThere are three ways to get your Slack tokens, from easiest to most manual:\n\n### Automatic (Chrome/Edge)\n\nThe `auth` MCP tool or `slack-mcp setup` CLI command will:\n\n1. Detect your installed browsers\n2. Let you pick which browser and profile has Slack\n3. Open the browser, navigate to Slack, and extract tokens via Chrome DevTools Protocol\n4. Validate and save them\n\n**Requires Chrome to be fully closed** before extraction — your tabs will restore when you reopen it.\n\n### Semi-automatic (Firefox)\n\nThe setup flow writes a temporary browser extension to a temp directory, then guides you to load it in Firefox via `about:debugging`. The extension extracts tokens and sends them to the local callback server. It's removed automatically when Firefox closes.\n\n### Manual\n\nRun `slack-mcp setup` or use the `auth` tool — if no browser is detected or automatic extraction fails, it falls back to a localhost web page with step-by-step DevTools instructions.\n\nYou can also set tokens directly via environment variables:\n\n```bash\nexport SLACK_MCP_XOXC_TOKEN=\"xoxc-...\"\nexport SLACK_MCP_XOXD_TOKEN=\"xoxd-...\"\n./slack-mcp\n```\n\n## Tools\n\n| Tool | Kind | What it does |\n|------|------|-------------|\n| `inbox` | noun | What needs you: `view='new'` (since your last dismiss), `'unreads'`, `'mentions'` |\n| `messages` | noun | Conversation content: `target=` reads in full, `+around=` context, `+since=` time window, `query=` full Slack search syntax |\n| `estate` | noun | Workspace shape and relationships: `view='about'\\|'families'\\|'person'\\|'initiatives'\\|'convergence'\\|'people'\\|'channels'` |\n| `batch` | executor | Run a held plan of reads in one call: `commands=[{tool, params}...]`; playbooks via `save=`/`run=`/`list=`/`delete=` |\n| `say` | verb | Contribute content (Slack-visible): a message, or an emoji reaction |\n| `dismiss` | verb | Mark inbox items handled — private watermark, invisible to Slack |\n| `mark-read` | verb | Fire read receipts — the one visibly-public read signal |\n| `auth` | verb | Interactive token setup (localhost only) |\n| `download` | verb | Download a shared file |\n\nVerb encodes effect, noun encodes domain, parameter encodes scope (ADR-009); the batch executor encodes composition, never effect, and admits only the read nouns (ADR-010). Every noun echoes its effective parameters and pages every capped list.\n\n## Privacy\n\n- **Stealth by default** — reads never trigger read receipts; only `mark-read` does\n- **Channel names, not IDs** — the AI never sees internal Slack identifiers\n- **Tokens stay local** — stored in `~/.config/slack-mcp/config.json` with `0600` permissions\n- **Ledgers hold no message content** — the durable estate ledger stores entity facts (names, lifecycle, tombstones); the attention ledger stores `{user, conversation, day}` encounters with a 90-day window; both live under XDG with `0600`, and deleting them deletes the graph\n- **Hour-level activity is recorded only for you** — colleagues bucket by day, by design\n- **No network traffic except Slack** — the binary connects only to `slack.com/api/*`\n- **No browser downloads** — uses your installed browser, never fetches binaries from CDNs\n\n## Development\n\n```bash\nmake build          # Build for current platform\nmake test           # Run tests\nmake build-all-platforms  # Cross-compile (6 platforms)\nmake release TAG=v2.1.1   # Tag and push (CI handles the rest)\n```\n\n## License\n\nMIT\n",
  "bytes": 6293,
  "sha": "d8e5b44c57a55ffd1c7f980d25c503f7b026c39a72ab90d31e057586bf28fd1d",
  "repo_slug": "aaronsb/slack-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_aaronsb_slack_mcp_464f887c/readme"
}