Claude Media
ClaudeとDremio・Starburstを連携する方法 — レイクハウスのデータをMCPで会話から引く

ClaudeとDremio・Starburstを連携する方法 — レイクハウスのデータをMCPで会話から引く

DremioとStarburst GalaxyはどちらもMCPサーバーを公開しています。接続手順、OAuthの準備、読み取り専用などの制約、権限の効き方の違いを比べます。

ClaudeとDremio・Starburstを連携する方法 — レイクハウスのデータをMCPで会話から引く

DremioもStarburst GalaxyもMCPサーバーを用意していて、Claudeから自然言語でテーブルを探し、SQLを走らせられます。ただし接続の作りはかなり違います。同種のデータ基盤はDatabricks MCPサーバーやSnowflake連携でも扱っていますが、ここでは2製品に絞ります。Dremioは「OAuthアプリを作ってエンドポイントを貼る」ホスト型と、「PATを持ってローカルでMCPサーバーを動かす」自前運用型の2系統があります。Starburst Galaxyはホスト型で、OAuthクライアントと専用スコープが前提です。

先に違いを表にします。

観点Dremio(ホスト型)Dremio(自前運用)Starburst Galaxy
接続先Dremio(ホスト型)mcp.dremio.cloud/mcp/{project_id}Dremio(自前運用)ローカルで起動するdremio-mcp-serverStarburst Galaxyhttps://<account-name>.mcp.galaxy.starburst.io
認証Dremio(ホスト型)Native OAuthアプリDremio(自前運用)個人アクセストークン(PAT)Starburst GalaxyOAuth 2.0(推奨)またはBasic
Claude側の入口Dremio(ホスト型)カスタムコネクタDremio(自前運用)Claude Desktopの設定ファイルStarburst GalaxyClaude Desktop、Claude Code
実行できるSQLDremio(ホスト型)ビュー作成まで可能(権限次第)Dremio(自前運用)PATの権限によるStarburst GalaxySELECT / SHOW / EXPLAINのみ

どちらを先に試すか — 読み取り専用で始めたいならStarburst

Starburst Galaxyは書き込み系のSQLをMCP経由で通しません。INSERT、UPDATE、DELETE、CREATE、DROPは許可されないと明記されています。最初の接続で「うっかり消した」を起こしたくないなら、この制約は安心材料です。

一方、Dremioはビューを作る操作まで案内しています。ホスト型のドキュメントは「データの探索とクエリ、分析と可視化、ビューの作成、システム性能の分析」を挙げます。自前運用型のFOR_DATA_PATTERNSモードも、データ探索、SQL生成、ビュー作成が用途です。何ができてしまうかは、接続するアカウントの権限で決まります。

判断の目安は次のとおりです。

  • 既にGalaxyのMission Critical、Enterprise、無料トライアルのいずれかを使っている: Starburstの手順へ
  • Dremio Cloudのプロジェクトがある: ホスト型の手順へ
  • Kubernetes上やDockerのDremioを使っている: 自前運用型の手順へ

DremioのホストMCPサーバーにClaudeを接続する

ホスト型は、OAuthでユーザー本人の身元と認可がDremioまで伝わる設計です。ドキュメントはこの方式を、実験から本番まで可能な限りすすめています。流れは3段階です。

手順

Dremioホスト型MCPサーバーの接続

  1. 1

    Claude側の要件を確かめる

    カスタムコネクタを作れるプランと権限かを先に見ます。Freeは1つまで、Team・Enterpriseでは組織設定から追加できるのはOwnerなどに限られます。

  2. 2

    DremioにNative OAuthアプリを作る

    リダイレクトURLに、Claude用の値を入れます。

  3. 3

    Claudeにカスタムコネクタを追加する

    OAuthアプリのクライアントIDと、自分のコントロールプレーンのMCPエンドポイントを入れます。

OAuthアプリに登録するリダイレクトURL

