다음을 통해 공유


Databricks 앱을 사용하여 사용자 지정 MCP 서버 호스트

사용자 고유의 사용자 지정 또는 타사 MCP 서버를 Databricks 앱으로 호스트합니다. 사용자 지정 MCP 서버는 배포하려는 MCP 서버가 이미 있거나 타사 MCP 서버를 도구 원본으로 실행하려는 경우에 유용합니다.

Requirements

  • Databricks 앱으로 호스트되는 MCP 서버는 스트리밍 가능한 HTTP 전송과 같은 HTTP 호환 전송을 구현해야 합니다.

DATAbricks 앱으로 MCP 서버 호스트

사용자 고유의 MCP 서버를 작성하고 Databricks 앱으로 배포하는 예제는 GitHub - 사용자 지정 MCP 서버 템플릿 을 참조하세요.

기존 Python MCP 서버를 Databricks 앱으로 호스트하려면 다음 단계를 수행합니다.

환경 설정

MCP 서버를 배포하기 전에 OAuth를 사용하여 작업 영역에 인증합니다.

  1. 로컬 터미널에서 다음을 실행합니다.

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

MCP 서버 설정

MCP 서버를 배포할 때 종속성 관리 및 통합 도구에 uv 를 사용합니다.

  1. requirements.txt을 MCP 서버의 루트 디렉터리에 추가하고 uv을 종속성으로 포함합니다.

    requirements.txt에 uv을 추가하면, 프로젝트 구성에 정의된 추가 종속성의 설치를 관리합니다.

    uv
    
    
  2. 서버에 대한 pyproject.toml 스크립트 진입점을 정의하는 파일을 만듭니다.

    pyproject.toml:

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

    이 예제에서:

    • custom-serveruv run과 함께 사용하는 스크립트 이름입니다.
    • server.main:main 는 실행할 모듈 경로(server/main.py) 및 함수(main)를 지정합니다.
  3. app.yaml 를 사용하여 uv runMCP 서버를 실행하는 CLI 명령을 지정하는 파일을 추가합니다.

    기본적으로 Databricks 앱은 포트 8000에서 수신 대기합니다. 서버가 다른 포트에서 수신 대기하는 경우 파일에서 app.yaml를 사용하여 설정하도록 합니다.

    app.yaml:

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

실행할 uv run custom-server을 실행하면, uv는 스크립트 정의를 조회하고 모듈 경로를 찾아서 main() 함수를 호출합니다.

DATAbricks 앱으로 MCP 서버 배포

  1. MCP 서버를 호스트하는 Databricks 앱을 만듭니다.

    databricks apps create custom-mcp-server
    
  2. 소스 코드를 Databricks에 업로드하고 파일이 포함된 디렉터리에서 다음 명령을 실행하여 앱을 배포합니다 app.yaml .

    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"
    

배포된 앱 URL 찾기

배포 후 Databricks UI에서 앱 URL을 찾을 수 있습니다. MCP 서버 엔드포인트는 https://<app-url>/mcp에 있습니다.

사용자 지정 MCP 서버에 연결

탭을 클릭하여 다양한 환경에서 MCP 서버에 연결하는 방법을 확인합니다.

로컬 환경

환경 설정에 설명된 대로 OAuth를 사용하여 작업 영역에 인증합니다.

다음 예제에서는 사용자 지정 MCP 서버에 연결하고 사용 가능한 도구를 나열하는 방법을 보여줍니다.

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(서비스 주체)

서비스 주체를 사용하여 Databricks Notebook에서 호스트된 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}")

에이전트 코드(사용자 대신)

사용자 대신 권한 부여를 설정합니다. 사용자 대리 인증을 참조하세요.

사용자 대신 액세스할 수 있도록 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.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 도구 호출 에이전트

노트북 받기

추가 리소스

앱 쿡북은 MCP 서버를 다른 프레임워크와 통합하기 위한 엔드투엔드 코드 예제를 제공합니다.

전체 소스 코드 및 추가 예제는 Databricks Apps Cookbook 리포지토리를 참조하세요.