# Databricks MCP 服务器
## 基本信息
- Slug: `justtryai-databricks-mcp-server`
- Source: modelscope
- Publisher: @JustTryAI/databricks-mcp-server
- Categories: cloud-platforms / databases / developer-tools
- Hosted: No
- License: Unknown
- Source URL: https://www.modelscope.cn/mcp/servers/@JustTryAI/databricks-mcp-server
## 简介
实现模型完成协议（MCP）的服务器，允许大型语言模型通过自然语言与Databricks资源进行交互，包括集群、作业、笔记本和SQL执行。
## 安装提示

```bash
# MacOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (在 PowerShell 中) irm https://astral.sh/uv/install.ps1 | iex ``` 安装后重启终端。 2. 克隆仓库： ```bash git clone https://github.com/JustTryAI/databricks-mcp-server.git cd databricks-mcp-server
```

## MCP Server 详情

# 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 服务器）

### 设置

1. 如果还没有安装 `uv`，请先安装：

   ```bash
   # MacOS/Linux
   curl -LsSf https://astral.sh/uv/install.sh | sh
   
   # Windows (在 PowerShell 中)
   irm https://astral.sh/uv/install.ps1 | iex
   ```

   安装后重启终端。

2. 克隆仓库：
   ```bash
   git clone https://github.com/JustTryAI/databricks-mcp-server.git
   cd databricks-mcp-server
   ```

3. 使用 `uv` 设置项目：
   ```bash
   # 创建并激活虚拟环境
   uv venv
   
   # 在 Windows 上
   .\.venv\Scripts\activate
   
   # 在 Linux/Mac 上
   source .venv/bin/activate
   
   # 以开发模式安装依赖项
   uv pip install -e .
   
   # 安装开发依赖项
   uv pip install -e ".[dev]"
   ```

4. 设置环境变量：
   ```bash
   # 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 服务器，请运行：

```bash
# Windows
.\start_mcp_server.ps1

# Linux/Mac
./start_mcp_server.sh
```


这些包装脚本将执行位于 `scripts` 目录中的实际服务器脚本。服务器将启动并准备好接受 MCP 协议连接。

您也可以直接从脚本目录中运行服务器脚本：

```bash
# Windows
.\scripts\start_mcp_server.ps1

# Linux/Mac
./scripts/start_mcp_server.sh
```


## 查询 Databricks 资源

仓库包括一些实用脚本，可以快速查看 Databricks 资源：

```bash
# 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 风格的文档字符串
- 除测试代码外，所有代码都需要类型提示

### 代码检查

项目使用以下代码检查工具：

```bash
# Run all linters
uv run pylint src/ tests/
uv run flake8 src/ tests/
uv run mypy src/
```


## 测试

该项目使用 pytest 进行测试。要运行测试：

```bash
# 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 运行测试：

```bash
# 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/` 目录以获取用法示例。要运行示例：

```bash
# Run example scripts with uv
uv run examples/direct_usage.py
uv run examples/mcp_client_usage.py
```


## 贡献

欢迎贡献！请随时提交 Pull Request。

1. 确保您的代码遵循项目的编码标准
2. 为任何新功能添加测试
3. 根据需要更新文档
4. 在提交前验证所有测试通过

## 许可证

本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。

