Databricks MCP 服务器
一个针对Databricks的模型完成协议(MCP)服务器,通过MCP协议提供对Databricks功能的访问。这使得基于大型语言模型(LLM)的工具能够与Databricks集群、作业、笔记本等进行交互。
特性
- MCP协议支持实现MCP协议,以允许大型语言模型(LLMs)与Databricks进行交互
- Databricks API 集成提供访问Databricks REST API功能的权限
- 工具注册将Databricks功能作为MCP工具暴露出来
- 异步支持使用asyncio构建以实现高效运行
可用工具
Databricks MCP服务器提供了以下工具:
- 列出集群列出所有Databricks集群
- 创建集群创建一个新的Databricks集群
- 终止集群终止一个Databricks集群
- 获取集群获取有关特定Databricks集群的信息
- 启动集群启动已终止的Databricks集群
- 列出任务列出所有Databricks作业
- 执行任务运行一个Databricks作业
- 笔记本列表列出工作区目录中的笔记本
- 导出笔记本从工作区导出一个笔记本
- 列出文件列出 DBFS 路径中的文件和目录
- 根据上面的信息,执行如下指令:你是个专业的翻译,负责把英语内容翻译成中文内容,请帮我翻译一下原文内容执行SQL语句
安装
先决条件
- Python 3.10或更高版本
uv包管理器(推荐用于MCP服务器)
设置
- 安装
uv如果你还没有:
# MacOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (in PowerShell)
irm https://astral.sh/uv/install.ps1 | iex安装完成后重启您的终端。
- 克隆仓库:
git clone https://github.com/JustTryAI/databricks-mcp-server.git
cd databricks-mcp-server- 使用以下命令设置项目:
uv根据上面的信息,执行如下指令:
# 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 基于文件的 .env.example 模板。
运行MCP服务器
要启动MCP服务器,请运行:
# Windows
.\start_mcp_server.ps1
# Linux/Mac
./start_mcp_server.sh这些包装脚本将执行位于(某处)的实际服务器脚本 scripts 目录。服务器将启动并准备好接受MCP协议连接。
你也可以直接从scripts目录运行服务器脚本:
# Windows
.\scripts\start_mcp_server.ps1
# Linux/Mac
./scripts/start_mcp_server.sh查询Databricks资源
该存储库包含实用脚本,用于快速查看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代码遵循PEP 8风格指南,最大行长度为100个字符
- 使用4个空格进行缩进(不要使用制表符)
- 请为字符串使用双引号
- 所有类、方法和函数都应具有 Google 风格的文档字符串
- 除测试代码外,所有代码均需包含类型提示
代码检查
该项目使用了以下代码检查工具:
# 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.py你也可以直接使用 pytest 运行测试:
# 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风格的文档字符串
- 查看
examples/使用示例目录
示例
检查 examples/ 用法示例目录。要运行示例:
# Run example scripts with uv
uv run examples/direct_usage.py
uv run examples/mcp_client_usage.py贡献
欢迎贡献!请随时提交拉取请求。
- 确保你的代码遵循项目的编码标准
- 为任何新功能添加测试
- 根据需要更新文档
- 在提交前验证所有测试是否通过
许可证
这个项目采用MIT许可证授权 - 详情请参阅LICENSE文件。