Claudeを使う場合、Native OAuthアプリのリダイレクトURLには次の4つをカンマ区切りで入れます。

https://claude.ai/api/mcp/auth_callback,https://claude.com/api/mcp/auth_callback,http://localhost/callback,http://localhost

ChatGPT用の値は別物なので、混ぜないでください。独自のAIチャットクライアントを使う場合は、管理者に確認するよう書かれています。

エンドポイントはコントロールプレーンで変わる

MCPエンドポイントは、プロジェクトが載っているコントロールプレーンで決まります。

コントロールプレーンMCPエンドポイント
USMCPエンドポイントmcp.dremio.cloud/mcp/{project_id}
欧州MCPエンドポイントmcp.eu.dremio.cloud/mcp/{project_id}

どちらか分からなければ、プロジェクト設定の「Project Overview」ページにコピー用のエンドポイントが出ています。

Claudeでカスタムコネクタを追加する

全体像はClaudeコネクタの全体像にあります。ここでの画面操作はClaudeのサポート記事に沿います。個人のPro・Maxプランは「Customize > Connectors」から「+ Add」「Add custom connector」を選び、名前とリモートMCPサーバーのURLを入れて「Continue」を押します。Team・Enterpriseは、OwnerがOrganization settings > Connectorsで「Add」から「Custom」「Web」と進みます。

認証の画面には「OAuth client」の選択肢があり、「Claudeの公開された身元を使う(推奨)」「自動登録」「自前のOAuthクライアントを使う」から選べます。Dremioのドキュメントはクライアントを自分で作ってIDを渡す手順なので、クライアントIDを入れる形になります。

カスタムコネクタは、ローカル端末ではなくAnthropicのクラウドからリモートMCPサーバーに接続します。接続先のMCPサーバーがインターネット越しに届く場所にあるかは、先に確認してください。

自前運用のDremio MCPサーバーをClaude Desktopに繋ぐ

オープンソースのDremio MCPサーバーを手元で動かす方式です。Kubernetes上またはDocker上のDremioが対象で、MCP対応のAIチャットクライアントの例にClaudeが挙がっています。

