slack_search_function_mcp
The Slack Search MCP Server is designed as a Model Context Protocol (MCP) server facilitating LLMs to access Slack's search functionalities efficiently. It provides comprehensive tools and resources to manage and retrieve workspace data such as users, channels, and messages securely.
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
get_users
- Get a list of users in the Slack workspaceget_channels
- Get a list of channels in the Slack workspaceget_channel_messages
- Get messages from a specific channelget_thread_replies
- Get replies in a threadsearch_messages
- Search for messages in Slack
Resources
allusers://
- Get all users in the Slack workspaceallchannels://
- Get all channels in the Slack workspace
Requirements
- Bun runtime
- Slack API token with appropriate permissions
Installation
- Clone the repository
- Install dependencies:
bun install
Usage
-
Set the Slack API token as an environment variable:
export SLACK_TOKEN=xoxb-your-token-here
-
Run the server:
bun run index.ts
Or use the compiled version:
./dist/slack_search_function_mcp
Building
To build the executable:
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:
{
"mcpServers": {
"slack": {
"command": "/path/to/dist/slack_search_function_mcp",
"env": {
"SLACK_TOKEN": "xoxb-your-token-here"
}
}
}
}
Tool Examples
Get Users
{
"name": "get_users",
"arguments": {
"limit": 10
}
}
Get Channels
{
"name": "get_channels",
"arguments": {
"limit": 10,
"exclude_archived": true
}
}
Get Channel Messages
{
"name": "get_channel_messages",
"arguments": {
"channel": "C01234ABCDE",
"limit": 10
}
}
Get Thread Replies
{
"name": "get_thread_replies",
"arguments": {
"channel": "C01234ABCDE",
"thread_ts": "1234567890.123456",
"limit": 10
}
}
Search Messages
{
"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