实现模型完成协议(MCP)的服务器,允许大型语言模型通过自然语言与Databricks资源进行交互,包括集群、作业、笔记本和SQL执行。
433 查看 · 2026-07-07 更新
简介
实现模型完成协议(MCP)的服务器,允许大型语言模型通过自然语言与Databricks资源进行交互,包括集群、作业、笔记本和SQL执行。
简介
实现模型完成协议(MCP)的服务器,允许大型语言模型通过自然语言与Databricks资源进行交互,包括集群、作业、笔记本和SQL执行。
Databricks MCP 服务器
一个用于 Databricks 的模型完成协议(MCP)服务器,通过 MCP 协议提供对 Databricks 功能的访问。这允许由 LLM 支持的工具与 Databricks 集群、作业、笔记本等进行交互。
特性
- MCP 协议支持:实现 MCP 协议以允许 LLM 与 Databricks 交互
- Databricks API 集成:提供对 Databricks REST API 功能的访问
- 工具注册:将 Databricks 功能作为 MCP 工具暴露出来
- 异步支持:使用 asyncio 构建以实现高效操作
可用工具
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,请先安装:# MacOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (在 PowerShell 中) irm https://astral.sh/uv/install.ps1 | iex安装后重启终端。
-
克隆仓库:
git clone https://github.com/JustTryAI/databricks-mcp-server.git cd databricks-mcp-server -
使用
uv设置项目:# 创建并激活虚拟环境 uv venv # 在 Windows 上 .\.venv\Scripts\activate # 在 Linux/Mac 上 source .venv/bin/activate # 以开发模式安装依赖项 uv pip install -e . # 安装开发依赖项 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.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
贡献
欢迎贡献!请随时提交 Pull Request。
- 确保您的代码遵循项目的编码标准
- 为任何新功能添加测试
- 根据需要更新文档
- 在提交前验证所有测试通过
许可证
本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
来源
- 来源:github
- 链接:https://github.com/JustTryAI/databricks-mcp-server