MCP Databricks Server
这是一个模型上下文协议(MCP)服务器,用于使用语句执行 API 对 Databricks 执行 SQL 查询。 它使 AI 助手能够直接查询 Databricks 数据仓库、分析数据库模式,并以结构化格式检索查询结果。
README
Databricks MCP 服务器
这是一个模型上下文协议 (MCP) 服务器,用于使用 Statement Execution API 对 Databricks 执行 SQL 查询。 它可以通过使用 Databricks API 执行 SQL 请求来检索数据。 当在 Agent 模式下使用时,它可以成功地迭代多个请求以执行复杂的任务。 与 Unity Catalog Metadata 结合使用时效果更佳。
功能
- 在 Databricks 上执行 SQL 查询
- 列出目录中可用的 schema
- 列出 schema 中的表
- 描述表 schema
设置
系统要求
- Python 3.10+
- 如果您计划通过
uv
安装,请确保已安装
安装
- 安装所需的依赖项:
pip install -r requirements.txt
或者如果使用 uv
:
uv pip install -r requirements.txt
-
设置您的环境变量:
选项 1:使用 .env 文件(推荐)
创建一个包含您的 Databricks 凭据的 .env 文件:
DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com DATABRICKS_TOKEN=your-databricks-access-token DATABRICKS_SQL_WAREHOUSE_ID=your-sql-warehouse-id
选项 2:直接设置环境变量
export DATABRICKS_HOST="your-databricks-instance.cloud.databricks.com" export DATABRICKS_TOKEN="your-databricks-access-token" export DATABRICKS_SQL_WAREHOUSE_ID="your-sql-warehouse-id"
您可以在 Databricks UI 的 SQL Warehouses 下找到您的 SQL warehouse ID。
权限要求
在使用此 MCP 服务器之前,请确保:
-
SQL Warehouse 权限:与提供的 token 关联的用户必须具有访问指定 SQL warehouse 的适当权限。 您可以在 Databricks UI 的 SQL Warehouses > [您的 Warehouse] > Permissions 下配置 warehouse 权限。
-
Token 权限:使用的个人访问 token 应具有执行所需操作的最低必要权限。 强烈建议:
- 专门为此应用程序创建一个专用 token
- 尽可能授予只读权限以限制安全风险
- 避免使用具有 workspace 范围管理员权限的 token
-
数据访问权限:与 token 关联的用户必须具有访问将被查询的 catalog、schema 和表的适当权限。
要通过 Databricks REST API 设置 SQL warehouse 权限,您可以使用:
GET /api/2.0/sql/permissions/warehouses/{warehouse_id}
检查当前权限PATCH /api/2.0/sql/permissions/warehouses/{warehouse_id}
更新权限
为了获得最佳安全实践,请考虑定期轮换您的访问 token 并审核查询历史记录以监控使用情况。
运行服务器
独立模式
要在独立模式下运行服务器:
python main.py
这将使用 stdio 传输启动 MCP 服务器,该服务器可以与 Agent Composer 或其他 MCP 客户端一起使用。
与 Cursor 一起使用
要将此 MCP 服务器与 Cursor 一起使用,您需要在 Cursor 设置中对其进行配置:
- 如果您的主目录中还没有
.cursor
目录,请创建一个 - 在该目录中创建或编辑
mcp.json
文件:
mkdir -p ~/.cursor
touch ~/.cursor/mcp.json
- 将以下配置添加到
mcp.json
文件中,将目录路径替换为您安装此服务器的实际路径:
{
"mcpServers": {
"databricks": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/mcp-databricks-server",
"run",
"main.py"
]
}
}
}
如果您不使用 uv
,则可以使用 python
代替:
{
"mcpServers": {
"databricks": {
"command": "python",
"args": [
"/path/to/your/mcp-databricks-server/main.py"
]
}
}
}
- 重新启动 Cursor 以应用更改
现在,您可以直接在 Cursor 的 AI 助手中使用 Databricks MCP 服务器。
可用工具
服务器提供以下工具:
-
execute_sql_query
: 执行 SQL 查询并返回结果execute_sql_query(sql: str) -> str
-
list_schemas
: 列出特定 catalog 中的所有可用 schemalist_schemas(catalog: str) -> str
-
list_tables
: 列出特定 schema 中的所有表list_tables(schema: str) -> str
-
describe_table
: 描述表的 schemadescribe_table(table_name: str) -> str
使用示例
在 Agent Composer 或其他 MCP 客户端中,您可以像这样使用这些工具:
execute_sql_query("SELECT * FROM my_schema.my_table LIMIT 10")
list_schemas("my_catalog")
list_tables("my_catalog.my_schema")
describe_table("my_catalog.my_schema.my_table")
处理长时间运行的查询
该服务器旨在通过轮询 Databricks API 来处理长时间运行的查询,直到查询完成或超时。 默认超时时间为 10 分钟(60 次重试,间隔 10 秒),如果需要,可以在 dbapi.py
文件中进行调整。
依赖项
- httpx: 用于向 Databricks API 发出 HTTP 请求
- python-dotenv: 用于从 .env 文件加载环境变量
- mcp: 模型上下文协议库
- asyncio: 用于异步操作
推荐服务器
MCP DuckDB Knowledge Graph Memory Server
一个为 Claude 设计的记忆服务器,它使用 DuckDB 存储和检索知识图谱数据,从而增强了对话的性能和查询能力,并能持久保存用户信息。
Tavily MCP Server
使用 Tavily 的搜索 API 提供 AI 驱动的网络搜索功能,使 LLM 能够执行复杂的网络搜索、获得问题的直接答案以及搜索最近的新闻文章。
Metabase MCP Server
使人工智能助手能够与 Metabase 数据库和仪表板进行交互,允许用户通过自然语言列出和执行查询、访问数据可视化以及与数据库资源进行交互。

Airtable MCP Server
一个模型上下文协议(Model Context Protocol,MCP)服务器,通过 Claude Desktop 或其他 MCP 客户端,为以编程方式管理 Airtable 数据库、表格、字段和记录提供工具。
mcp-shodan
用于查询 Shodan API 和 Shodan CVEDB 的 MCP 服务器。该服务器提供 IP 查询、设备搜索、DNS 查询、漏洞查询、CPE 查询等工具。
DuckDuckGo MCP Server
一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

Supabase MCP Server
一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。
YouTube Transcript MCP Server
这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。

Brev
在云端运行、构建、训练和部署机器学习模型。
Verodat MCP Server
一个 MCP 服务器,集成了 Verodat 的数据管理功能和像 Claude Desktop 这样的人工智能系统,使用户能够管理账户、工作区和数据集,并能对他们的数据执行人工智能驱动的查询。