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 userget_threadRetrieve all chunks for a specific Slack thread including linked resourceslist_channelsList indexed channels with document countscollection_statsSummary statistics (documents, threads, sources, channels)list_usersList all known participant names for filteringEnvironment Variables
AWS_PROFILEAWS profile name for Bedrock accessAWS_ACCESS_KEY_IDAWS access key IDAWS_SECRET_ACCESS_KEYAWS secret access key