Skip to content

Slack ​

Draft replies, summarize threads, and search your Slack workspace.

FamilyCategorySub-typeAuth typeTrending score
Communicationcommunicationteam-chatoauth288

Overview ​

Product URLAPI docsSupported features
https://slack.com/https://docs.slack.dev/apis/tool_discovery, health_check

Setup ​

  1. Install the connector instance.
  2. Complete the OAuth authorization flow.
  3. Sync the tools and test the connection.
  4. Review approval-gated write tools before running them.

Auth & Configuration ​

This connector does not require additional instance config.

Available Tools ​

ToolRequires approvalDescription
send_messageYesSend a message to a Slack channel or user.
list_channelsNoList all public and private channels the bot has access to.
upload_fileYesUpload a file to a Slack channel.
search_messagesNoSearch for messages matching a query across the workspace.

Use list_channels for the main execution example below because it is safe to run without approval.

Tools that require approval cannot be run with direct execution (API or CLI); they return 403. Run them through Chao instead, which applies its approval rules before acting.

Examples ​

Install ​

bash
chainabit connectors install slack --name "Slack"
bash
curl -X POST "$BASE_URL/connectors/instances" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "connectorKey": "slack",
  "displayName": "Slack"
}'
javascript
const response = await fetch(`${BASE_URL}/connectors/instances`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "connectorKey": "slack",
  "displayName": "Slack"
}),
});

Credentials ​

bash
chainabit connectors auth <instance-id>
bash
curl -X POST "$BASE_URL/connectors/instances/<instance-id>/oauth/initiate" \
  -H "Authorization: Bearer $TOKEN"
javascript
const response = await fetch(`${BASE_URL}/connectors/instances/<instance-id>/oauth/initiate`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${TOKEN}`,
  },
});

Execute ​

bash
chainabit connectors exec <instance-id> list_channels --input '{}'
bash
curl -X POST "$BASE_URL/connectors/instances/<instance-id>/tools/tool_list_channels/execute" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {}
}'
javascript
const response = await fetch(
  `${BASE_URL}/connectors/instances/<instance-id>/tools/tool_list_channels/execute`,
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
  "input": {}
}),
  },
);

Security Notes ​

  • Keep tokens, API keys, and connection strings in the encrypted credentials vault.
  • Do not allow arbitrary server URLs for remote MCP connectors.

Troubleshooting ​

  • If the health check fails, verify the token scope or credential payload and try again.
  • If the tool list is empty, re-run sync-tools after storing the latest credentials.

Back to the catalog

Built with purpose.