Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SLACK_MCP_ALLOW_WRITENoSet to 1 to enable the slack_post_message tool. Off by default.0

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
slack_searchA

Search Slack messages using native Slack search syntax.

Supports operators like from:@user, in:#channel, after:2026-01-01, before:2026-02-01, has:link, and quoted phrases. This is the widest net for "where was X discussed" questions across the whole workspace.

Args: query: Slack search query, e.g. 'from:@alice in:#project-x deadline'. count: Maximum matches to return (default 50). sort: 'timestamp' for newest-first, or 'score' for relevance. include_broadcasts: When False, drop @here/@channel/@everyone messages.

slack_channel_historyA

Read messages from one channel over a time window.

Accepts a channel name ('project-x' or '#project-x') or a channel ID. Name lookups are cached. Returns top-level messages only — use slack_thread to expand any message whose reply_count is non-zero.

Args: channel: Channel name or ID. oldest: Start bound as 'YYYY-MM-DD', 'YYYY-MM-DD HH:MM:SS', an epoch, or a relative offset like '-7d'. latest: End bound, same formats. A bare date means end-of-day. limit: Maximum messages (default 100). resolve_names: Resolve user IDs to display names (costs one call per user). include_broadcasts: When False, drop @here/@channel/@everyone messages.

slack_threadA

Fetch every reply in a thread, including the parent message.

Args: channel: Channel name or ID containing the thread. thread_ts: Timestamp of the thread parent (the ts or thread_ts field from a previous result). limit: Maximum messages to return (default 100). resolve_names: Resolve user IDs to display names.

slack_dm_historyA

Read direct-message history with one person.

Args: user: Username, @username, or user ID. limit: Maximum messages (default 50). oldest: Optional start bound as 'YYYY-MM-DD' or epoch. resolve_names: Resolve user IDs to display names.

slack_list_channelsA

Discover channels by glob pattern and minimum member count.

EXPENSIVE: this enumerates conversations.list, which Enterprise Grid throttles hard, so it may return a rate_limited error on large workspaces. If you already know the channel name, skip this and pass the name straight to slack_channel_history — that resolves via one fast search call. For a glob over channels you have joined, slack_channels_history is far cheaper.

Args: pattern: fnmatch glob against the channel name, e.g. 'team-*'. min_members: Only return channels with at least this many members. include_private: Include private channels you have joined. limit: Maximum channels to return (default 200).

slack_userA

Resolve a username or user ID to a profile.

Use this to turn a raw user ID from another result (e.g. 'U01234ABCDE') into a name, or to look up someone's title, timezone, and custom fields.

Args: name_or_id: Username, @username, display name, or user ID. include_custom_fields: Resolve workspace custom profile fields to labels (costs one extra API call).

slack_user_activityA

Everything one person said or received in a time range, grouped by channel.

Searches messages from and to the user, optionally pulls surrounding channel history so replies have antecedents, and optionally expands every thread touched. Returns messages grouped by channel with replies nested under their parents, plus a stats block.

Prefer this over assembling the same result from slack_search plus slack_channel_history plus slack_thread: it deduplicates across all three passes, which a sequence of separate calls cannot do without replaying every message. Cost scales with the number of channels the user was active in.

Args: user: Slack handle or user ID. Defaults to the authenticated user. oldest: Window start — 'YYYY-MM-DD', an epoch, or a relative offset such as '-7d'. Defaults to one day before latest. latest: Window end, same formats. A bare date means end-of-day. Defaults to now. context_window: Seconds of surrounding channel history to include on either side of the user's own messages. 0 (the default) fetches no context; a few thousand seconds gives conversational lead-in. expand_threads: Fetch replies for threads that were touched. max_text: Truncate message text to this many characters. None keeps the full text.

slack_channels_historyA

History for several channels over one time range, threads nested inline.

Give either an explicit channels list or a pattern to discover them. Replies are attached to their parent message rather than returned flat, which matters for channels whose substance lives in threads.

Discovery by pattern only sees channels you have joined — a matching channel you are not a member of is invisible. That limit is deliberate: enumerating an entire Enterprise Grid workspace is throttled past usability.

Args: channels: Channel names or IDs. Mutually exclusive with pattern. pattern: fnmatch glob over joined channel names, e.g. 'team-*'. oldest: Window start — 'YYYY-MM-DD', an epoch, or an offset like '-7d'. latest: Window end, same formats. Defaults to now. expand_threads: Fetch replies for messages that have them. min_members: With pattern, skip channels below this membership. Costs one extra (cached) API call per matching channel. max_text: Truncate message text to this many characters. None keeps all.

slack_profilesA

Look up full profiles for several people at once.

Richer than slack_user: resolves workspace custom fields to their labels and rewrites user-typed fields (for example Manager or Direct Reports) from raw IDs to display names. Returns field_definitions alongside profiles. Use slack_user for a quick single ID-to-name lookup; use this to populate records for several people.

Args: handles: Usernames, @usernames, or user IDs. Unresolvable entries come back as {'handle': ..., 'error': ...} rather than failing the batch.

slack_post_messageA

Post a message to Slack as yourself. DISABLED by default.

Requires SLACK_MCP_ALLOW_WRITE=1 in the server environment. Without it this tool refuses and returns an error, so no agent action can post by accident.

Args: channel: Channel name or ID to post into. text: Message body (Slack mrkdwn). thread_ts: Optional thread parent timestamp, to reply in-thread.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gregbuehler/mcp-slack'

If you have feedback or need assistance with the MCP directory API, please join our Discord server