这是一个用于Databricks的模型完成协议(MCP)服务器,通过MCP协议提供对Databricks功能的访问。这使得基于LLM的工具能够与Databricks集群、作业、笔记本等进行交互。
Databricks MCP Server暴露了以下工具:
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服务器,请运行:
# 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资源:
# 查看所有集群
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以获得更详细的项目结构视图。
该项目使用以下代码检查工具:
# 运行所有检查器
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%。
docs/api目录找到。examples/目录以获取使用示例。请检查examples/目录以获取使用示例。要运行示例:
# 使用uv运行示例脚本
uv run examples/direct_usage.py
uv run examples/mcp_client_usage.py
欢迎贡献!请随意提交拉取请求。
此项目采用MIT许可证——详情见LICENSE文件。