Slack Search MCP Server

by takuya0206
Verified
# Slack Search MCP Server A Model Context Protocol (MCP) server that provides tools and resources to access Slack's search functionality. This server allows LLMs to search and retrieve users, channels, messages, and more from a Slack workspace. ## Features ### Tools 1. `get_users` - Get a list of users in the Slack workspace 2. `get_channels` - Get a list of channels in the Slack workspace 3. `get_channel_messages` - Get messages from a specific channel 4. `get_thread_replies` - Get replies in a thread 5. `search_messages` - Search for messages in Slack ### Resources 1. `allusers://` - Get all users in the Slack workspace 2. `allchannels://` - Get all channels in the Slack workspace ## Requirements - [Bun](https://bun.sh/) runtime - Slack API token with appropriate permissions ## Installation 1. Clone the repository 2. Install dependencies: ```bash bun install ``` ## Usage 1. Set the Slack API token as an environment variable: ```bash export SLACK_TOKEN=xoxb-your-token-here ``` 2. Run the server: ```bash bun run index.ts ``` Or use the compiled version: ```bash ./dist/slack_search_function_mcp ``` ## Building To build the executable: ```bash bun run build ``` This will create a compiled executable in the `dist` directory. ## MCP Configuration To use this server with an MCP-enabled LLM, add it to your MCP configuration: ```json { "mcpServers": { "slack": { "command": "/path/to/dist/slack_search_function_mcp", "env": { "SLACK_TOKEN": "xoxb-your-token-here" } } } } ``` ## Tool Examples ### Get Users ```json { "name": "get_users", "arguments": { "limit": 10 } } ``` ### Get Channels ```json { "name": "get_channels", "arguments": { "limit": 10, "exclude_archived": true } } ``` ### Get Channel Messages ```json { "name": "get_channel_messages", "arguments": { "channel": "C01234ABCDE", "limit": 10 } } ``` ### Get Thread Replies ```json { "name": "get_thread_replies", "arguments": { "channel": "C01234ABCDE", "thread_ts": "1234567890.123456", "limit": 10 } } ``` ### Search Messages ```json { "name": "search_messages", "arguments": { "query": "important announcement", "sort": "timestamp", "sort_dir": "desc", "count": 10 } } ``` ## Resource Examples ### Get All Users ``` allusers:// ``` ### Get All Channels ``` allchannels:// ``` ## Error Handling The server includes comprehensive error handling for: - Invalid or missing Slack API token - API rate limits - Network errors - Invalid parameters - Authentication failures ## Security - The Slack API token is never logged or exposed in responses - The token is securely passed via environment variables