Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MYCELIUM_NO_PINGNoSet to '1' to opt out of telemetry ping
SLACK_WORKSPACESYesComma-separated list of workspace aliases (e.g., 'onde,mycelium'). For each alias, you must set SLACK_WORKSPACE_<ALIAS>_TYPE and corresponding token (and cookie for xoxc).
SLACK_MCP_VAULT_PATHNoVault root for auto-export mirror~/Documents/Vault
SLACK_MCP_VAULT_EXPORTNoEnable/disable vault auto-exporttrue
SLACK_PRIMARY_WORKSPACENoDefault workspace alias when tool calls omit workspace
SLACK_MCP_AUDIT_LOG_PATHNoPath to JSONL audit log
SLACK_MCP_DRAFT_TTL_SECONDSNoDraft expiration in seconds3600
SLACK_MCP_SCRUB_PROMPT_INJECTIONNoEnable/disable prompt injection scrubbertrue

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_workspacesA

List configured Slack workspaces with auth type and primary status.

Returns a dict with workspaces (list of redacted profiles), primary (alias of the default workspace), and errors (config errors found at load time, e.g. malformed env values). Tokens never appear in the response.

healthcheckA

Verify token validity per workspace + report draft store + audit log path.

For each workspace, calls auth.test. Returns user_id and team domain on success, or error code on failure. Does not retry. A failed auth.test means the token has been invalidated (logout, password change, app revoke) and needs re-extraction per SETUP.md.

list_channelsA

List channels in the workspace.

types: comma-separated subset of public_channel, private_channel, mpim, im. Default omits DMs to keep responses short. limit caps results at the API page size.

search_channelsB

Substring match against channel names + topics. Case-insensitive.

read_channelA

Read recent messages from a channel.

channel accepts ID (C12345) or name (#general). Newest first. Auto-exports the result to the vault at šŸ¤– AI Chats/Slack//.md (best-effort).

read_threadA

Read a thread's parent message and replies.

ts is the parent message timestamp (Slack message ID). channel accepts ID or name. The returned messages list includes the parent as element 0.

list_usersC

List users in the workspace. Excludes deleted by default.

search_usersA

Substring match against user real_name/display_name/email/name.

get_user_profileC

Get full profile for a user_id (U... or W...).

search_messagesA

Search messages with Slack's full-text search.

Slack search modifiers work in query: in:#channel, from:@user, before:YYYY-MM-DD, after:YYYY-MM-DD, "exact phrase". The explicit channel param is sugar — when provided, prepends in:<channel> to the query.

Requires xoxc or xoxp auth (xoxb cannot search). Errors loudly with the workspace's actual auth_type if search isn't available.

send_messageA

Stage a message send. Does NOT post until confirm_send is called.

Returns a draft_id, the resolved workspace + channel, the text preview, and an expires_at unix timestamp. Drafts expire after 1 hour and can only be confirmed once.

For thread replies, set thread_ts to the parent message's ts. For replies that quote (reply with quote-block in Slack UI), use send_reply_quote instead.

send_reply_quoteA

Stage a reply that threads under target_ts.

Same draft+confirm semantics as send_message. The recipient sees the reply nested under the target message in their Slack UI.

confirm_sendA

Commit a previously-drafted send. Dispatches by draft.kind:

  • send_message / send_reply_quote -> chat.postMessage (new message)

  • update_message -> chat.update (in-place edit of target_ts)

cancel_draftB

Cancel an unconfirmed draft. Idempotent.

add_reactionA

Add an emoji reaction to a message.

emoji is the colon-stripped name (e.g. "thumbsup", "fire", "white_check_mark"). Low-consequence write — no draft+confirm. Idempotent (Slack returns already_reacted as a soft success).

mark_readA

Mark a channel read up to a given message ts.

Affects unread state across all your linked devices. Use the ts of the most recent message you've read.

delete_own_messageA

Delete one of your own messages.

Calls chat.delete with (channel, ts). xoxc user tokens can delete their OWN messages without special scopes. Returns ok=True on success. message_not_found is treated as a soft success (already-deleted or wrong ts).

Low-consequence (only your own messages, no destructive cascade) so no draft+confirm. The audit log records every call.

update_own_messageA

Stage an edit to one of your own messages. Does NOT update until confirm_send is called.

Fetches the current message text up front so the draft preview shows BOTH the BEFORE and AFTER strings — a visual diff in plain Python. After confirm_send, the message is edited in place via chat.update.

Returns a draft_id, the resolved workspace + channel + target_ts, and a preview dict with before, after, target_ts. Drafts expire after 1 hour and can only be confirmed once.

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/adelaidasofia/slack-mcp'

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