Udostępnij przez


Hostowanie niestandardowych serwerów MCP przy użyciu aplikacji usługi Databricks

Hostowanie własnych niestandardowych serwerów MCP lub serwerów firm trzecich jako aplikacji Databricks. Niestandardowe serwery MCP są przydatne, jeśli masz już serwer MCP, który chcesz wdrożyć lub jeśli chcesz uruchomić serwer MCP innej firmy jako źródło narzędzi.

Requirements

Hostowanie serwera MCP jako aplikacji usługi Databricks

Zobacz GitHub — niestandardowy szablon serwera MCP , aby zapoznać się z przykładem pisania własnego serwera MCP i wdrażania go jako aplikacji usługi Databricks.

Aby hostować istniejący serwer MCP w języku Python jako aplikację usługi Databricks, wykonaj następujące kroki:

Konfigurowanie środowiska

Przed wdrożeniem serwera MCP uwierzytelnij się w obszarze roboczym przy użyciu protokołu OAuth.

  1. Uruchom następujące polecenie w lokalnym terminalu:

    databricks auth login --host https://<your-workspace-hostname>
    

Konfigurowanie serwera MCP

Użyj uv do zarządzania zależnościami i ujednoliconego narzędzia podczas wdrażania serwera MCP.

  1. Dodaj element requirements.txt do katalogu głównego serwera MCP i dołącz uv go jako zależność.

    Po dodaniu uv do requirements.txtprogram obsługuje instalowanie dodatkowych zależności zdefiniowanych w konfiguracji projektu.

    uv
    
    
  2. pyproject.toml Utwórz plik, który definiuje punkt wejścia skryptu dla serwera.

    Przykład pyproject.toml:

    [project.scripts]
    custom-server = "server.main:main"
    

    W tym przykładzie:

    • custom-server to nazwa skryptu, której używasz z uv run
    • server.main:main określa ścieżkę modułu (server/main.py) i funkcję (main) do wykonania
  3. Dodaj plik app.yaml określający polecenie CLI do uruchomienia serwera MCP za pomocą uv run.

    Domyślnie aplikacje Databricks obsługują port 8000. Jeśli serwer nasłuchuje na innym porcie, ustaw to, używając przesłonięcia zmienną środowiskową w pliku app.yaml.

    Przykład app.yaml:

    command: [
        'uv',
        'run',
        'custom-server', # This must match a script defined in pyproject.toml
      ]
    

Po uruchomieniu uv run custom-serverprogram uv wyszukuje definicję skryptu, znajduje ścieżkę modułu main() i wywołuje funkcję.

Wdrażanie serwera MCP jako aplikacji usługi Databricks

  1. Utwórz aplikację usługi Databricks do hostowania serwera MCP:

    databricks apps create custom-mcp-server
    
  2. Przekaż kod źródłowy do usługi Databricks i wdróż aplikację, uruchamiając następujące polecenia z katalogu zawierającego app.yaml plik:

    DATABRICKS_USERNAME=$(databricks current-user me | jq -r .userName)
    databricks sync . "/Users/$DATABRICKS_USERNAME/custom-mcp-server"
    databricks apps deploy custom-mcp-server --source-code-path "/Workspace/Users/$DATABRICKS_USERNAME/custom-mcp-server"
    

Znajdowanie adresu URL wdrożonej aplikacji

Po wdrożeniu możesz znaleźć adres URL aplikacji w interfejsie użytkownika usługi Databricks. Punkt końcowy serwera MCP jest dostępny pod adresem https://<app-url>/mcp.

Nawiązywanie połączenia z niestandardowym serwerem MCP

Kliknij karty, aby zobaczyć, jak nawiązać połączenie z serwerem MCP z różnych środowisk.

Środowisko lokalne

Zaloguj się do swojego obszaru roboczego za pomocą OAuth, zgodnie z opisem w Konfigurowanie środowiska.

W poniższym przykładzie pokazano, jak nawiązać połączenie z niestandardowym serwerem MCP i wyświetlić dostępne narzędzia:

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

# Replace with your deployed app URL
# Example: https://custom-mcp-server-6051921418418893.staging.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}")

Notebook (podmiot usługi)

Użyj jednostki usługi, aby uzyskać dostęp do hostowanej aplikacji Databricks w notebooku 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(
    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}")

Kod agenta (w imieniu użytkownika)

Skonfiguruj autoryzację w imieniu użytkownika. Zobacz Uwierzytelnianie w imieniu użytkownika.

W poniższym przykładzie pokazano, jak włączyć dostęp w imieniu użytkownika przy użyciu polecenia ModelServingUserCredentials w celu uzyskania dostępu do hostowanej aplikacji usługi Databricks z agenta:

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}")

Zarejestruj model agenta, używając zakresu apps.apps. Zobacz Uwierzytelnianie w imieniu użytkownika.

Kod agenta (główna część usługi)

Włącz uwierzytelnianie systemowe przy użyciu głównej instancji usługi, aby uzyskać dostęp do hostowanej aplikacji Databricks przez agenta.

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}")

Zarejestruj model agenta przy użyciu DatabricksApps jako zasobu. Zobacz Przekazywanie automatycznego uwierzytelniania.

Przykładowe notesy: tworzenie agenta za pomocą serwerów MCP usługi Databricks

W poniższych notatnikach pokazano, jak tworzyć agentów LangGraph i OpenAI, którzy wywołują narzędzia MCP za pomocą niestandardowych serwerów MCP hostowanych w aplikacjach Databricks.

Agent wywołujący narzędzia LangGraph MCP

Pobierz laptopa

Agent wywołujący narzędzia OpenAI MCP

Pobierz laptopa

Dodatkowe zasoby

Podręcznik aplikacji zawiera kompleksowe przykłady kodu do integrowania serwerów MCP z różnymi strukturami:

Aby uzyskać pełny kod źródłowy i dodatkowe przykłady, zobacz repozytorium Cookbook aplikacji Databricks.