こんにちは!株式会社マクニカでDatabricksのエンジニアをしています。@satoshy2です。
Databricksとは?(マクニカ紹介ページ)
はじめに
DatabricksマネージドMCPサーバーへの接続について、少し前までは以下のようにPythonコードしかドキュメントに記載がなく、外部ツールからのアクセスの方法はどうするのか困っていましたが、
いつの間にか、以下のように外部MCPクライアントからの接続方法についてのドキュメントも追加されていました。
ただ、Windows環境でClineを使用した場合の設定が記載されていなかったので、Clineからアクセスするための設定についてこちらで記載します。
VScodeの拡張機能としてClineがインストールされている前提で記載しています。VScodeにClineがインストールされていない場合は、先にClienのインストールをお願いします。
設定概要
- npm、npx コマンドを使えるようにするため、Node.jsをインストールします。
- mcp-remote (リモートMCPサーバーへのアクセス用)を使えるようにするため、mcp-remoteをインストールします。
- 基本的には、Claude Desktop向けの設定をそのまま流用します。
- ネットワーク環境に気を付けてDatabricksマネージドMCPサーバーへ接続します。
Node.jsのインストール
Node.jsがインストールされていない場合は、以下のどちらかの方法を使ってインストールします。
- Node.jsのダウンロードサイトからインストーラーをダウンロードして、ダウンロードしたファイルを実行することでインストールします。
- Powershellから以下のコマンドを実行してインストールします。
> winget install -e --id OpenJS.NodeJS.LTS
Node.jsインストール後は、Powershellを再起動した後で以下のコマンドを実行して問題なくインストールされていることを確認します。
> node -v
v22.17.0
> npm -v
10.9.2
mcp-remoteのインストール
Powershellを再起動して、以下のコマンドを実行してインストールします。
npm install -g mcp-remote
ClineにMCPサーバー設定を登録
1. VScodeを起動して、[Cline]アイコン -> [MCP Server]アイコン -> [Installed]タブ -> [Configure MCP Servers]とクリックします。
2. 右側に設定ファイルが表示されるので、以下の内容を入力します。
以下については、事前に作成されていることを前提としています。
- Unity Catalog上に関数を作成(Unity Catalog のユーザー定義関数 (UDF))
※ 無い場合は、Systemテーブルのaiスキーマにあるpython_execを使用することも可能 - Genieスペースを作成(AI/BI Genieスペースの設定と管理)
- ベクトル検索コンピュートが起動していて、インデックスを作成(ベクトル検索インデックスを作成してクエリを実行する方法)
{
"mcpServers": {
"uc-function-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://<DatabricksワークスペースのURL>/api/2.0/mcp/functions/<カタログ名>/<スキーマ名>",
"--header",
"Authorization: Bearer <パーソナルアクセストークン>"
]
},
"uc-genie-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://<DatabricksワークスペースのURL>/api/2.0/mcp/genie/<GenieスペースID>>",
"--header",
"Authorization: Bearer <パーソナルアクセストークン>"
]
},
"uc-vector-search-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://<DatabricksワークスペースのURL>/api/2.0/mcp/vector-search/<カタログ名>/<スキーマ名>",
"--header",
"Authorization: Bearer <パーソナルアクセストークン>"
]
}
}
}
3. 設定ファイルを保存して、DatabricksマネージドMCPサーバーに接続できるか確認します。設定[オン/オフ]ボタン右側の丸いアイコンが緑色であれば接続出来ています。
DatabricksマネージドMCPサーバーへの接続がエラーになる場合は、携帯電話でテザリングする等ネットワークに直接接続してエラーが発生するか確認してください。プロキシ等を経由してアクセスしている環境では証明書の問題で接続エラーになる可能性があります。
Clineでの動作確認
1. Unity Catalogの関数を使用した動作確認
1. Clineのチャット画面で、以下のように100番目のフィボナッチ数について聞いてみます。
※ LLMはBedrockのAnthropic Claude 3.7 sonnetを使用しています。
2. uc-function-mcpの中では、Systemカタログのaiスキーマの関数を使うように設定されているため、その中で設定されているpython_exec関数を使用して計算しています。そして、計算後の回答を表示しています。
2. Genieスペースを使用した動作確認
1. Clineのチャット画面で、以下のように製品のAPIで使用するポート番号について聞いてみます。
※ 製品名の部分をマスクしています。
2. uc-genie-mcpの中では、製品について詳細を確認できるGenieスペースIDが指定されているため、指定されたGenieスペース内で質問をして回答を抽出しようとしています。
3. Genieスペース内で検索した結果が抽出されているのが確認出来ます。
4. 抽出した検索結果を基に回答を表示しています。
3. ベクトル検索を使用した動作確認
1. Clineのチャット画面で、Genieスペースと同じように製品のAPIで使用するポート番号について聞いてみます。ここでは、インデックス名も指定しています。
※ 検索対象となるデータは少し異なり、弊社の過去のサポート対応履歴になります。
※ 製品名の部分をマスクしています。
2. uc-vector-search-mcpと検索対象のインデックスを指定しているため、指定されたインデックスに対して検索を実行しようとしています。
3. 検索結果は見せられないためここでは割愛しますが、検索した内容を基に回答を表示しています。
ベクトル検索用MCPで使用できるインデックスは、実質インデックス作成時の「ソースの埋め込み」設定で「コンピュートの埋め込み」を選択しているインデックスだけになります。

「ソースの埋め込み」設定で「既存の埋め込み列を使用」を選択したインデックスに対して使用すると以下のエラーが表示されます。
Error: INVALID_PARAMETER_VALUE: query vector must be specified for index <カタログ名>.<スキーマ名>.<インデックス名> as it is a direct access index without a model serving endpoint or self-managed delta sync index.
※ エラー内容から考えるとベクトル変換した値を指定して検索すれば検索可能かもしれませんが、チャットの中でベクトル変換した値を渡すことは難しいと考えられます。
まとめ
DatabricksマネージドMCPサーバーを使えば、Clineからでも簡単にデータアクセスしてRAG的な使い方ができました。すべての機能を使うには、Databricks内で事前に設定しておくこと(関数をUnity Catalogに登録、Genieスペースの設定、Vector Searchの起動とインデックスの作成など)が多いですが、一度に色々な方法でデータにアクセスできるのは非常に魅力的だと思いました。
ただ、パーソナルアクセストークンはセキュリティ的に弱いと言われているので、Databricksのトレンドを考えると今後は認証方法がOAuthに変わる可能性もありそうだなと思いました。










