Ferrule

Slack

18 tools OpenAPI spec ↗

MCPREST
POSTsend_message/channels/:channel/messages

Send a message to a Slack channel. Can also reply to a thread by providing thread_ts.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID to send the message to

Query Parameters

NameTypeRequiredDescription
textstringNoMessage text to send
thread_tsstringNoThread timestamp to reply to (creates a threaded reply)
reply_broadcastbooleanNoWhen replying in a thread, also post to the channel (default false)
unfurl_linksbooleanNoEnable or disable link unfurling (default true)

Response

okboolean
channelstring
tsstring
messageobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "send_message"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "send_message",
      "params": {
        "channel": "<channel>"
      }
    }
  }
}
GETread_messages/channels/:channel/messages

Read message history from a Slack channel. Use oldest/latest to filter by time range.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID to read messages from

Query Parameters

NameTypeRequiredDescription
limitstringNoMaximum number of messages to return per page (default 20, max 999)
oldeststringNoOnly messages after this Unix timestamp (inclusive). Example: 1234567890.123456
lateststringNoOnly messages before this Unix timestamp (inclusive). Example: 1234567890.123456

Pagination

NameTypeRequiredDescription
cursorstringNoPagination cursor from previous response's response_metadata.next_cursor

Response

okboolean
messagesarray
has_moreboolean
response_metadataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "read_messages"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "read_messages",
      "params": {
        "channel": "<channel>"
      }
    }
  }
}
GETread_thread/channels/:channel/messages/:ts/replies

Read replies in a message thread. Provide the channel and the parent message timestamp.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID containing the thread
tsstringYesParent message timestamp (thread root)

Query Parameters

NameTypeRequiredDescription
limitstringNoMaximum number of replies to return per page (default 20, max 999)

Pagination

NameTypeRequiredDescription
cursorstringNoPagination cursor from previous response's response_metadata.next_cursor

Response

okboolean
messagesarray
has_moreboolean
response_metadataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "read_thread"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "read_thread",
      "params": {
        "channel": "<channel>",
        "ts": "<ts>"
      }
    }
  }
}
GETlist_channels/channels

List Slack channels the bot has access to. Returns public channels by default.

Request

Query Parameters

NameTypeRequiredDescription
limitstringNoMaximum number of items to return per page (default 20, max 999)
typesstringNoComma-separated channel types: public_channel, private_channel, mpim, im (default: public_channel)
exclude_archivedstringNoSet to true to exclude archived channels (default false)

Pagination

NameTypeRequiredDescription
cursorstringNoPagination cursor from previous response's response_metadata.next_cursor

Response

okboolean
channelsarray
response_metadataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "list_channels"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "list_channels",
      "params": {}
    }
  }
}
GETget_channel_info/channels/:channel

Get detailed information about a Slack channel including topic, purpose, and member count.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID

Query Parameters

NameTypeRequiredDescription
include_num_membersbooleanNoInclude the number of members in the channel

Response

okboolean
channelobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "get_channel_info"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "get_channel_info",
      "params": {
        "channel": "<channel>"
      }
    }
  }
}
POSTcreate_channel/channels

Create a new Slack channel. Provide a name (lowercase, no spaces).

Request

Query Parameters

NameTypeRequiredDescription
namestringNoChannel name (lowercase, no spaces, max 80 chars)
is_privatebooleanNoCreate as private channel (default false)

Response

okboolean
channelobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "create_channel"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "create_channel",
      "params": {}
    }
  }
}
POSTarchive_channel/channels/:channel/archive

Archive a Slack channel. The channel can be unarchived later.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID to archive

Response

okboolean

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "archive_channel"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "archive_channel",
      "params": {
        "channel": "<channel>"
      }
    }
  }
}
POSTinvite_to_channel/channels/:channel/invitations

Invite one or more users to a Slack channel. Provide comma-separated user IDs.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID to invite users to

Query Parameters

NameTypeRequiredDescription
usersstringNoComma-separated list of user IDs to invite

Response

okboolean
channelobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "invite_to_channel"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "invite_to_channel",
      "params": {
        "channel": "<channel>"
      }
    }
  }
}
POSTadd_reaction/channels/:channel/messages/:timestamp/reactions

