Databricks MCP Server
一个实现了模型补全协议(MCP)的服务器,它允许大型语言模型(LLM)通过自然语言与 Databricks 资源进行交互,包括集群、作业、笔记本和 SQL 执行。
README
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 协议连接。
您也可以直接从 scripts 目录运行服务器脚本:
# Windows
.\scripts\start_mcp_server.ps1
# Linux/Mac
./scripts/start_mcp_server.sh
查询 Databricks 资源
该仓库包含实用程序脚本,可以快速查看 Databricks 资源:
# 查看所有集群
uv run scripts/show_clusters.py
# 查看所有笔记本
uv run scripts/show_notebooks.py
项目结构
databricks-mcp-server/
├── src/ # 源代码
│ ├── __init__.py # 使 src 成为一个包
│ ├── __main__.py # 包的主要入口点
│ ├── main.py # MCP 服务器的入口点
│ ├── api/ # Databricks API 客户端
│ ├── core/ # 核心功能
│ ├── server/ # 服务器实现
│ │ ├── databricks_mcp_server.py # 主要 MCP 服务器
│ │ └── app.py # 用于测试的 FastAPI 应用
│ └── cli/ # 命令行界面
├── tests/ # 测试目录
├── scripts/ # 辅助脚本
│ ├── start_mcp_server.ps1 # 服务器启动脚本 (Windows)
│ ├── run_tests.ps1 # 测试运行器脚本
│ ├── show_clusters.py # 显示集群的脚本
│ └── show_notebooks.py # 显示笔记本的脚本
├── examples/ # 使用示例
├── docs/ # 文档
└── pyproject.toml # 项目配置
有关项目结构的更详细视图,请参见 project_structure.md。
开发
代码标准
- Python 代码遵循 PEP 8 风格指南,最大行长度为 100 个字符
- 使用 4 个空格进行缩进(无制表符)
- 使用双引号表示字符串
- 所有类、方法和函数都应具有 Google 风格的文档字符串
- 所有代码(测试除外)都需要类型提示
Linting
该项目使用以下 linting 工具:
# 运行所有 linters
uv run pylint src/ tests/
uv run flake8 src/ tests/
uv run mypy src/
测试
该项目使用 pytest 进行测试。要运行测试:
# 使用我们方便的脚本运行所有测试
.\scripts\run_tests.ps1
# 运行并生成覆盖率报告
.\scripts\run_tests.ps1 -Coverage
# 运行特定测试并显示详细输出
.\scripts\run_tests.ps1 -Verbose -Coverage tests/test_clusters.py
您也可以直接使用 pytest 运行测试:
# 运行所有测试
uv run pytest tests/
# 运行并生成覆盖率报告
uv run pytest --cov=src tests/ --cov-report=term-missing
该项目的目标是至少达到 80% 的代码覆盖率。
文档
- API 文档使用 Sphinx 生成,可以在
docs/api目录中找到 - 所有代码都包含 Google 风格的文档字符串
- 有关使用示例,请参见
examples/目录
示例
查看 examples/ 目录以获取使用示例。要运行示例:
# 使用 uv 运行示例脚本
uv run examples/direct_usage.py
uv run examples/mcp_client_usage.py
贡献
欢迎贡献!请随时提交 Pull Request。
- 确保您的代码遵循项目的编码标准
- 为任何新功能添加测试
- 根据需要更新文档
- 在提交之前验证所有测试是否通过
许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参见 LICENSE 文件。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。