跳转到主内容
跳转到主内容

使用 ClickHouse MCP 服务器与 Ollama

本指南介绍如何使用 ClickHouse MCP 服务器与 Ollama。

安装 Ollama

Ollama is a library for running Large Language Models (LLMs) on your own machine. 它提供多种可用模型且易于使用。

您可以从下载页面下载适用于 Mac、Windows 或 Linux 的 Ollama。

运行 Ollama 后,它将在后台启动一个本地服务器,您可以使用该服务器运行模型。 或者,您可以通过运行 ollama serve 手动启动服务器。

安装完成后,可以通过以下方式将模型拉取到您的机器上:

ollama pull qwen3:8b

如果模型不存在,此命令将把模型拉取到本地机器。 下载完成后,可以像这样运行模型:

ollama run qwen3:8b
注意

只有支持工具的模型才能与 MCP 服务器配合使用。

可以通过以下方式列出已下载的模型:

ollama ls
NAME                       ID              SIZE      MODIFIED
qwen3:latest               500a1f067a9f    5.2 GB    3 days ago

可以使用以下命令查看已下载模型的更多信息:

ollama show qwen3
  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

从此输出可以看出,默认的 qwen3 模型有略超过 80 亿个参数。

安装 MCPHost

在撰写本文时(2025 年 7 月),尚无将 Ollama 与 MCP 服务器配合使用的原生功能。 但是,可以使用 MCPHost 来运行 Ollama 模型与 MCP 服务器。

MCPHost 是一个 Go 应用程序,因此您需要确保在您的机器上安装了 Go。 然后可以通过运行以下命令来安装 MCPHost:

go install github.com/mark3labs/mcphost@latest

二进制文件将安装在 ~/go/bin 目录下,因此需要确保该目录已添加到 PATH 环境变量中。

配置 ClickHouse MCP 服务器

可以使用 YAML 或 JSON 文件在 MCPHost 中配置 MCP 服务器。 MCPHost 将按以下顺序在主目录中查找配置文件:

  1. .mcphost.yml.mcphost.json(首选)
  2. .mcp.yml.mcp.json (用于向后兼容)

它使用的语法与标准 MCP 配置文件中使用的语法类似。 以下是 ClickHouse MCP 服务器配置示例,我们将其保存到 ~/.mcphost.json 文件中:

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

与标准 MCP 配置文件的主要区别在于需要指定 type 参数。 该类型用于指示 MCP 服务器使用的传输类型。

  • local → 标准输入输出(stdio)传输
  • remote → 支持流式传输的远程通道
  • builtin → 进程内传输

我们还需要配置以下环境变量:

export CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
export CLICKHOUSE_USER=demo
export CLICKHOUSE_PASSWORD=""
注意

理论上,您应该能够在 MCP 配置文件的 environment 键下提供这些变量,但我们发现这种方式无法正常工作。

运行 MCPHost

配置好 ClickHouse MCP 服务器后,可以通过运行以下命令来运行 MCPHost:

mcphost --model ollama:qwen3

或者,如果您希望使用特定的配置文件:

mcphost --model ollama:qwen3 --config ~/.mcphost.json 
注意

如果您不提供 --model 参数,MCPHost 将在环境变量中查找 ANTHROPIC_API_KEY 并使用 anthropic:claude-sonnet-4-20250514 模型。

应该会看到以下输出:

  ┃                                                                                     ┃
  ┃  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)

可以使用 /servers 命令列出 MCP 服务器:

  ┃                                                                                      ┃
  ┃  ## Configured MCP Servers                                                           ┃
  ┃                                                                                      ┃
  ┃  1. mcp-ch                                                                           ┃
  ┃   MCPHost System (10:00)                                                             ┃
  ┃

使用 /tools 命令列出可用的工具:

  ┃  ## Available Tools                                                                  ┃
  ┃                                                                                      ┃
  ┃  1. mcp-ch__list_databases                                                           ┃
  ┃  2. mcp-ch__list_tables                                                              ┃
  ┃  3. mcp-ch__run_select_query

然后可以向模型询问有关 ClickHouse SQL 演练场中可用数据库/表的问题。

根据我们的经验,使用较小的模型时(默认的 qwen3 模型有 80 亿个参数),您需要更明确地说明希望它执行的操作。 例如,您需要明确要求它列出数据库和表,而不是直接要求它查询某个表。 您可以通过使用更大的模型(例如 qwen3:14b)来部分缓解此问题,但在消费级硬件上运行速度会更慢。