Add an emoji reaction to a message. Provide the emoji name without colons.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID containing the message
timestampstringYesMessage timestamp to react to

Query Parameters

NameTypeRequiredDescription
namestringNoEmoji name without colons (e.g. thumbsup)

Response

okboolean

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "add_reaction"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "add_reaction",
      "params": {
        "channel": "<channel>",
        "timestamp": "<timestamp>"
      }
    }
  }
}
GETget_reactions/channels/:channel/messages/:timestamp/reactions

Get all emoji reactions on a specific message in a channel.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID containing the message
timestampstringYesMessage timestamp to get reactions for

Query Parameters

NameTypeRequiredDescription
fullbooleanNoIf true, return complete reaction list for each emoji (default false)

Response

okboolean
typestring
channelstring
messageobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "get_reactions"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "get_reactions",
      "params": {
        "channel": "<channel>",
        "timestamp": "<timestamp>"
      }
    }
  }
}
DELETEremove_reaction/channels/:channel/messages/:timestamp/reactions

Remove an emoji reaction from a message.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID containing the message
timestampstringYesMessage timestamp to remove the reaction from

Query Parameters

NameTypeRequiredDescription
namestringNoEmoji name without colons to remove

Response

okboolean

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "remove_reaction"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "remove_reaction",
      "params": {
        "channel": "<channel>",
        "timestamp": "<timestamp>"
      }
    }
  }
}
POSTadd_pin/channels/:channel/messages/:timestamp/pins

Pin a message in a Slack channel.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID containing the message
timestampstringYesMessage timestamp to pin

Response

okboolean

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "add_pin"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "add_pin",
      "params": {
        "channel": "<channel>",
        "timestamp": "<timestamp>"
      }
    }
  }
}
DELETEremove_pin/channels/:channel/messages/:timestamp/pins

Unpin a message from a Slack channel.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID containing the message
timestampstringYesMessage timestamp to unpin

Response

okboolean

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "remove_pin"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "remove_pin",
      "params": {
        "channel": "<channel>",
        "timestamp": "<timestamp>"
      }
    }
  }
}
GETlist_pins/channels/:channel/pins

List all pinned messages in a Slack channel.

Request

Path Parameters

NameTypeRequiredDescription
channelstringYesChannel ID to list pins for

Response

okboolean
itemsarray

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "list_pins"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "list_pins",
      "params": {
        "channel": "<channel>"
      }
    }
  }
}
POSTupload_file/files

Upload a file to a Slack channel. Supports text content or base64-encoded binary files (xlsx, pdf, images, etc.). Uses the V2 upload API.

Request

Query Parameters

NameTypeRequiredDescription
channel_idstringNoChannel ID to upload the file to
filenamestringNoFilename for the uploaded file
contentstringNoText content of the file (mutually exclusive with content_base64)
content_base64stringNoBase64-encoded binary content (mutually exclusive with content). Use for xlsx, pdf, images, etc.
initial_commentstringNoMessage to include with the file upload
thread_tsstringNoThread timestamp to upload to (for threaded file shares)

Response

okboolean
filesarray

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "upload_file"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "upload_file",
      "params": {}
    }
  }
}
GETlist_users/users

List all users in the Slack workspace. Returns members with their profiles.

Request

Query Parameters

NameTypeRequiredDescription
limitstringNoMaximum number of items to return per page (default 20, max 999)

Pagination

NameTypeRequiredDescription
cursorstringNoPagination cursor from previous response's response_metadata.next_cursor

Response

okboolean
membersarray
response_metadataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "list_users"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "list_users",
      "params": {}
    }
  }
}
GETget_user_info/users/:user

Get detailed information about a Slack user by their user ID.

Request

Path Parameters

NameTypeRequiredDescription
userstringYesSlack user ID (e.g. U1234567890)

Response

okboolean
userobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "get_user_info"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "get_user_info",
      "params": {
        "user": "<user>"
      }
    }
  }
}
GETlookup_user_by_email/users/lookup-by-email

Look up a Slack user by their email address. Returns the user's profile.

Request

Query Parameters

NameTypeRequiredDescription
emailstringNoEmail address to look up

Response

okboolean
userobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "slack",
      "method": "lookup_user_by_email"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_slack",
    "arguments": {
      "method": "lookup_user_by_email",
      "params": {}
    }
  }
}