В этом руководстве рассказывается, как использовать MCP-сервер ClickHouse с Ollama.
Установка Ollama
Ollama — это библиотека для запуска больших языковых моделей (LLM) на вашем компьютере. Для неё доступен широкий выбор моделей, и ей легко пользоваться.
Вы можете скачать Ollama для Mac, Windows или Linux на странице загрузки.
После запуска Ollama в фоновом режиме будет запущен локальный сервер, который можно использовать для запуска моделей.
Либо вы можете запустить сервер вручную командой ollama serve.
После установки вы можете загрузить модель на свой компьютер следующим образом:
ollama pull qwen3:8bЭто скачает модель на ваш локальный компьютер, если её там ещё нет. После этого модель можно запустить следующим образом:
ollama run qwen3:8bВот как можно вывести список загруженных моделей:
ollama lsNAME 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 по умолчанию имеет чуть более 8 миллиардов параметров.
Установка MCPHost
На момент написания текста (июль 2025 года) нативной возможности использовать Ollama с MCP-серверами нет. Однако можно использовать MCPHost, чтобы запускать модели Ollama с MCP-серверами.
MCPHost — приложение на Go, поэтому убедитесь, что Go установлен на вашей машине. После этого можно установить MCPHost, выполнив следующую команду:
go install github.com/mark3labs/mcphost@latestБинарный файл будет установлен в ~/go/bin, поэтому нужно убедиться, что этот каталог указан в переменной PATH.
Настройка MCP-сервера ClickHouse
MCP-серверы можно настраивать с помощью MCPHost в YAML- или JSON‑файлах. MCPHost будет искать файлы конфигурации в вашем домашнем каталоге в следующем порядке:
.mcphost.ymlor.mcphost.json(предпочтительно).mcp.ymlor.mcp.json(для обратной совместимости)
Он использует синтаксис, похожий на синтаксис стандартного файла конфигурации MCP.
Вот пример конфигурации MCP-сервера ClickHouse, которую мы сохраним в файл ~/.mcphost.json:
{
"mcpServers": {
"mcp-ch": {
"type": "local",
"command": ["uv",
"run",
"--with",
"mcp-clickhouse",
"--python",
"3.10",
"mcp-clickhouse"
]
}
}
}Основное отличие от стандартного файла конфигурации MCP заключается в том, что нужно указать type.
Поле type используется для указания типа транспорта, который использует MCP Server.
local→ транспорт stdioremote→ потоковый транспортbuiltin→ транспорт inprocess
Также потребуется настроить следующие переменные окружения:
export CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
export CLICKHOUSE_USER=demo
export CLICKHOUSE_PASSWORD=""Запуск MCPHost
После настройки MCP-сервера ClickHouse вы можете запустить MCPHost, выполнив следующую команду:
mcphost --model ollama:qwen3Или, если вы хотите использовать конкретный файл конфигурации:
mcphost --model ollama:qwen3 --config ~/.mcphost.json Должен появиться следующий вывод:
┃ ┃
┃ 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 по умолчанию 8 миллиардов параметров) вам нужно будет точнее формулировать, что именно вы хотите от неё. Например, вам потребуется явно попросить её перечислить базы данных и таблицы, а не сразу просить выполнить запрос к определённой таблице. Эту проблему можно частично смягчить, используя более крупную модель (например, qwen3:14b), но на обычном пользовательском оборудовании она будет работать медленнее.