Slack Indexed MCP Server

Semantic search over indexed Slack channels stored in Qdrant

README.md

slack-indexed

MCP server for semantic search over indexed Slack channels stored in Qdrant, with Cohere reranking via AWS Bedrock.

Prerequisites

  • A running Qdrant instance with an indexed Slack collection (created by alaan-slack-index-mcp)
  • AWS credentials with access to Bedrock (Titan embeddings + Cohere rerank)

Tools

Tool Description
search Semantic search with Cohere reranking, filterable by source type, channel, and user
get_thread Retrieve all chunks for a specific Slack thread including linked resources
list_channels List indexed channels with document counts
collection_stats Summary statistics (documents, threads, sources, channels)
list_users List all known participant names for filtering

Usage

Direct with uvx (no install)

Using an AWS profile:

uvx --from git+https://github.com/KanvaBhatia-Alaan/alaan-slack-index-mcp-tool slack-indexed --profile my-profile --qdrant-url http://localhost:6333

Using explicit AWS credentials and a Qdrant API key:

uvx --from git+https://github.com/KanvaBhatia-Alaan/alaan-slack-index-mcp-tool slack-indexed \
  --aws-access-key AKIA... \
  --aws-secret-key wJal... \
  --qdrant-url http://your-qdrant-host:6333 \
  --qdrant-api-key your-qdrant-api-key

Local development

uv sync
uv run slack-indexed --profile my-profile --qdrant-url http://localhost:6333

Claude Code (`~/.claude.json`)

With AWS profile:

{
  "mcpServers": {
    "slack-indexed": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/KanvaBhatia-Alaan/alaan-slack-index-mcp-tool",
        "slack-indexed",
        "--profile",
        "my-profile",
        "--qdrant-url",
        "http://localhost:6333",
        "--qdrant-api-key",
        "xxxx-api-key-xxxx"
      ]
    }
  }
}

With explicit AWS credentials:

{
  "mcpServers": {
    "slack-indexed": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/KanvaBhatia-Alaan/alaan-slack-index-mcp-tool",
        "slack-indexed",
        "--aws-access-key",
        "AKIA...",
        "--aws-secret-key",
        "wJal...",
        "--qdrant-url",
        "http://your-qdrant-host:6333",
        "--qdrant-api-key",
        "xxxx-api-key-xxxx"
      ]
    }
  }
}

Cursor (`.cursor/mcp.json`)

With AWS profile:

{
  "mcpServers": {
    "slack-indexed": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/KanvaBhatia-Alaan/alaan-slack-index-mcp-tool",
        "slack-indexed",
        "--profile",
        "my-profile",
        "--qdrant-api-key",
        "xxxx-api-key-xxxx"
      ]
    }
  }
}

With explicit AWS credentials:

{
  "mcpServers": {
    "slack-indexed": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/KanvaBhatia-Alaan/alaan-slack-index-mcp-tool",
        "slack-indexed",
        "--aws-access-key",
        "AKIA...",
        "--aws-secret-key",
        "wJal...",
        "--qdrant-url",
        "http://your-qdrant-host:6333",
        "--qdrant-api-key",
        "xxxx-api-key-xxxx"
      ]
    }
  }
}

CLI Options

Flag Default Description
--qdrant-url http://localhost:6333 Qdrant server URL
--collection slack_index Qdrant collection name
--profile (env default) AWS profile name
--region us-east-1 AWS region for Bedrock
--aws-access-key (env default) AWS access key ID (use instead of --profile)
--aws-secret-key (env default) AWS secret access key (use with --aws-access-key)
--qdrant-api-key (none) Qdrant API key for authenticated access
--qdrant-timeout 30 Qdrant request timeout in seconds

Tools 5

searchSemantic search with Cohere reranking, filterable by source type, channel, and user
get_threadRetrieve all chunks for a specific Slack thread including linked resources
list_channelsList indexed channels with document counts
collection_statsSummary statistics (documents, threads, sources, channels)
list_usersList all known participant names for filtering

Environment Variables

AWS_PROFILEAWS profile name for Bedrock access
AWS_ACCESS_KEY_IDAWS access key ID
AWS_SECRET_ACCESS_KEYAWS secret access key

Try it

Search for recent discussions about the new project roadmap in Slack.
List all indexed Slack channels and their document counts.
Get the full thread for the message regarding the Q3 budget.
Find all messages from John Doe in the engineering channel.

Frequently Asked Questions

What are the key features of Slack Indexed?

Semantic search across indexed Slack history. Cohere reranking via AWS Bedrock for high-quality results. Full thread retrieval including linked resources. Filtering capabilities by channel, user, and source type. Summary statistics for indexed Slack collections.

What can I use Slack Indexed for?

Retrieving historical context from Slack threads for project documentation. Finding specific technical decisions made in team channels. Analyzing communication patterns across different Slack channels. Quickly locating shared resources or files mentioned in past conversations.

How do I install Slack Indexed?

Install Slack Indexed by running: uvx --from git+https://github.com/KanvaBhatia-Alaan/alaan-slack-index-mcp-tool slack-indexed --profile my-profile --qdrant-url http://localhost:6333

What MCP clients work with Slack Indexed?

Slack Indexed works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Slack Indexed docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare