メインコンテンツまでスキップ

エージェントでMCPサーバーを使用する

備考

プレビュー

この機能は パブリック プレビュー段階です。

Databricks上の任意のMCPサーバーにエージェントコードを接続します:Databricksが管理するサーバーMCPサービスとして登録された外部MCPサーバー、およびDatabricksアプリとしてホストされるカスタムサーバー。すべて同じMCPインターフェースを公開しているため、エージェントコードは同じです。異なるのは、**サーバーURL**と**認証方法**です。

databricks-mcp」Pythonライブラリは、Databricks MCPサーバーへの認証を処理するため、同じクライアントコードが3種類のすべてのサーバータイプで機能します。

サーバーURLを取得します

まずMCPサーバーをセットアップし、そのURLを以下の例で使用します。

サーバータイプ

URLパターン

セットアップ

マネージド

https://<workspace-hostname>/api/2.0/mcp/<service>/<path>

利用可能なマネージドサーバー

外部(MCPサービス)

https://<workspace-hostname>/ai-gateway/mcp-services/<catalog>.<schema>.<mcp-service>

MCPサービスを使用してエージェントをサードパーティツールに接続します

カスタム

https://<app-url>/mcp

独自のMCPサーバーをホストする

環境をセットアップする

  1. OAuth を使用してワークスペースへの認証を行います:

    Bash
    databricks auth login --host https://<workspace-hostname>
  2. プロンプトが表示されたら、プロファイル名を入力し、後で使用するためにメモしておきます。デフォルトのプロファイル名はDEFAULTです。

  3. Python 3.12以上を搭載したローカル環境があることを確認し、依存関係をインストールします:

    Bash
    pip install -U "mcp>=1.9" "databricks-sdk[openai]" "mlflow>=3.1.0" "databricks-agents>=1.0.0" "databricks-mcp"

ツールを接続および一覧表示

サーバーURLを使用してDatabricksMCPClientを作成し、そのツールをリスト表示します。同じクライアントで、マネージド、外部(MCPサービス)、およびカスタムサーバーURLが動作します:

Python
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

workspace_client = WorkspaceClient(profile="DEFAULT")
host = workspace_client.config.host

# Use a managed, MCP Service, or custom server URL:
mcp_server_url = f"{host}/api/2.0/mcp/functions/system/ai"

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)
tools = mcp_client.list_tools()
print(f"Available tools: {[t.name for t in tools]}")

ツールを直接呼び出すには:

Python
result = mcp_client.call_tool("system__ai__python_exec", {"code": "print('Hello, world!')"})
print(result.content)
注記

マネージドsystem.aiツールを実行するには、ワークスペースでサーバレス コンピュートを有効にする必要があります。

認証

エージェントが実行される場所に一致する認証方法を選択します。外部 MCP サービスの場合、呼び出し元はそのサービスに対しても EXECUTE を持っている必要があります。AI Gateway は、この権限をすべての呼び出しに適用します。

OAuthを使用してワークスペースに認証し(「環境をセットアップする」を参照)、プロファイルをクライアントに渡します。

Python
workspace_client = WorkspaceClient(profile="DEFAULT")
mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

エージェントを構築する

エージェントフレームワークを使用して、MCPサーバーのツールをエージェントに変換します。フレームワークをサーバーURLに向け、認証されたWorkspaceClientを渡します。

Python
import asyncio
from agents import Agent, Runner
from databricks.sdk import WorkspaceClient
from databricks_openai.agents import McpServer


async def main():
workspace_client = WorkspaceClient()
host = workspace_client.config.host

async with McpServer(
url=f"{host}/ai-gateway/mcp-services/main.default.github_mcp",
name="github-mcp",
workspace_client=workspace_client,
) as mcp_server:
agent = Agent(
name="Local agent",
instructions="You are a helpful assistant with access to external services.",
model="databricks-claude-sonnet-4-5",
mcp_servers=[mcp_server],
)
result = await Runner.run(agent, "List my open GitHub pull requests.")
print(result.final_output)


asyncio.run(main())

ノートブックの例

以下のノートブックでは、マネージド、外部、およびカスタムの MCP サーバー全体で MCP ツールを呼び出す LangGraph および OpenAI エージェントの構築方法を示します。

LangGraph MCP ツール呼び出しエージェント

ノートブックを新しいタブで開く

OpenAI MCPツール呼び出しエージェント

ノートブックを新しいタブで開く

エージェント SDK MCP ツール呼び出しエージェント

ノートブックを新しいタブで開く

エージェントをデプロイする

Databricksは、エージェントをDatabricks Appsにデプロイすることをお勧めします。これにより、エージェントコード、サーバー構成、およびGitベースのバージョン管理をフルマネージドで実行できます。または、Model Servingにデプロイします。

いずれを選択した場合でも、その MCP サーバーが依存するすべてのリソースへのアクセスをエージェントに許可します。たとえば、Genie Space 上の CAN_RUN や AI 検索インデックス上の SELECT などです。

エージェントが使用する各リソース (すべてのMCPサーバーの背後にあるリソースを含む) を databricks.ymlresources.apps.<app>.resources で宣言し、バンドルをデプロイして、アプリのDatabricks サービスプリンシパルにアクセスを付与します。例えば、マネージド Genie および AI Search サーバーを使用するエージェントの場合:

YAML
resources:
apps:
my_agent_app:
name: 'my-agent-app'
source_code_path: ./
resources:
- name: 'llm'
serving_endpoint:
name: 'databricks-claude-sonnet-4-5'
permission: 'CAN_QUERY'
- name: 'genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
- name: 'vector_index'
uc_securable:
securable_full_name: '<catalog>.<schema>.<index-name>'
securable_type: 'TABLE'
permission: 'SELECT'
Bash
databricks bundle deploy
databricks bundle run my_agent_app

作成とデプロイの全体のワークフローについては、AIエージェントを作成してDatabricks Appsにデプロイするを参照してください。すべてのリソース タイプとアクセス許可の値については、AI エージェントの認証を参照してください。

次のステップ