エージェントでカスタム MCP サーバーを使用する
カスタム MCP サーバーをDatabricksアプリとしてホストした後、 databricks-mcp Pythonライブラリを使用して、ノートブック、ローカル開発、またはエージェント コードからそれに接続します。
カスタム MCP サーバーをホストするには、 「カスタム MCP サーバーのホスト」を参照してください。
カスタムMCPサーバーに接続します
タブをクリックすると、さまざまな環境からMCPサーバーに接続する方法が表示されます。
- Local environment
- Notebook (service principal)
- Agent code (on-behalf-of-user)
- Agent code (service principal)
「環境の設定」で説明されているように、OAuthを使用してワークスペースに認証します。
以下の例は、カスタムMCPサーバーに接続し、利用可能なツールの一覧を表示する方法を示しています。
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
# Replace with your deployed app URL
# Example: https://mcp-my-server-6051921418418893.aws.databricksapps.com/mcp
mcp_server_url = "https://<app-url>/mcp"
databricks_cli_profile = "DEFAULT"
workspace_client = WorkspaceClient(profile=databricks_cli_profile)
mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)
# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")
サービスプリンシパルを使用して、 DatabricksノートブックでホストされているDatabricksアプリにアクセスします。 以下に示すようにクライアントシークレット値を直接渡すか、 Databricksシークレットを使用して認証情報を安全に取得します。例えば: client_id=dbutils.secrets.get(scope="my-scope", key="client-id") 。
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
# Replace with your deployed app URL
mcp_server_url = "https://<app-url>/mcp"
workspace_client = WorkspaceClient(
host="<workspace-url>",
client_id="<client-id>",
client_secret="<client-secret>"
)
mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)
# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")
ユーザー代理認証を設定します。ユーザー代理認証を参照してください。
次の例は、 ModelServingUserCredentialsを使用してエージェントからホストされている Databricks アプリにアクセスし、ユーザーに代わってアクセスを有効にする方法を示しています。
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
from databricks.sdk.credentials_provider import ModelServingUserCredentials
# Replace with your deployed app URL
mcp_server_url = "https://<app-url>/mcp"
workspace_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())
mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)
# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")
エージェントモデルをappsスコープでログに記録します。ユーザー代理認証を参照してください。
サービスプリンシパルを使用してシステム認証を有効にし、エージェントからホストされているDatabricksアプリにアクセスします。
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
# Replace with your deployed app URL
mcp_server_url = "https://<app-url>/mcp"
workspace_client = WorkspaceClient()
mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)
# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")
DatabricksAppsリソースとして使用してエージェントモデルをログに記録します。自動認証パススルーを参照してください。
ノートブックの例:Databricks MCPサーバーを使用してエージェントを構築する
以下のノートブックでは、Databricksアプリ上でホストされているカスタムMCPサーバーを使用してMCPツールを呼び出すLangGraphおよびOpenAIエージェントを作成する方法を示します。
LangGraph MCPツール呼び出しエージェント
OpenAI MCPツール呼び出しエージェント
次のステップ
- エージェントを外部サービスに接続する方法については、マネージドOAuthやUC接続プロキシなど、エージェントを外部サービスに接続するためのすべての方法の概要を参照してください。
このアプリクックブックには、MCPサーバーをさまざまなフレームワークと統合するためのエンドツーエンドのコード例が掲載されています。
完全なソース コードと追加の例については、 Databricks Apps Cookbook リポジトリを参照してください。