エージェントをツールに接続すると、ドキュメントの検索、テーブルのクエリ、外部 API の呼び出し、カスタム コードの実行など、テキスト生成以外の実用的な機能が提供されます。
この図は、Azure Databricks がほとんどの統合で推奨する MCP ルートを示しています。 MCP は、エージェントを外部サービスに接続するいくつかの方法の 1 つです。 MCP サービスと共に、Unity カタログ HTTP 接続を介して REST API を直接呼び出すことができます。 ユーザーごとの認証にマネージド OAuth、エージェント コードから API を呼び出す Unity カタログ接続プロキシ、またはをラップする http_request()を選択します。 次の表は、Azure Databricks データから外部サービスに接続する各方法をまとめたものです。
| Approach | 推奨されるユース ケース |
|---|---|
| Azure Databricks データ用の管理対象 MCP サーバー | このアプローチを使用して、すぐに使用できる Genie、Databricks AI Search、Databricks SQL、Unity Catalog 関数 MCP サーバーを使用して、Azure Databricksデータにクエリを実行し、管理された関数を実行します。 |
| 外部 MCP サーバー | MCP サーバーを発行するサービスには、この方法を使用します。 Unity AI Gateway を介した自動ツール検出と管理アクセスが提供されます。 |
| マネージド OAuth | Google Drive または SharePoint の統合には、この方法を使用します。 Azure Databricks は OAuth 資格情報を管理するため、アプリの登録は必要ありません。 |
| Unity カタログ接続プロキシ | 外部サービス独自のクライアント SDK を使用して、エージェント コードから REST API を直接呼び出すには、この方法を使用します。 |
| Unity カタログ関数ツール | この方法は、 http_request() 関数をラップする SQL ベースのツール定義に使用します。 |
Azure Databricks のデータ向けマネージド MCP サーバー
Azure Databricksは、すぐに使用できるマネージド MCP サーバーを提供します。エージェントはワークスペース内のデータと関数へのアクセスを管理でき、ビルドまたはホストするサーバーはありません。 各サーバーには専用の URL と OAuth スコープがあり、Unity カタログはアクセスを制御します。
- Genie: 自然言語を使用して、Genie エージェントと Unity カタログ テーブルの構造化データに対してクエリを実行します。
- Databricks AI Search (ベクター検索): ベクター検索インデックス内のドキュメントを検索します。
- Databricks SQL: Unity カタログ テーブルに対して SQL クエリを実行します。
- Unity カタログ関数: Unity カタログに登録されているカスタム Python関数と SQL 関数を呼び出します。
サーバー URL、OAuth スコープ、および完全なカタログについては、マネージド MCP サーバー Azure Databricks参照してください。 エージェント コードからこれらのサーバーを呼び出すには、「エージェント で MCP サーバーを使用する」を参照してください。
外部 MCP サーバー
エージェントを Slack、Google カレンダー、API を使用して任意のサービスなどの外部アプリケーションに接続します。 Azure Databricksでは、外部サービスに MCP サーバーがあるかどうか、ユーザーごとの認証が必要かどうか、またはエージェント コードから API を直接呼び出すかどうかに応じて、いくつかの方法が用意されています。 すべての方法は、セキュリティで保護された管理された資格情報管理を提供し、OAuth 2.0 ユーザー対マシン (U2M) とマシン間 (M2M) 認証を含む複数の認証方法をサポートする Unity カタログ HTTP 接続に依存します。
外部サービスに使用可能な MCP サーバーがある場合は、Azure Databricks Unity カタログで MCP サービスとして登録することをお勧めします。 MCP サービスは、付与、ツールの選択、およびサービス ポリシーを使用して、 Unity AI Gateway を介した自動ツール検出、ユーザーごとの認証、ガバナンスを提供します。
- 外部 MCP サーバーを MCP サービスとして登録して管理するには、外部 MCP サーバーを登録する方法に関するページを参照してください。 接続と認証のセットアップについては、手順 1 を参照してください 。接続を作成します。
- エージェント フレームワークごとのコード例については、 エージェントで MCP サーバーを使用 する (OpenAI Agents SDK、LangGraph、Model Serving) を参照してください。
Slack、GitHub、Google Drive などの一般的なサービスとしてのソフトウェア (SaaS) ツールの場合、Azure Databricksはゼロセットアップですぐに使用できる MCP サービスを提供します。 Databricks が提供する MCP サービスを参照してください。
マネージド OAuth
Azure Databricksでは、一部の API ツール プロバイダー用のマネージド OAuth フローが提供されます。 独自の OAuth アプリを登録したり、資格情報を管理したりする必要はありません。 Azure Databricks では、開発とテストにマネージド OAuth を推奨しています。 運用環境のユース ケースでカスタム OAuth 資格情報の生成が必要な場合は、プロバイダーのドキュメントを参照してください。
次の統合では、Azure Databricksが管理し、バックエンドに安全に格納する OAuth 資格情報を使用します。
| プロバイダー | 構成に関する注意事項 | サポートされているスコープ | 説明 |
|---|---|---|---|
| Google Drive API | なし | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/spreadsheets.readonly offline_access |
Google Docs や Google スプレッドシートなど、Google ドライブ ファイルへの読み取り専用アクセス。 |
| Gmail API | なし | https://www.googleapis.com/auth/gmail.readonly offline_access |
Gmail メッセージ、スレッド、下書き、ラベルへの読み取り専用アクセス。 |
| Google カレンダー API | なし | https://www.googleapis.com/auth/calendar.readonly offline_access |
Google カレンダーのイベント、予定表、空き時間情報への読み取り専用アクセス。 |
| SharePoint API | なし | https://graph.microsoft.com/User.Read https://graph.microsoft.com/User.ReadBasic.All https://graph.microsoft.com/Sites.Read.All https://graph.microsoft.com/Files.Read https://graph.microsoft.com/Files.Read.All https://graph.microsoft.com/Mail.Read https://graph.microsoft.com/Mail.ReadBasic https://graph.microsoft.com/Mail.Read.Shared https://graph.microsoft.com/MailboxFolder.Read https://graph.microsoft.com/MailboxItem.Read https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Calendars.Read.Shared https://graph.microsoft.com/Chat.Read https://graph.microsoft.com/Chat.ReadBasic https://graph.microsoft.com/ChatMember.Read https://graph.microsoft.com/ChatMessage.Read https://graph.microsoft.com/Channel.ReadBasic.All https://graph.microsoft.com/ChannelMessage.Read.All https://graph.microsoft.com/OnlineMeetings.Read https://graph.microsoft.com/OnlineMeetingTranscript.Read.All https://graph.microsoft.com/OnlineMeetingAiInsight.Read https://graph.microsoft.com/OnlineMeetingArtifact.Read.All https://graph.microsoft.com/OnlineMeetingRecording.Read.All offline_access openid profile email |
Microsoft Graph を介した、SharePoint と OneDrive のファイル、Outlook のメールと予定表、Microsoft Teams のチャット、チャネル、会議に対する読み取り専用アクセス。 |
マネージド OAuth を設定するには、 OAuth ユーザーからマシンごとの 認証タイプへの HTTP 接続を作成し、 OAuth プロバイダー のドロップダウン メニューからプロバイダーを選択します。 詳細な手順については、「 外部サービスへの接続を作成する」を参照してください。
プロバイダーは、最初の使用時に承認するように各ユーザーに求めます。
必要に応じて、マネージド OAuth で使用される次のリダイレクト URI を許可リストに登録します。
| 雲 | リダイレクトURI |
|---|---|
| AWS | https://oregon.cloud.databricks.com/api/2.0/http/oauth/redirect |
| Azure | https://westus.azuredatabricks.net/api/2.0/http/oauth/redirect |
| GCP | https://us-central1.gcp.databricks.com/api/2.0/http/oauth/redirect |
発行された MCP サーバー (Glean、GitHub、Atlassian、Slack など) を使用するマネージド OAuth プロバイダーの場合、Azure Databricksは、サーバーを MCP サービスとして登録するときに OAuth 資格情報を管理できます。 「マネージド OAuth プロバイダー」を参照してください。
Unity カタログ接続プロキシ エンドポイント
外部サービス独自のクライアント SDK と 共に Unity カタログ接続プロキシ エンドポイント を使用して、エージェント コードから REST API を直接呼び出します。 SDK のベース URL をプロキシ エンドポイントにポイントし、API キーとして Azure Databricks トークンを使用します。 Azure Databricks は要求を認証し、Unity カタログ接続から外部サービスの資格情報を自動的に挿入します。 コードは外部サービスのトークンを直接処理しません。
接続オブジェクトにUSE CONNECTION のアクセス許可が必要です。
OpenAI
DatabricksOpenAIを使用して、Unity カタログ接続プロキシ経由で外部 OpenAI に呼び出しをルーティングします。 まず、 Databricks シークレットとして格納されている OpenAI API キーを使用して、Unity カタログ HTTP 接続を作成します。
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
次に、 databricks-openai パッケージをインストールし、エージェント コードでプロキシ URL とワークスペース クライアントを使用します。
pip install databricks-openai
from databricks_openai import DatabricksOpenAI
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
client = DatabricksOpenAI(
workspace_client=w,
base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/openai_connection/proxy/",
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
Slack
Unity カタログ接続プロキシ経由でルーティングするように Slack SDK を構成します。 ホスト https://slack.com とベース パス /apiを使用して Unity カタログ HTTP 接続を作成し、SDK のベース URL としてプロキシ URL を使用します。
from slack_sdk import WebClient
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
client = WebClient(
token=w.config.authenticate()["Authorization"].split(" ")[1],
base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/slack_connection/proxy/",
)
result = client.chat_postMessage(channel="C123456", text="Hello from Databricks!")
print(result["message"]["text"])
汎用 HTTP
専用 SDK を使用しないサービスの場合は、プロキシ URL と共に requests ライブラリを直接使用します。
import requests
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
response = requests.post(
f"{w.config.host}/api/2.0/unity-catalog/connections/my_connection/proxy/api/v1/resource",
headers={
**w.config.authenticate(),
"Content-Type": "application/json",
},
json={"key": "value"},
)
プロキシ エンドポイント、サポートされている認証方法、接続のセットアップの詳細については、「 HTTP 接続プロキシを使用した要求の転送」を参照してください。
Unity カタログ関数ツール
Note
Azure Databricksでは、新しい統合に MCP サービスまたは Unity カタログ接続プロキシを使用することをお勧めします。
http_requestを含む Unity カタログ関数ツールは引き続きサポートされますが、推奨されるアプローチではなくなりました。
外部サービスを呼び出す http_request() をラップする Unity Catalog 関数を作成できます。 この方法は、メッセージを Slack に投稿する関数など、SQL ベースのツール定義に役立ちます。 SQL の例や接続の種類の制限を含む完全なチュートリアルについては、「http_requestを使用した外部 API の呼び出し (レガシ)」を参照してください。
サンプルノートブック
次のノートブックは、Slack、OpenAI、Azure AI 検索に接続するエージェント ツールの作成を示しています。
Slack メッセージング エージェント ツール
Microsoft Graph API エージェント ツール
Azure AI 検索 エージェント ツール
エージェントをMicrosoft Teamsに接続するチュートリアルについては、「エージェントをMicrosoft Teamsに接続する」を参照してください。
その他のリソース
- MCP サービスを使用してエージェントをサード パーティ製ツールに接続 して、外部 MCP サーバーを登録および管理します。
-
Unity カタログ関数を使用してエージェント ツールを作成 し、従来の
http_requestアプローチを含む Unity カタログ関数ツールを構築します。 - Unity Catalog ツールをサードパーティの AI フレームワークと統合して、LangChain、LlamaIndex、OpenAI、および Anthropic で Unity カタログ ツールを使用します。
- 外部 HTTP サービスに接続して、 HTTP 接続と接続プロキシを構成します。