MCP 문서 관리

메뉴

Databricks

Databricks

Databricks MCP 서버는 Databricks 계정에서 SQL 쿼리 실행, 작업 실행 관리, 데이터 분석 등의 작업을 수행할 수 있게 해주는 서버입니다. 이 서버를 통해 LLM(Large Language Models)은 Databricks 환경과 상호작용하여 데이터 탐색, 분석, 처리 등의 작업을 자연어 기반으로 수행할 수 있습니다.

특징

  • SQL 쿼리 실행: Databricks SQL 웨어하우스에서 쿼리 실행 및 결과 조회
  • 스키마 탐색: 카탈로그, 스키마, 테이블 메타데이터 탐색
  • 작업 관리: Databricks 작업 목록 조회 및 실행 상태 모니터링
  • 장기 실행 쿼리 지원: 실행 시간이 긴 쿼리의 비동기 처리 및 폴링
  • Databricks API 통합: Databricks Statement Execution API 및 기타 API와의 통합
  • Unity Catalog 지원: Unity Catalog 메타데이터 활용 및 탐색 기능

API

도구

SQL 쿼리 관리

  • execute_sql_query: SQL 쿼리를 실행합니다.
  • 입력: SQL 쿼리 문자열
  • 출력: 쿼리 결과, 열 정보, 실행 통계

  • get_query_status: 실행 중인 쿼리의 상태를 확인합니다.

  • 입력: 쿼리 ID
  • 출력: 쿼리 상태, 진행률, 완료 여부

  • cancel_query: 실행 중인 쿼리를 취소합니다.

  • 입력: 쿼리 ID
  • 출력: 취소 결과

메타데이터 탐색

  • list_catalogs: 사용 가능한 카탈로그 목록을 가져옵니다.
  • 입력: 없음
  • 출력: 카탈로그 목록

  • list_schemas: 지정된 카탈로그의 스키마 목록을 가져옵니다.

  • 입력: 카탈로그 이름
  • 출력: 스키마 목록

  • list_tables: 지정된 스키마의 테이블 목록을 가져옵니다.

  • 입력: 카탈로그 이름, 스키마 이름
  • 출력: 테이블 목록 및 기본 정보

  • describe_table: 테이블 구조를 상세히 설명합니다.

  • 입력: 테이블 전체 경로(카탈로그.스키마.테이블)
  • 출력: 열 정보, 데이터 타입, 제약 조건 등

작업 관리

  • list_jobs: 사용 가능한 작업 목록을 가져옵니다.
  • 입력: 필터 옵션(선택적)
  • 출력: 작업 목록 및 기본 정보

  • get_job_details: 특정 작업의 세부 정보를 가져옵니다.

  • 입력: 작업 ID
  • 출력: 작업 구성, 일정, 파라미터 등

  • run_job: 작업을 실행합니다.

  • 입력: 작업 ID, 파라미터(선택적)
  • 출력: 실행 ID 및 상태

  • get_job_run_status: 작업 실행 상태를 확인합니다.

  • 입력: 작업 ID, 실행 ID
  • 출력: 실행 상태, 결과, 로그 등

사용 방법

설치

# uv 사용
uv pip install mcp-databricks-server

# 또는 pip 사용
pip install mcp-databricks-server

구성

환경 변수 설정:

# Windows
set DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com
set DATABRICKS_TOKEN=your-databricks-access-token
set DATABRICKS_SQL_WAREHOUSE_ID=your-sql-warehouse-id

# Linux/Mac
export DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com
export DATABRICKS_TOKEN=your-databricks-access-token
export DATABRICKS_SQL_WAREHOUSE_ID=your-sql-warehouse-id

또는 .env 파일 생성:

DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com
DATABRICKS_TOKEN=your-databricks-access-token
DATABRICKS_SQL_WAREHOUSE_ID=your-sql-warehouse-id

Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정 파일에 추가합니다:

{
  "mcpServers": {
    "databricks": {
      "command": "uv",
      "args": ["--directory", "/path/to/your/mcp-databricks-server", "run", "main.py"],
      "env": {
        "DATABRICKS_HOST": "your-databricks-instance.cloud.databricks.com",
        "DATABRICKS_TOKEN": "your-databricks-access-token",
        "DATABRICKS_SQL_WAREHOUSE_ID": "your-sql-warehouse-id"
      }
    }
  }
}

사용 예시

// SQL 쿼리 실행
const results = await execute_sql_query("SELECT * FROM my_catalog.my_schema.my_table LIMIT 10");
console.log(results);

// 스키마 목록 조회
const schemas = await list_schemas("my_catalog");
console.log(schemas);

// 테이블 설명
const tableInfo = await describe_table("my_catalog.my_schema.my_table");
console.log(tableInfo);

// 작업 실행
const runId = await run_job("123456");
console.log(`작업 실행 ID: ${runId}`);

연결된 구성 요소

보안 고려사항

Databricks MCP 서버는 데이터베이스 및 분석 시스템에 대한 접근 권한을 제공하므로, 적절한 보안 조치가 필요합니다:

  1. Databricks 액세스 토큰에는 최소한의 필요한 권한만 부여하세요.
  2. 민감한 데이터가 있는 테이블에 대한 접근을 제한하세요.
  3. 쿼리 실행 시간 및 리소스 사용량을 제한하세요.
  4. SQL 쿼리에 대한 로깅 및 모니터링을 설정하세요.
  5. 토큰 만료 기간을 설정하고 주기적으로 교체하세요.