slack_search_function_mcp

slack_search_function_mcp

2

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

  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 runtime
  • Slack API token with appropriate permissions

Installation

  1. Clone the repository
  2. Install dependencies:
    bun install
    

Usage

  1. Set the Slack API token as an environment variable:

    export SLACK_TOKEN=xoxb-your-token-here
    
  2. 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