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

# Comment créer un agent SlackBot avec ClickHouse MCP server.

> Découvrez comment créer un agent SlackBot capable d’interagir avec ClickHouse MCP server.

Dans ce guide, vous apprendrez à créer un agent [SlackBot](https://slack.com/intl/en-gb/help/articles/202026038-An-introduction-to-Slackbot).
Ce bot vous permet de poser des questions sur vos données ClickHouse directement depuis Slack, en langage naturel. Il utilise
[ClickHouse MCP server](https://github.com/ClickHouse/mcp-clickhouse) et [PydanticAI](https://ai.pydantic.dev/mcp/client/#__tabbed_1_1).

<Info>
  **Projet d’exemple**

  Le code de cet exemple se trouve dans le [dépôt d’exemples](https://github.com/ClickHouse/examples/blob/main/ai/mcp/slackbot/README.md).
</Info>

<div id="prerequisites">
  ## Prérequis
</div>

* Vous devez avoir installé [`uv`](https://docs.astral.sh/uv/getting-started/installation/)
* Vous devez avoir accès à un espace de travail Slack
* Vous devez disposer d'une clé API Anthropic ou d'une clé API d'un autre fournisseur de LLM

<Steps>
  <Step title="Créer une application Slack" id="create-a-slack-app">
    1. Accédez à [slack.com/apps](https://slack.com/apps), puis cliquez sur `Create New App`.
    2. Choisissez l'option `From scratch`, puis donnez un nom à votre application.
    3. Sélectionnez votre espace de travail Slack.
  </Step>

  <Step title="Installer l'application dans votre espace de travail" id="install-the-app-to-your-workspace">
    Ensuite, vous devez ajouter à votre espace de travail l'application créée à l'étape précédente.
    Vous pouvez suivre les instructions de ["Add apps to your Slack workspace"](https://slack.com/intl/en-gb/help/articles/202035138-Add-apps-to-your-Slack-workspace)
    dans la documentation Slack.
  </Step>

  <Step title="Configurer les paramètres de l'application Slack" id="configure-slack-app-settings">
    * Accédez à `App Home`
      * Sous `Show Tabs` → `Messages Tab` : activez `Allow users to send Slash commands and messages from the messages tab`
      * Accédez à `Socket Mode`
        * Activez `Socket Mode`
        * Notez le `Socket Mode Handler` pour la variable d'environnement `SLACK_APP_TOKEN`
      * Accédez à `OAuth & Permissions`
        * Ajoutez les `Bot Token Scopes` suivants :
          * `app_mentions:read`
          * `assistant:write`
          * `chat:write`
          * `im:history`
          * `im:read`
          * `im:write`
          * `channels:history`
        * Installez l'application dans votre espace de travail, puis notez le `Bot User OAuth Token` pour la variable d'environnement `SLACK_BOT_TOKEN`.
      * Accédez à `Event Subscriptions`
        * Activez `Events`
        * Sous `Subscribe to bot events`, ajoutez :
          * `app_mention`
          * `assistant_thread_started`
          * `message:im`
        * Save Changes
  </Step>

  <Step title={<>Ajouter des variables d'environnement (<code>.env</code>)</>} id="add-env-vars">
    Créez un fichier `.env` à la racine du projet avec les variables d'environnement suivantes
    qui permettront à votre application de se connecter au [SQL playground de ClickHouse](https://sql.clickhouse.com/).

    ```env theme={null}
    SLACK_BOT_TOKEN=your-slack-bot-token
    SLACK_APP_TOKEN=your-slack-app-level-token
    ANTHROPIC_API_KEY=your-anthropic-api-key
    CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
    CLICKHOUSE_PORT=8443
    CLICKHOUSE_USER=demo
    CLICKHOUSE_PASSWORD=
    CLICKHOUSE_SECURE=true
    ```

    Vous pouvez adapter les variables ClickHouse pour utiliser votre propre serveur ClickHouse
    ou votre propre instance Cloud, si vous le préférez.
  </Step>

  <Step title="Utiliser le bot" id="using-the-bot">
    1. **Démarrez le bot :**

       ```sh theme={null}
       uv run main.py
       ```
    2. **Dans Slack :**
       * Mentionnez le bot dans un canal : `@yourbot Who are the top contributors to the ClickHouse git repo?`
       * Répondez dans le fil avec une mention : `@yourbot how many contributions did these users make last week?`
       * Envoyez un message privé au bot : `Show me all tables in the demo database.`

    Le bot répondra dans le fil en utilisant, le cas échéant,
    tous les messages précédents du fil comme contexte.

    **Contexte du fil :**
    Lorsqu'il répond dans un fil, le bot charge tous les messages précédents (à l'exception du message actuel) et les inclut comme contexte pour l'IA.

    **Utilisation des outils :**
    Le bot utilise uniquement les outils disponibles via MCP (par exemple, la découverte de schéma et l'exécution SQL) et affichera toujours le SQL utilisé ainsi qu'un résumé de la manière dont la réponse a été trouvée.
  </Step>
</Steps>