準備するもの

  • MCPに対応したクライアント(例: Claude Desktop)
  • Dremio on KubernetesまたはDremio on Docker
  • パッケージ管理ツールのuv
  • URIエンドポイント(Kubernetesはhttps://<coordinator-host>:9047など、Dockerはhttp://localhost:9047/)
  • PAT

MCPサーバーはPATに紐づく権限で動きます。管理者権限のPATを渡せば、管理者としてクエリが走ります。

インストールと設定ファイルの作成

リポジトリを取得して、ヘルプが出ることを確かめます。

git clone https://github.com/dremio/dremio-mcp
cd dremio-mcp
uv run dremio-mcp-server --help

次に、dremioai用の設定ファイルとClaude用の設定ファイルを作ります。PATをシェル履歴に残したくないときは、PATの値の代わりに、PATを書いたファイルのパスを--patに渡す方法が推奨されています。

uv run dremio-mcp-server config create dremioai \
  --uri <dremio uri> \
  --pat <dremio pat or path to file with PAT>
uv run dremio-mcp-server config create claude
uv run dremio-mcp-server config list --type claude

config list --type claudeの出力には、Claude Desktopの設定ファイル(claude_desktop_config.json)のmcpServersにDremioが追加された状態が出ます。コマンドはuv run --directory <dremio-mcp> dremio-mcp-server runの形です。

3つのサーバーモード

設定ファイルのtoolsにはserver_modeがあり、既定の例はFOR_DATA_PATTERNSです。

モード用途
FOR_DATA_PATTERNS用途データ探索、自然言語からのSQL生成、ビュー作成
FOR_SELF用途システムの内省と性能の分析
FOR_PROMETHEUS用途Prometheusを接続している場合に、Reflectionの総数などの指標で洞察を補強

用途ごとにモードを分けると、Claudeに見せるツールを絞れます。

動作確認の質問

Claude Desktopで新しいチャットを開き、まず次のように聞きます。

what tables or views are available in Dremio?

ClaudeはGetUsefulSystemTableNamesやGetSchemaOfTableといったリソースを使って探索します。続けて最初に見つけたテーブルのサンプルを要求すると、RunSqlQueryが使われ、JSONで結果が返ります。既存のReflectionはMCP経由のクエリでも自動的に効きます。

Dremio側でMCPの利用履歴を確かめる

MCPサーバーの操作は、Dremioコンソール上では通常のREST経由のジョブとして残ります。

  1. ジョブ(Jobs)ページを開く
  2. PATに紐づくユーザー名で絞る
  3. クエリタイプをExternal Toolsにする
  4. 会話した時間帯で絞る

MCPサーバーが投げたSQLは、先頭がdremioai:で始まります。監査や、Claudeが実際に何を投げたかの確認に使えます。

Starburst GalaxyのMCPサーバーにClaudeを接続する

Galaxyのホスト型MCPは、アカウントごとのURLが決まっています。

https://<account-name>.mcp.galaxy.starburst.io

前提条件

  • Mission Critical、Enterprise、または無料トライアルのGalaxyアカウント
  • MCP対応のクライアント(Claude Desktop、Cline、LibreChatなど)
  • OAuthを使う場合は、設定済みのOAuthクライアント

OAuthクライアントの作成には、MANAGE_OAUTH_CLIENT権限を持つロールが必要です。

認証は2種類、本番はOAuth 2.0

認証位置づけ注意点
OAuth 2.0位置づけ推奨。本番と共有環境向け注意点galaxy.mcpスコープが必須。動的クライアント登録(DCR)は非対応
Basic位置づけテストと開発向け注意点<email>:<password>をbase64にしたヘッダー。サービスアカウントも可。公開APIトークンは使えない

galaxy.mcpはMCPで受け付けられる唯一のスコープです。DCRが使えないため、Galaxyで先にOAuthクライアントを作り、クライアントIDを持って接続する流れになります。MCPの認可プロトコルは2025-06-18以降の版に対応しています。

Claude Desktopの手順

Claude Desktopは、ドキュメント上OAuth認証が必須です。

  1. GalaxyでOAuthクライアントを作る。公開クライアントか非公開クライアントかは組織の要件で選び、アプリケーションにCustomを選び、リダイレクトURIにhttps://claude.ai/api/mcp/auth_callbackを入れる
  2. クライアントIDと、必要ならクライアントシークレットを控える
  3. Claude Desktopで「Customize」画面を開き、「Connect your apps」タブで「Starburst」を検索して接続する
  4. サーバーURLにhttps://<account-name>.mcp.galaxy.starburst.ioを入れ、クライアントID(とシークレット)を入力する
  5. 「Connect」を押す

Claude Codeの手順

Claude CodeはOAuthとBasicの両方に対応しています。OAuthでは、リダイレクトURIをhttp://localhost:<port>/callbackの形で登録したクライアントを用意し、そのポート番号を控えます。

claude mcp add --transport http \
  --client-id ${MY_OAUTH_CLIENT_ID} \
  --callback-port ${MY_PORT_FROM_ABOVE} \
  my-mcp-server ${ACCOUNT_MCP_URL}

Basic認証では、認証ヘッダーを静的に渡します。

claude mcp add-json my-mcp-server \
  '{"type":"http","url":"${ACCOUNT_MCP_URL}","headers":{"Authorization":"Basic ${CREDENTIALS}"}}'

CREDENTIALSは<email>:<password>をbase64にした文字列です。パスワードがシェル履歴や設定ファイルに残るので、検証用のサービスアカウントに限るのが無難です。

その他のMCPクライアント

汎用クライアントでOAuthを使う場合は、次の値を入れます。

  • スコープ: galaxy.mcp
  • 認可エンドポイント: https://<account-name>.galaxy.starburst.io/oauth/v2/authorize
  • トークンエンドポイント: https://<account-name>.galaxy.starburst.io/oauth/v2/token

MCPサーバーのURLと、認可・トークンのエンドポイントはドメインが違う点に注意してください(mcp.galaxyとgalaxy)。

権限と制約はどこで決まるか

2製品は「Claudeに何をさせられるか」を決める場所が違います。

くらべる

権限を決める場所

PATまたはOAuthのユーザー

Dremio

自前運用型はPATの権限がそのままMCPサーバーの権限です。ホスト型はOAuthでユーザーの身元と認可が伝わります。

ロールと固定の制約

Starburst Galaxy

ユーザーはロールの権限が許すクラスター、カタログ、データだけ使えます。そのうえでMCP側が読み取り専用と結果サイズの上限をかけます。

Starburstの制約を並べると、設計時に引っかかりやすい点が見えます。

  • 結果セットは100KBまで。大きなテーブルを丸ごと要約させる用途には向かない
  • SELECT、SHOW、EXPLAINのみ
  • カスタムロールの指定は未対応で、認証したユーザーの既定ロールが使われる

最後の点は、複数ロールを持つ人が「分析用ロールで見たい」と考えても切り替えられないことを意味します。MCP用にサービスアカウントを作り、そのアカウントの既定ロールを最小権限にしておく運用が現実的です。

Dremioで同等の絞り込みをしたい場合は、PATを発行するユーザーを最小権限にします。ホスト型では、操作するのがログインしたユーザー本人になります。

接続した後のコネクタ側の権限や許可設定は、Claudeコネクタの権限設定でやりがちな失敗も参考になります。

会話でどう使うか — 最初の質問例

どちらも、探索から始めると事故が少なくなります。

この環境で見えるカタログとスキーマの一覧を出して。
orders に近い名前のテーブルがあれば、列名と型を教えて。

テーブルが特定できたら、件数を絞ったサンプルを要求します。

orders テーブルの先頭10行を返して。列の意味を推測して、各列を一行で説明して。

Starburstは結果が100KBまでなので、LIMITや集計を前提に頼むのが前提になります。Dremioの自前運用型は、既存のReflectionがMCP経由のクエリにも効くので、集計クエリを会話の中で試せます。

ツールの実行前に承認を求める設定にしていれば、承認画面で投げるSQLを読んでから許可できる場合があります。表示内容はクライアントによって異なります。

つまずきやすい点

落とし穴

Starburstで動的クライアント登録を期待すると接続できない

GalaxyのMCPはDCRに対応していません。Claudeの「自動登録」に頼らず、Galaxyで作ったOAuthクライアントのIDを使います。スコープはgalaxy.mcpのみです。

落とし穴

DremioのリダイレクトURLを一部しか入れない

ホスト型のOAuthアプリには、claude.aiとclaude.comの2つのコールバックURLを両方入れます。ドキュメントがカンマ区切りで4つの値を示しているので、そのまま貼るのが確実です。

落とし穴

自前運用のDremio MCPサーバーはサポート対象外

オープンソースのプロジェクトであり、Dremioのサポートポリシーの対象外です。困ったときはGitHubのissueかコミュニティフォーラムに問い合わせる形になります。

まとめ

接続の手間はStarburst Galaxyのほうが定型です。OAuthクライアントとスコープを揃えれば、書き込みはそもそも通らず、結果は100KBまでと決まっています。Dremioはホスト型ならOAuthアプリ1つで済み、自前運用型ならPATの権限設計が安全性の中心になります。どちらも、最初は読み取りだけの権限と探索の質問から始め、ジョブ履歴などで実際のSQLを確認するのが、レイクハウスにClaudeを繋ぐ最初の一歩として扱いやすい形です。

この記事を共有:XはてブLinkedIn