역링크
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 서버는 데이터베이스 및 분석 시스템에 대한 접근 권한을 제공하므로, 적절한 보안 조치가 필요합니다:
- Databricks 액세스 토큰에는 최소한의 필요한 권한만 부여하세요.
- 민감한 데이터가 있는 테이블에 대한 접근을 제한하세요.
- 쿼리 실행 시간 및 리소스 사용량을 제한하세요.
- SQL 쿼리에 대한 로깅 및 모니터링을 설정하세요.
- 토큰 만료 기간을 설정하고 주기적으로 교체하세요.