데이터브릭스 MCP 서버
Databricks용 모델 완성 프로토콜(MCP) 서버로, MCP 프로토콜을 통해 Databricks 기능에 액세스할 수 있도록 합니다. 이를 통해 LLM 기반 도구가 Databricks 클러스터, 작업, 노트북 등과 상호 작용할 수 있습니다.
특징
MCP 프로토콜 지원 : LLM이 Databricks와 상호 작용할 수 있도록 MCP 프로토콜을 구현합니다.
Databricks API 통합 : Databricks REST API 기능에 대한 액세스를 제공합니다.
도구 등록 : Databricks 기능을 MCP 도구로 노출합니다.
비동기 지원 : 효율적인 작업을 위해 asyncio로 구축됨
Related MCP server: mcp-lancedb
사용 가능한 도구
Databricks MCP 서버는 다음과 같은 도구를 제공합니다.
list_clusters : 모든 Databricks 클러스터를 나열합니다.
create_cluster : 새로운 Databricks 클러스터를 생성합니다.
terminate_cluster : Databricks 클러스터 종료
get_cluster : 특정 Databricks 클러스터에 대한 정보를 가져옵니다.
start_cluster : 종료된 Databricks 클러스터를 시작합니다.
list_jobs : 모든 Databricks 작업 나열
run_job : Databricks 작업 실행
list_notebooks : 작업 공간 디렉토리에 있는 노트북을 나열합니다.
export_notebook : 작업 공간에서 노트북을 내보냅니다.
list_files : DBFS 경로에 있는 파일과 디렉토리를 나열합니다.
execute_sql : SQL 문을 실행합니다.
설치
필수 조건
Python 3.10 이상
uv패키지 관리자(MCP 서버에 권장)
설정
uv아직 없다면 설치하세요:지엑스피1
설치 후 터미널을 다시 시작하세요.
저장소를 복제합니다.
git clone https://github.com/JustTryAI/databricks-mcp-server.git cd databricks-mcp-serveruv로 프로젝트를 설정합니다:# Create and activate virtual environment uv venv # On Windows .\.venv\Scripts\activate # On Linux/Mac source .venv/bin/activate # Install dependencies in development mode uv pip install -e . # Install development dependencies uv pip install -e ".[dev]"환경 변수 설정:
# Windows set DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net set DATABRICKS_TOKEN=your-personal-access-token # Linux/Mac export DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net export DATABRICKS_TOKEN=your-personal-access-token.env.example템플릿을 기반으로.env파일을 만들 수도 있습니다.
MCP 서버 실행
MCP 서버를 시작하려면 다음을 실행하세요.
# Windows
.\start_mcp_server.ps1
# Linux/Mac
./start_mcp_server.sh이 래퍼 스크립트는 scripts 디렉터리에 있는 실제 서버 스크립트를 실행합니다. 서버가 시작되고 MCP 프로토콜 연결을 허용할 준비가 됩니다.
스크립트 디렉토리에서 서버 스크립트를 직접 실행할 수도 있습니다.
# Windows
.\scripts\start_mcp_server.ps1
# Linux/Mac
./scripts/start_mcp_server.shDatabricks 리소스 쿼리
저장소에는 Databricks 리소스를 빠르게 볼 수 있는 유틸리티 스크립트가 포함되어 있습니다.
# View all clusters
uv run scripts/show_clusters.py
# View all notebooks
uv run scripts/show_notebooks.py프로젝트 구조
databricks-mcp-server/
├── src/ # Source code
│ ├── __init__.py # Makes src a package
│ ├── __main__.py # Main entry point for the package
│ ├── main.py # Entry point for the MCP server
│ ├── api/ # Databricks API clients
│ ├── core/ # Core functionality
│ ├── server/ # Server implementation
│ │ ├── databricks_mcp_server.py # Main MCP server
│ │ └── app.py # FastAPI app for tests
│ └── cli/ # Command-line interface
├── tests/ # Test directory
├── scripts/ # Helper scripts
│ ├── start_mcp_server.ps1 # Server startup script (Windows)
│ ├── run_tests.ps1 # Test runner script
│ ├── show_clusters.py # Script to show clusters
│ └── show_notebooks.py # Script to show notebooks
├── examples/ # Example usage
├── docs/ # Documentation
└── pyproject.toml # Project configuration프로젝트 구조에 대한 자세한 내용은 project_structure.md 참조하세요.
개발
코드 표준
Python 코드는 최대 줄 길이가 100자인 PEP 8 스타일 가이드를 따릅니다.
들여쓰기에는 공백 4개를 사용하세요(탭 없음)
문자열에는 큰따옴표를 사용하세요
모든 클래스, 메서드 및 함수에는 Google 스타일 docstring이 있어야 합니다.
테스트를 제외한 모든 코드에는 유형 힌트가 필요합니다.
린팅
이 프로젝트에서는 다음과 같은 린팅 도구를 사용합니다.
# Run all linters
uv run pylint src/ tests/
uv run flake8 src/ tests/
uv run mypy src/테스트
이 프로젝트에서는 테스트를 위해 pytest를 사용합니다. 테스트를 실행하려면 다음을 수행하세요.
# Run all tests with our convenient script
.\scripts\run_tests.ps1
# Run with coverage report
.\scripts\run_tests.ps1 -Coverage
# Run specific tests with verbose output
.\scripts\run_tests.ps1 -Verbose -Coverage tests/test_clusters.pypytest를 사용하여 직접 테스트를 실행할 수도 있습니다.
# Run all tests
uv run pytest tests/
# Run with coverage report
uv run pytest --cov=src tests/ --cov-report=term-missing이 프로젝트의 목표는 최소 80%의 코드 커버리지입니다.
선적 서류 비치
API 문서는 Sphinx를 사용하여 생성되며
docs/api디렉토리에서 찾을 수 있습니다.모든 코드에는 Google 스타일 docstring이 포함되어 있습니다.
사용 예는
examples/디렉토리를 참조하세요.
예시
사용 예제는 examples/ 디렉터리에서 확인하세요. 예제를 실행하려면 다음을 수행하세요.
# Run example scripts with uv
uv run examples/direct_usage.py
uv run examples/mcp_client_usage.py기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
코드가 프로젝트의 코딩 표준을 따르는지 확인하세요.
새로운 기능에 대한 테스트를 추가합니다.
필요에 따라 문서를 업데이트하세요
제출하기 전에 모든 테스트가 통과되었는지 확인하세요
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.