Docker Compose を使って Agentic Data Stack 一式をローカルで実行すると、初回ログイン直後からデータについて質問できます。docker compose up コマンド 1 つで、LibreChat、ClickHouse MCPサーバー、ClickHouse、そしてオブザーバビリティ向けの Langfuse が起動します。
前提条件
- Compose プラグイン (Compose v2 以降) を備えた Docker。
- リポジトリをクローンするための Git。
- モデルプロバイダーの API key (OpenAI、Anthropic、Google など) 。質問に回答するには agent にモデルが必要なため、Setup 時に key を指定するか、初回のチャット前に LibreChat UI で追加してください。
スタックを起動する
リポジトリをクローンする
git clone https://github.com/ClickHouse/agentic-data-stack
cd agentic-data-stackこのリポジトリにはルートに docker-compose.yml が含まれているため、1 つのコマンドでスタック全体を起動できます。サービスの一覧は Architecture を参照してください。
デモ用セットアップスクリプトを実行する
./scripts/prepare-demo.shこれにより、各サービスの認証情報を含む .env ファイルが生成され、その後、選択した provider の API key を設定するための対話式メニューが表示されます。これらのキーは .env ファイルに直接設定することもできます。設定をスキップした provider は user_provided のままになるため、代わりに LibreChat UI で独自のキーを追加できます。
初回起動時には、スタックが .env の内容をもとに admin ユーザーを作成します。デフォルトのログイン情報は admin@admin.com / password です。
独自のログイン認証情報を設定する
prepare-demo.sh を実行する前に、以下の変数を指定して generate-env.sh を実行してください。
USER_EMAIL="you@example.com" USER_PASSWORD="supersecret" USER_NAME="YourName" ./scripts/generate-env.shその後、prepare-demo.sh は既存の .env を検出し、API-key の設定に直接進みます。
バックグラウンドでサービスを起動する
docker compose up -d起動順序は自動的に制御されます。LibreChat は MCPサーバー が正常状態になってから起動するため、初回読み込み時点で ClickHouse への接続が利用可能です。
LibreChat を開いてサインインする
スタックの起動後、以下のサービスをブラウザから利用できます。
- LibreChat (チャット UI) — http://localhost:3080
- Langfuse (オブザーバビリティ) — http://localhost:3000
- Admin Panel (ブラウザベースの LibreChat 設定) — http://localhost:3081
- MinIO console (object storage、認証情報は
.envにあります) — http://localhost:9091
.env ファイル内の admin 認証情報を使って LibreChat にサインインしてください。
モデルを選択する
モデルはデフォルトで選択されています。変更する場合は、モデル selector を開いて使用するものを選んでください。

セットアップ中に provider の key を設定しなかった場合は、UI で追加してください。
UI で provider の key を設定する
モデル selector を開き、provider の横にある Set API Key をクリックします。

ダイアログに key を貼り付けて Submit をクリックします。有効期限を設定することも、期限切れにしないこともできます。

MCPサーバー を選択する
このスタックでは、LibreChat の librechat.yaml に MCPサーバー があらかじめ設定されています。message composer で MCP Servers をクリックし、ClickHouse-Local を選択してください。
ClickHouse Cloud service を使用する場合は、代わりに ClickHouse-Cloud を選択してください。

最初の質問をする
たとえば、次のように質問できます。
利用可能な database と table は何ですか。また、最大の table には何行ありますか?
この agent は MCPサーバー のツールを使って database と table を一覧表示し、ClickHouse に対して read-only の queries を実行し、その結果をもとに回答を組み立てます。SQL を書く必要はありません。

スタックを停止またはリセットする
何も削除せずにサービスを停止するには、次のコマンドを実行します。
docker compose downすべてのコンテナーを削除し、クリーンな状態からやり直せるようにすべてのボリュームを消去するには、スタックのリセットスクリプトを使用します:
./scripts/reset-all.shアーキテクチャ
docker-compose.yml は、4つの Compose ファイルを取り込むシンプルなエントリーポイントです。
| Compose file | Defines |
|---|---|
langfuse-compose.yml |
Langfuse とその関連サービス (ClickHouse、PostgreSQL、Redis、MinIO) |
clickhouse-mcp-compose.yml |
ClickHouse MCPサーバー |
librechat-compose.yml |
LibreChat とその関連サービス (MongoDB、Meilisearch、pgvector、RAG API) |
admin-panel-compose.yml |
LibreChat Admin Panel |
単一コマンドで起動できるのは、次の2つのポイントによるものです。
- ヘルスチェックと起動順序。 Compose はヘルスチェックを使って起動順を制御します。MCPサーバーは ClickHouse の起動を待ち、LibreChat は MCPサーバーの起動を待ちます。
- 共有環境ファイル。
.envには各サービスの認証情報と接続情報が格納されており、各サービスが相互に接続できるよう一貫して設定されています。たとえば、MCPサーバーは.env内の ClickHouse 認証情報を使って ClickHouse に接続します。LibreChat にはLANGFUSE_PUBLIC_KEY、LANGFUSE_SECRET_KEY、LANGFUSE_BASE_URLが渡されるため、すべての実行結果はそのまま Langfuse にトレースされます。
ClickHouse はこのスタックで2つの役割を担います。1つは Langfuse のストレージバックエンド、もう1つはエージェントが MCPサーバー経由でクエリするデータベースです。
次のステップ
- スタックを構成する各コンポーネントの役割については、ClickHouse MCPサーバー、LibreChat、Langfuseを参照してください。
- スタック全体がどのように連携するかについては、概要を参照してください。
- 何もインストールせずに公開データセットでスタックを試すには、ホスト型デモのAgentHouseを利用してください。