Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOGS_CHANNEL_IDNoOptional Slack channel ID for tool activity logs.
SLACK_BOT_TOKENNoSlack bot token (xoxb-...) for bot token authentication.
SLACK_XOXC_TOKENNoSlack session token (xoxc-...) required for browser-based authentication.
SLACK_XOXD_TOKENNoSlack cookie token (xoxd-...) required for browser-based authentication.
SLACK_MCP_READ_ONLYNoSet to 'true', '1', 'yes', or 'on' to enable read-only mode.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_threadA

Get all messages in a thread given a channel ID and the parent message timestamp.

Use this to read a full conversation thread before replying to it. The thread_ts is the timestamp of the parent message that started the thread.

get_channel_historyA

Get the history of a channel with pagination support. Limit parameter controls max messages to fetch (default 1000).

Optional date filtering (accepts ISO 8601 dates or Unix timestamps):

  • oldest: Only messages after this date (e.g., "2024-01-15" or "2024-01-15T10:30:00")

  • latest: Only messages before this date (e.g., "2024-01-20" or "2024-01-20T18:00:00")

  • include_threads: If True, also fetch all replies in threads (default False)

Note: For date-only formats, 'oldest' defaults to start of day (00:00:00) and 'latest' to end of day (23:59:59).

get_channel_id_by_nameA

Get the channel ID by channel name. The channel name can be with or without the # prefix.

refresh_channel_cacheA

Refresh the channel cache. Use this when new channels are created or if channel lookups are failing.

refresh_user_cacheA

Clear the user cache. Use this when user handles are outdated or if user lookups are failing. Returns the number of cached entries cleared.

resolve_user_idA

Resolve a Slack user ID from a name, @handle, or email address.

Searches the full workspace member list (cached for 24h). Returns up to 5 matches sorted by relevance: exact handle > exact email > case-insensitive name > partial substring match. Each result contains id, handle, real_name, display_name, and email.

post_messageA

Post a message to a channel. Optionally pass Block Kit blocks as a JSON string for rich formatting (e.g. nested lists via rich_text blocks). When blocks is provided, message is used as the plaintext fallback.

post_commandC

Post a command to a channel.

add_reactionB

Add a reaction to a message.

get_reactionsB

Get reactions to a message.

whoamiA

Checks authentication & identity.

join_channelC

Join a channel.

create_channelA

Create a new Slack channel.

Args: name: Channel name (will be sanitized: lowercase, hyphens, no spaces) is_private: Create as private channel (default: False for public)

Returns: Channel ID on success, None on failure

invite_users_to_channelA

Invite multiple users to a channel.

Args: channel_id: Target channel ID (C...) user_ids: List of user IDs to invite (U...)

Returns: True if all invitations succeeded, False otherwise

rename_channelA

Rename a Slack channel.

Args: channel_id: Target channel ID (C...) new_name: New channel name (will be sanitized: lowercase, hyphens, no spaces)

Returns: True if rename succeeded, False otherwise

list_joined_channelsA

List channels the authenticated user is a member of.

Uses Slack's users.conversations API. By default returns public and private channels only. To include DMs and group DMs, set types to e.g. "public_channel,private_channel,im,mpim".

clear_usergroupA

Clear all users from a Slack usergroup.

Since Slack API doesn't support empty usergroups, this uses a workaround by setting the usergroup to contain only a randomly selected deleted user. This effectively clears the usergroup.

Args: usergroup_id: The usergroup ID (S...) to clear

Returns: True if usergroup was cleared successfully, False otherwise

update_usergroup_membersA

Set the members of a Slack usergroup, replacing the current membership entirely.

Args: usergroup_id: The usergroup ID (S...) to update user_ids: List of user IDs (U...) that should be the members. Must contain at least one user — use clear_usergroup to remove all members.

Returns: True if the membership was updated successfully, False otherwise

send_dmA

Send a direct message to a user. Optionally pass Block Kit blocks as a JSON string for rich formatting (e.g. nested lists via rich_text blocks). When blocks is provided, message is used as the plaintext fallback.

send_group_dmB

Send a message to a group DM (multi-party direct message).

Args: user_ids: List of 2+ user IDs to include in group DM message: Message text to send

Returns: True if message sent successfully, False otherwise

search_messagesB

Search for messages in the workspace with pagination support. Limit parameter controls max results to fetch (default 1000).

search_channel_messagesA

Search for messages within a specific channel.

Uses Slack's search API with an 'in:' filter.

Args: channel_id: The channel ID to search within. query: The search query text. sort: Sort results by "timestamp" (newest first) or "score" (relevance). limit: Max number of results to return (default 100).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 22 tools

Disambiguation4/5

Most tools target distinct resources and actions, but get_thread overlaps with get_channel_history's include_threads option, and clear_usergroup is essentially a special case of update_usergroup_members. Otherwise, the boundaries are clear.

Naming Consistency4/5

Tool names mostly follow a consistent verb_noun snake_case pattern (post_message, create_channel, search_messages). Minor deviations like whoami and the somewhat vague post_command keep it from being perfectly uniform.

Tool Count3/5

With 22 tools, the set is at the heavy end for an MCP server, though Slack's broad domain justifies many of them. The inclusion of cache-refresh utilities and several overlapping search/message tools makes the surface feel slightly larger than necessary.

Completeness3/5

The server covers core messaging, channel management, reactions, search, and some usergroup operations. However, there are notable gaps such as message edit/delete, channel archive/delete/leave, and usergroup create/list/get, leaving some lifecycle workflows incomplete.

Maintenance

ActivityMaintained
ResponsivenessWithin a week