mcp-slack-crunchtools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SLACK_COOKIE_D | No | Value of the d cookie (xoxd-...) from the same browser session. Sent as a Cookie header alongside SLACK_COOKIE_TOKEN. | |
| SLACK_USER_TOKEN | No | User OAuth token (xoxp-...) from a Slack app installed in the workspace. | |
| SLACK_COOKIE_TOKEN | No | Browser session token (xoxc-...). Must be paired with SLACK_COOKIE_D. | |
| SLACK_ADD_MESSAGE_DELAY | No | How far ahead outgoing messages are scheduled, giving you a window to cancel one. Duration string such as 30s, 5m, 2h, or a bare integer for seconds. Set to 0, 0s, none, or false to disable scheduling and post immediately. | 3m |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| slack_auth_testA | Test Slack authentication and get info about the token owner. Returns the authenticated user's ID, team ID, team name, username, and workspace URL. Use this to verify the connection is working. |
| slack_list_channelsA | List channels in the Slack workspace. Args: types: Comma-separated channel types: public_channel, private_channel, mpim, im exclude_archived: Exclude archived channels (default: true) limit: Max results per page, 1-1000 (default: 200) cursor: Pagination cursor from previous response Returns: List of channels with pagination metadata |
| slack_get_channel_infoB | Get detailed information about a Slack channel. Args: channel_id: Channel ID (starts with C, D, or G) Returns: Channel details including name, topic, purpose, member count |
| slack_get_channel_historyA | Get message history from a Slack channel. Args: channel_id: Channel ID (starts with C, D, or G) limit: Max messages to return, 1-1000 (default: 100) cursor: Pagination cursor from previous response oldest: Only messages after this timestamp (e.g., 1234567890.123456) latest: Only messages before this timestamp inclusive: Include messages at oldest/latest boundary Returns: List of messages with pagination metadata |
| slack_get_thread_repliesA | Get replies in a Slack message thread. Args: channel_id: Channel ID (starts with C, D, or G) thread_ts: Timestamp of the parent message limit: Max replies to return, 1-1000 (default: 100) cursor: Pagination cursor from previous response oldest: Only replies after this timestamp latest: Only replies before this timestamp inclusive: Include messages at oldest/latest boundary Returns: List of thread messages with pagination metadata |
| slack_list_channel_membersA | List members of a Slack channel. Args: channel_id: Channel ID (starts with C, D, or G) limit: Max members to return, 1-1000 (default: 200) cursor: Pagination cursor from previous response Returns: List of member user IDs with pagination metadata |
| slack_search_messagesA | Search messages in the Slack workspace. Supports Slack search modifiers: from:user, in:channel, has:link, before:date, after:date, during:month. Args: query: Search query string sort: Sort by "timestamp" or "score" (default: timestamp) sort_dir: Sort direction "asc" or "desc" (default: desc) count: Results per page, 1-100 (default: 20) page: Page number (default: 1) Returns: Matching messages with total count and pagination info |
| slack_get_reactionsB | Get reactions for a specific Slack message. Args: channel_id: Channel ID (starts with C, D, or G) timestamp: Message timestamp (e.g., 1234567890.123456) full: If true, return complete reaction list for each emoji Returns: Message with its reactions |
| slack_list_reactionsA | List reactions made by a user. Args: user_id: User ID to list reactions for (default: authenticated user) count: Results per page, 1-100 (default: 100) page: Page number (default: 1) full: If true, return complete reaction list Returns: Reaction items with pagination info |
| slack_list_starsA | List starred items for the authenticated user. Args: count: Results per page, 1-100 (default: 100) page: Page number (default: 1) cursor: Pagination cursor from previous response Returns: Starred items with pagination info |
| slack_get_user_infoA | Get information about a Slack user. Args: user_id: User ID (starts with U, W, or B) Returns: User details including name, email, status, timezone |
| slack_list_usersA | List users in the Slack workspace. Args: limit: Max users to return, 1-1000 (default: 200) cursor: Pagination cursor from previous response Returns: List of workspace members with pagination metadata |
| slack_get_user_profileB | Get a Slack user's profile information. Args: user_id: User ID (starts with U, W, or B) include_labels: Include custom profile field labels Returns: User profile with display name, status, image URLs, custom fields |
| slack_list_filesA | List files in the Slack workspace (metadata only, no content download). Args: channel_id: Filter by channel ID user_id: Filter by uploader's user ID types: Filter by types (comma-separated: spaces, snippets, images, gdocs, zips, pdfs, all) count: Results per page, 1-100 (default: 100) page: Page number (default: 1) ts_from: Filter files created after this Unix timestamp ts_to: Filter files created before this Unix timestamp Returns: File metadata list with pagination info |
| slack_get_file_infoA | Get metadata about a Slack file (no content download). Args: file_id: File ID (starts with F) count: Number of comments per page (default: 100) page: Page of comments (default: 1) Returns: File metadata, comments, and pagination info |
| slack_send_messageA | Send or schedule a Slack message. When SLACK_ADD_MESSAGE_DELAY is set (default: 3m), the message is scheduled via chat.scheduleMessage, giving a cancellation window before delivery. Use slack_cancel_scheduled_message with the returned scheduled_message_id to cancel. Set SLACK_ADD_MESSAGE_DELAY=0 to post immediately. Args: channel_id: Channel ID (starts with C, D, or G) text: Message text (Markdown supported) thread_ts: Parent message timestamp to reply in-thread Returns: scheduled_message_id + post_at (if scheduled) or ts (if immediate) |
| slack_cancel_scheduled_messageA | Cancel a scheduled Slack message before it sends. Args: channel_id: Channel ID the message was scheduled in scheduled_message_id: The scheduled_message_id returned by slack_send_message Returns: Confirmation with scheduled_message_id |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools map to distinct resource/action pairs, but slack_get_user_info and slack_get_user_profile overlap heavily (both return user details), and slack_get_reactions vs slack_list_reactions have similar names despite different targets.
Nearly all tools follow slack_verb_noun in snake_case. slack_auth_test breaks the verb-first pattern slightly, and get/list are used interchangeably but consistently enough.
17 tools is slightly above the ideal 3-15 range but justified by Slack's broad read surface; no obvious redundant tools. It feels a bit heavy but manageable.
Covers auth, users, channels, history, threads, search, reactions, stars, files metadata, and message sending. However, there are notable gaps: no channel create/archive/invite, no message update/delete, no add/remove reactions, and no file upload/content access.