> ## Documentation Index
> Fetch the complete documentation index at: https://docs.komodor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Your own Slack app

> Connect a Slack app you create from KAOP's manifest, for chat over Socket Mode, the Slack MCP, or both, and manage its tokens and connection.

The Komodor Agentic Operation Platform (KAOP) can connect to Slack through a Slack app you create and
own, instead of KAOP's app. Its chat runs over Socket Mode, so nothing reaches KAOP from the internet,
and it is the app that gives agents the Slack MCP. Komodor turns your own app on for your
account; until it does, the **Connect Slack** dialog offers KAOP's app only. The two apps are compared in
[Connecting Slack](/manage-your-agents/run/channels#connecting-slack).

## What the app serves

* **Chat**: messages, mentions, slash commands and buttons reach your agents, as with KAOP's app.
  Needs the app's bot token and app-level token.
* **Slack MCP**: agents call Slack's own tools as one Slack user. Needs the app's User OAuth Token.
* **Both**, from one app.

## Create the app and connect it

**1. Choose your own app and what it is for**

Open **Connect Slack** from any Slack connect button. Choose **Your own Slack app**, then
**Chat**, **Slack MCP** or **Both**.

**2. Copy the manifest**

Copy or download the manifest the dialog shows. It is built for what the app is for.

**3. Create the app in Slack**

For the Slack MCP, first sign in to Slack as the user it should act as (see
[Who the Slack MCP acts as](#who-the-slack-mcp-acts-as)). Open
[api.slack.com/apps](https://api.slack.com/apps) and choose **Create New App**, then
**From a manifest**. Pick where to create it, paste the manifest, and choose **Create**.

**4. Install the app**

Open **Install App**, install the app, and approve it. For the Slack MCP, a Slack admin must also
approve the app: Slack serves its MCP only to internal apps and apps published in the Slack
Marketplace.

**5. Paste its values**

The dialog asks only for the values the use needs:

* **App ID**: Basic Information.
* **App-level token** (chat): on Basic Information, choose **Generate Token and Scopes** and add
  the `connections:write` scope.
* **Bot User OAuth Token** (chat): OAuth & Permissions.
* **User OAuth Token** (Slack MCP): OAuth & Permissions.

**6. Connect**

Choose **Connect**. KAOP checks every token with Slack before saving anything. If Slack refuses
one, the dialog shows Slack's own reason and keeps what you typed.

The result shows where the app is installed, what it serves, and who the Slack MCP acts as.
Connecting an app again also lists the MCP servers that use the connection, and warns if they now act
as a different Slack user than before.

For chat, people link their Slack identity the first time they message the app, as described in
[Who the agent is acting for](/manage-your-agents/run/channels#who-the-agent-is-acting-for).

> [!NOTE]
>
> Type the tokens into the dialog yourself. The co-pilot can open the dialog and choose the app, the use
> and the App ID, but it never asks for or handles a token.

## Set up the Slack MCP

Choose **Set up the Slack MCP** on the result, or **Add server** on the connection's row in
**Integrations**. The MCP setup opens on **Expose tools** with this connection chosen.
**Test and discover tools** adds the server and tests it; nothing is added before that.

## Who the Slack MCP acts as

> [!WARNING]
>
> The User OAuth Token belongs to the Slack user who installed the app, and every agent that uses the
> Slack MCP acts as that user. It can read and search every public channel in your Slack, joined or not,
> plus the private channels and DMs that user is in, with their files, canvases and lists, and every
> member's profile and email. It can also post, react, upload files, open DMs, create and edit canvases
> and lists, and create and manage channels as that user. Install the app with a dedicated Slack
> account, kept out of the private channels and DMs agents should not read.

## Replace tokens

On the channel's page, choose **Replace tokens** and paste any of the three tokens. Leave the others
blank to keep them. The app reconnects within about 10 seconds. A channel that shows a connection
error is fixed this way.

An app that serves only the Slack MCP has no channel: replace its User OAuth Token from
**Integrations**, on its row's menu.

## Disconnect

On the channel's page, choose **Disconnect**. For an app that serves both, choose **The whole app**,
**Chat only** or **The Slack MCP only**.

When chat stops (**The whole app** or **Chat only**), the channel stops as if the app were
uninstalled, and its routing rules are kept for **14 days**. When the Slack MCP stops (**The whole
app** or **The Slack MCP only**), KAOP first lists the MCP servers that use the connection. They stay
set up and stop working.

Connecting the same app again brings back the same connection: within those 14 days its routing rules
come back, and its MCP servers work again. After disconnecting the whole app, agents the connection
was attached to do not get it back: attach it to them again. **Connect again**, on the channel's page
or on the app's row in **Integrations**, opens the dialog on your own app with its App ID and what it
served filled in.

In **Integrations**, **Disconnect** on the app's row does the same, and is how you disconnect an app
that serves only the Slack MCP. On an app that is already disconnected, it removes the connection for
good.

## Move chat from KAOP's app

Chat runs through one app at a time. For the Slack MCP alone there is nothing to move: connect your
own app for **Slack MCP** and keep chat on KAOP's app. To move chat from KAOP's app to your own:

1. In **Integrations**, disconnect KAOP's Slack app. Its channel keeps its routing rules, and agents
   the connection was attached to lose it.
2. Within 14 days, connect your own app for **Chat** or **Both**, installed in the same Slack. The
   channel comes back with its rules, now on your app.
3. Invite your app to every Slack channel it should read or post in. It is a new Slack user, so it is
   in none of them yet, and **Channel** and **Keyword** rules match nothing in a channel it is not in.
4. Attach your app's connection to the agents that had KAOP's.

Deleting the channel from its page instead drops the rules.

## Next steps

> **[Channels](/manage-your-agents/run/channels)**
>
> Route Slack messages to agents and workflows, and compare the two Slack apps.

> **[Built-in integrations](/manage-your-agents/build/built-in-integrations)**
>
> Where the Slack MCP connection sits, and how a provider's tools are exposed.


## Related topics

- [Channels](/manage-your-agents/run/channels.md)
- [Troubleshooting](/reference/troubleshooting.md)
- [How Run works](/manage-your-agents/run/how-it-works.md)
- [Integrations list](/manage-your-agents/build/built-in-integrations.md)
- [What's new](/reference/changelog.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.