Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Połącz się z serwerem MCP, odkryj jego narzędzia i uruchom agenta Python, który je używa. Użyj adresu URL z MCP dostarczonego przez Databricks, swojego zarejestrowanego MCP lub serwera w Databricks Apps.
Aby korzystać z MCP z Claude Code, Codex lub innego agenta programistycznego, wybierz klienta w Obsługiwani agenci programistyczni. W przypadku innych asystentów i klientów MCP zobacz Pozostali klienci MCP.
W projekcie CLI Agent Bricks dodaj narzędzia MCP z CLI. Poniższe przykłady pokazują, jak połączyć się z poziomu własnego kodu Python.
Warunki wstępne
- Python 3.12 na komputerze.
- Twój adres MCP Twojego serwera. Jeśli ktoś udostępnił Ci MCP, musi przyznać Ci dostęp. Dokończ logowanie do dostawcy, jeśli używa on OAuth na użytkownika. Aby uzyskać dostęp do serwera w Databricks Apps, potrzebujesz uprawnienia CAN USE do aplikacji.
- Dostęp do punktu końcowego modelu Azure Databricks który obsługuje wywoływanie narzędzi. W przykładzie użyto metody
databricks-claude-sonnet-4-5. Zastąp go punktem końcowym dostępnym w Twoim workspace.
Aby używać system.ai.dbsql, system.ai.sandbox lub system.ai.web_search, administrator konta musi włączyć wersję beta Unity Gateway na stronie Wersje zapoznawcze w konsoli konta. Zobacz Podglądy konta.
Informacje o opcjach tożsamości i wymaganiach dotyczących łączności można znaleźć w sekcji Uwierzytelnianie i dostęp do sieci.
Krok 1: Zainstaluj i zaloguj się
Jeśli nie zainstalowałeś jeszcze Databricks CLI, uruchom to polecenie na macOS lub Linux:
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | shW przypadku systemu Windows lub innych metod instalacji zobacz Instalowanie interfejsu wiersza polecenia Databricks.
Zaloguj się do swojego obszaru roboczego:
databricks auth login --host https://<workspace-hostname> --profile DEFAULTZainstaluj biblioteki Python:
pip install --upgrade databricks-mcp databricks-sdk "mcp>=1.24,<2"
Przykłady wykorzystują MCP Python 1.x, który jest kompatybilny z poniższymi frameworkami agentów.
Krok 2: Połącz się z serwerem
Zapisz następujący kod jako mcp_agent.py. Zastąp <mcp-server-url> adresem URL swojego serwera:
-
Dostarczone lub zarejestrowane przez Databricks MCP:
https://<workspace-hostname>/ai-gateway/mcp-services/<catalog>.<schema>.<service>. -
Serwer w aplikacjach Databricks: Skopiuj URL aplikacji ze strony przeglądu i dopisz
/mcp.
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
workspace_client = WorkspaceClient()
server_url = "<mcp-server-url>"
mcp_client = DatabricksMCPClient(
server_url=server_url,
workspace_client=workspace_client,
)
tools = mcp_client.list_tools()
for tool in tools:
print(tool.name, tool.description, tool.inputSchema, sep="\n")
Uruchom skrypt:
python mcp_agent.py
Powinieneś zobaczyć narzędzia swojego serwera, z opisami i schematami wprowadzania. Wybierz zadanie tylko do odczytu obsługiwane przez jedno z tych narzędzi w następnym kroku. Jeśli lista jest pusta lub połączenie się nie powiedzie, zobacz uwierzytelnianie MCP i sieci.
Użyj innego serwera
- Dla wbudowanego MCP użyj jego pełnej nazwy w adresie URL MCP, na przykład
system.ai.github. - Dla istniejącej integracji z serwerem MCP starszego obszaru roboczego, zamień
server_urlna jego starszy adres URL punktu końcowego.
Aby znaleźć MCP, do których możesz uzyskać dostęp w katalogu i schemacie, wykonaj:
databricks ai-gateway list-mcp-services --parent schemas/system.ai
Zastąp system.ai swoim <catalog>.<schema>, aby wyświetlić zarejestrowane MCP. CLI obsługuje stronowanie.
Krok 3: Uruchom agenta za pomocą tych narzędzi
Wybierz swój framework, zainstaluj jego pakiet i dodaj jego przykład w Pythonie do mcp_agent.py. Każdy przykład używa tego samego server_url i tego samego logowania do obszaru roboczego z kroku 2.
LangGraph
Przykład konwertuje bloki zawartości MCP na format wiadomości czatu modelu za pomocą convert_to_openai_messages.
pip install --upgrade databricks-langchain langgraph
import asyncio
from databricks_langchain import (
ChatDatabricks,
DatabricksMCPServer,
DatabricksMultiServerMCPClient,
)
from langchain_core.messages import convert_to_openai_messages
from langgraph.prebuilt import create_react_agent
async def main():
client = DatabricksMultiServerMCPClient([
DatabricksMCPServer(
name="my-mcp-server",
url=server_url,
workspace_client=workspace_client,
),
])
agent = create_react_agent(
ChatDatabricks(endpoint="databricks-claude-sonnet-4-5"),
tools=await client.get_tools(),
prompt=lambda state: convert_to_openai_messages(state["messages"]),
)
task = input("Ask the agent to use a tool: ")
result = await agent.ainvoke({
"messages": [{"role": "user", "content": task}],
})
for message in result["messages"]:
print(message)
asyncio.run(main())
Notatnik wdrażania (opcjonalnie)
Do wdrożenia Model Serving, dostosuj ten notatnik do użycia adresu URL serwera:
Agent wywołujący narzędzia LangGraph MCP
Zestaw SDK agentów OpenAI
pip install --upgrade databricks-openai openai-agents
import asyncio
from agents import Agent, Runner, set_default_openai_api, set_default_openai_client
from agents.mcp import MCPServerStreamableHttpParams
from agents.tracing import set_trace_processors
from databricks_openai import AsyncDatabricksOpenAI
from databricks_openai.agents.mcp_server import McpServer
set_default_openai_client(AsyncDatabricksOpenAI())
set_default_openai_api("chat_completions")
set_trace_processors([])
async def main():
async with McpServer(
name="my-mcp-server",
params=MCPServerStreamableHttpParams(url=server_url),
workspace_client=workspace_client,
) as server:
agent = Agent(
name="Tool-using agent",
instructions="Use the available tools to answer the user's question.",
model="databricks-claude-sonnet-4-5",
mcp_servers=[server],
)
task = input("Ask the agent to use a tool: ")
result = await Runner.run(agent, task)
for item in result.new_items:
print(item.to_input_item())
asyncio.run(main())
Notatnik wdrożeniowy (opcjonalnie)
Do wdrożenia Model Serving, dostosuj ten notatnik do użycia adresu URL serwera:
Agent sdk MCP tool-calling agent
Klient OpenAI
pip install --upgrade databricks-openai
Ten przykład uruchamia pętlę wywoływania narzędzi jawnie za pomocą klienta kompatybilnego z OpenAI.
import json
from databricks_openai import DatabricksOpenAI, McpServerToolkit
toolkit = McpServerToolkit(url=server_url, workspace_client=workspace_client)
tools_by_name = {tool.name: tool for tool in toolkit.get_tools()}
model_client = DatabricksOpenAI()
messages = [{"role": "user", "content": input("Ask the agent to use a tool: ")}]
for _ in range(10):
response = model_client.chat.completions.create(
model="databricks-claude-sonnet-4-5",
messages=messages,
tools=[tool.spec for tool in tools_by_name.values()],
)
message = response.choices[0].message
messages.append(message.model_dump(exclude_none=True))
if not message.tool_calls:
print(message.content)
break
for call in message.tool_calls:
try:
tool = tools_by_name.get(call.function.name)
if tool is None:
raise ValueError(f"Unknown tool: {call.function.name}")
arguments = json.loads(call.function.arguments or "{}")
if not isinstance(arguments, dict):
raise ValueError("Tool arguments must be a JSON object.")
output = tool.execute(**arguments)
except Exception as error:
output = json.dumps({"error": str(error)})
print(call.function.name, output)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": str(output),
})
else:
raise RuntimeError("The agent reached the tool-calling limit.")
Notatnik wdrożeniowy (opcjonalnie)
Do wdrożenia Model Serving, dostosuj ten notatnik do użycia adresu URL serwera:
Agent wywołujący narzędzia OpenAI MCP
Uruchom ponownie python mcp_agent.py. Gdy zostaniesz o to poproszony, poproś o wybrane zadanie w trybie tylko do odczytu, w tym o wszelkie wymagane dane wejściowe. Na przykład, jeśli Twój serwer ma narzędzie do wyszukiwania zgłoszeń, poproś go o znalezienie otwartych zgłoszeń w konkretnym projekcie.
Sprawdź wydrukowaną rozmowę, aby znaleźć wywołanie narzędzia, jego wynik oraz odpowiedź agenta. Odpowiedź bez wywołania narzędzia nie potwierdza, że serwer MCP został użyty.
Uruchom narzędzie bezpośrednio, aby rozwiązać problem
Użyj nazwy narzędzia i schematu danych wejściowych wydrukowanego w kroku 2. Ten przykład prosi o podanie nazwy i argumentów, aby działał z narzędziami Twojego serwera. Uruchom go po kodzie połączenia z kroku 2:
import json
tool_name = input("Read-only tool name: ")
arguments = json.loads(input("Tool arguments as a JSON object: "))
result = mcp_client.call_tool(tool_name, arguments)
print(result)
Sprawdź, czy wynik nie zawiera błędu narzędzia i zawiera oczekiwane dane.
list_tools() Odkryj nazwy narzędzi i schematy wejściowe przed wywołaniem narzędzia. Formaty wyników różnią się w zależności od narzędzia:
- Jeśli
structuredContentjest obecny, użyj bezpośrednio tego ustrukturyzowanego wyniku. Narzędzie może opisywać swój kształt za pomocąoutputSchema. - W przeciwnym razie sprawdź bloki
content. Parsuj blok tekstowy jako JSON tylko wtedy, gdy narzędzie zwraca JSON. MCP obsługuje także tekst zwykły oraz inne typy treści. - Sprawdź
isErrori obejrzyj przykładową odpowiedź, zanim będziesz polegać na konkretnych polach wyjściowych.
Wdróż i udostępnij, gdy będziesz gotowy
Lokalny przykład działa jako ty. Gdy wdrażasz agenta w Databricks Apps, wybierz tożsamość, której używa: jednostkę usługi aplikacji dla współdzielonego dostępu lub użytkownika wywołującego dla dostępu pojedynczego użytkownika.
Dla MCP dostarczonych lub zarejestrowanych przez Databricks:
- Udziel dzwoniącemu dostępu do MCP oraz jego nadrzędnego katalogu i schematu.
- Skonfiguruj dostęp dla każdego użytkownika, jeśli Twój agent działa w imieniu użytkownika.
- Zarządzaj MCP, aby ograniczać narzędzia, stosować polityki, ustalać limity liczby żądań i monitorować wywołania.
W przypadku starszych serwerów obszaru roboczego lub serwerów hostowanych w Databricks Apps należy przyznać dostęp do bazowych zasobów lub aplikacji. Zobacz uwierzytelnianie agentów.