> ## 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.

# Configurer le ClickHouse MCP server avec Ollama

> Ce guide explique comment configurer Ollama avec un ClickHouse MCP server.

> Ce guide explique comment utiliser le ClickHouse MCP server avec Ollama.

<Steps>
  <Step title="Installer Ollama" id="install-ollama">
    Ollama est une bibliothèque qui permet d’exécuter de grands modèles de langage (LLM) sur votre propre machine.
    Elle propose un [large choix de modèles](https://ollama.com/library) et est facile à utiliser.

    Vous pouvez télécharger Ollama pour Mac, Windows ou Linux depuis la [page de téléchargement](https://ollama.com/download).

    Une fois Ollama lancé, il démarre un serveur local en arrière-plan que vous pouvez utiliser pour exécuter des modèles.
    Vous pouvez également lancer le serveur manuellement avec `ollama serve`.

    Une fois l’installation terminée, vous pouvez télécharger un modèle sur votre machine comme suit :

    ```bash theme={null}
    ollama pull qwen3:8b
    ```

    Le modèle sera téléchargé sur votre machine locale s’il n’y est pas déjà.
    Une fois téléchargé, vous pouvez exécuter le modèle comme suit :

    ```bash theme={null}
    ollama run qwen3:8b
    ```

    <Note>
      Seuls les [modèles prenant en charge les outils](https://ollama.com/search?c=tools) fonctionneront avec les serveurs MCP.
    </Note>

    Nous pouvons lister les modèles que nous avons téléchargés ainsi :

    ```bash theme={null}
    ollama ls
    ```

    ```text theme={null}
    NAME                       ID              SIZE      MODIFIED
    qwen3:latest               500a1f067a9f    5.2 GB    3 days ago
    ```

    Nous pouvons utiliser la commande suivante pour afficher plus d’informations sur le modèle que nous avons téléchargé :

    ```bash theme={null}
    ollama show qwen3
    ```

    ```text theme={null}
      Model
        architecture        qwen3
        parameters          8.2B
        context length      40960
        embedding length    4096
        quantization        Q4_K_M

      Capabilities
        completion
        tools

      Parameters
        repeat_penalty    1
        stop              "<|im_start|>"
        stop              "<|im_end|>"
        temperature       0.6
        top_k             20
        top_p             0.95

      License
        Apache License
        Version 2.0, January 2004
    ```

    Nous pouvons voir dans cette sortie que le modèle qwen3 par défaut compte un peu plus de 8 milliards de paramètres.
  </Step>

  <Step title="Installer MCPHost" id="install-mcphost">
    Au moment de la rédaction de ce document (juillet 2025), il n’existe pas de fonctionnalité native pour utiliser Ollama avec des serveurs MCP.
    Cependant, il est possible d’utiliser [MCPHost](https://github.com/mark3labs/mcphost) pour exécuter des modèles Ollama avec des serveurs MCP.

    MCPHost est une application Go. Assurez-vous donc que [Go est installé](https://go.dev/doc/install) sur votre machine.
    Vous pouvez ensuite installer MCPHost en exécutant la commande suivante :

    ```bash theme={null}
    go install github.com/mark3labs/mcphost@latest
    ```

    Le binaire sera installé dans `~/go/bin`, nous devons donc nous assurer que ce répertoire est bien dans notre `PATH`.
  </Step>

  <Step title="Configuration du serveur MCP ClickHouse" id="configure-clickhouse-mcp-server">
    Vous pouvez configurer des serveurs MCP avec MCPHost dans des fichiers YAML ou JSON.
    MCPHost recherchera les fichiers de configuration dans votre répertoire personnel dans l’ordre suivant :

    1. `.mcphost.yml` ou `.mcphost.json`  (recommandé)
    2. `.mcp.yml` ou `.mcp.json` (rétrocompatibilité)

    Il utilise une syntaxe similaire à celle du fichier de configuration MCP standard.
    Voici un exemple de configuration d’un serveur MCP ClickHouse, que nous enregistrerons dans le fichier `~/.mcphost.json` :

    ```json theme={null}
    {
      "mcpServers": {
        "mcp-ch": {
          "type": "local",
          "command": ["uv",
            "run",
            "--with",
            "mcp-clickhouse",
            "--python",
            "3.10",
            "mcp-clickhouse"
          ]
        }
      }
    }
    ```

    La principale différence par rapport au fichier de configuration MCP standard est que nous devons spécifier un `type`.
    Le type sert à indiquer le type de transport utilisé par le serveur MCP.

    * `local` → transport stdio
    * `remote` → transport en flux
    * `builtin` → transport in-process

    Nous devrons également configurer les variables d’environnement suivantes :

    ```bash theme={null}
    export CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
    export CLICKHOUSE_USER=demo
    export CLICKHOUSE_PASSWORD=""
    ```

    <Note>
      En théorie, vous devriez pouvoir indiquer ces variables sous la clé `environment` dans le fichier de configuration du MCP, mais nous avons constaté que cela ne fonctionnait pas.
    </Note>
  </Step>

  <Step title="Exécuter MCPHost" id="running-mcphost">
    Une fois le serveur MCP ClickHouse configuré, vous pouvez lancer MCPHost avec la commande suivante :

    ```bash theme={null}
    mcphost --model ollama:qwen3
    ```

    Ou, si vous souhaitez utiliser un fichier de configuration spécifique :

    ```bash theme={null}
    mcphost --model ollama:qwen3 --config ~/.mcphost.json 
    ```

    <Warning>
      Si vous ne fournissez pas `--model`, MCPHost recherchera `ANTHROPIC_API_KEY` dans les variables d'environnement et utilisera le modèle `anthropic:claude-sonnet-4-20250514`.
    </Warning>

    Le résultat suivant devrait s'afficher :

    ```text theme={null}
      ┃                                                                                     ┃
      ┃  Model loaded: ollama (qwen3)                                                       ┃
      ┃   MCPHost System (09:52)                                                            ┃
      ┃                                                                                     ┃

      ┃                                                                                     ┃
      ┃  Model loaded successfully on GPU                                                   ┃
      ┃   MCPHost System (09:52)                                                            ┃
      ┃                                                                                     ┃

      ┃                                                                                     ┃
      ┃  Loaded 3 tools from MCP servers                                                    ┃
      ┃   MCPHost System (09:52)                                                            ┃
      ┃                                                                                     ┃

      Enter your prompt (Type /help for commands, Ctrl+C to quit, ESC to cancel generation)
    ```

    Nous pouvons utiliser la commande `/servers` pour afficher la liste des serveurs MCP :

    ```text theme={null}
      ┃                                                                                      ┃
      ┃  ## Configured MCP servers                                                           ┃
      ┃                                                                                      ┃
      ┃  1. mcp-ch                                                                           ┃
      ┃   MCPHost System (10:00)                                                             ┃
      ┃
    ```

    Et `/tools` pour afficher la liste des outils disponibles :

    ```text theme={null}
      ┃  ## Available Tools                                                                  ┃
      ┃                                                                                      ┃
      ┃  1. mcp-ch__list_databases                                                           ┃
      ┃  2. mcp-ch__list_tables                                                              ┃
      ┃  3. mcp-ch__run_select_query
    ```

    Nous pouvons ensuite poser au modèle des questions sur les bases de données et les tables disponibles dans le ClickHouse SQL playground.

    D’après notre expérience, lorsque vous utilisez des modèles plus petits (le modèle qwen3 par défaut compte 8 milliards de paramètres), vous devrez être plus précis sur ce que vous souhaitez lui faire faire.
    Par exemple, vous devrez lui demander explicitement de lister les bases de données et les tables, plutôt que de lui demander directement d’interroger une table donnée.
    Vous pouvez en partie atténuer ce problème en utilisant un modèle plus grand (par ex. qwen3:14b), mais il s’exécutera plus lentement sur du matériel grand public.
  </Step>
</Steps>
