MCP Databricks Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports configuration through .env files for storing and loading Databricks credentials and connection settings.

  • Executes SQL queries against Databricks using the Statement Execution API, allowing data retrieval, schema listing, table enumeration, and table schema description through the Databricks platform.

  • Built on Python with requirements for Python 3.10+ runtime environment.

Databricks MCP 服务器

这是一个模型上下文协议 (MCP) 服务器,用于使用语句执行 API 针对 Databricks 执行 SQL 查询。它可以通过使用 Databricks API 执行 SQL 请求来检索数据。在代理模式下使用时,它可以成功迭代多个请求以执行复杂任务。与 Unity Catalog Metadata 结合使用效果更佳。

特征

  • 在 Databricks 上执行 SQL 查询
  • 列出目录中可用的架构
  • 列出架构中的表
  • 描述表模式

设置

系统要求

  • Python 3.10+
  • 如果您计划通过uv安装,请确保它已安装

安装

  1. 安装所需的依赖项:
pip install -r requirements.txt

或者如果使用uv

uv pip install -r requirements.txt
  1. 设置环境变量:选项 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 仓库 ID。

权限要求

在使用此 MCP 服务器之前,请确保:

  1. SQL 仓库权限:与所提供令牌关联的用户必须具有适当的权限才能访问指定的 SQL 仓库。您可以在 Databricks UI 的“SQL 仓库”>“[您的仓库]”>“权限”下配置仓库权限。
  2. 令牌权限:所使用的个人访问令牌应具有执行所需操作所需的最低权限。强烈建议:
    • 专门为该应用程序创建专用令牌
    • 尽可能授予只读权限以限制安全风险
    • 避免使用具有工作区范围管理员权限的令牌
  3. 数据访问权限:与令牌关联的用户必须具有适当的权限才能访问将要查询的目录、模式和表。

要通过 Databricks REST API 设置 SQL 仓库权限,您可以使用:

  • GET /api/2.0/sql/permissions/warehouses/{warehouse_id}检查当前权限
  • PATCH /api/2.0/sql/permissions/warehouses/{warehouse_id}更新权限

为了实现最佳安全实践,请考虑定期轮换您的访问令牌并审核查询历史记录以监控使用情况。

运行服务器

独立模式

要在独立模式下运行服务器:

python main.py

这将使用 stdio 传输启动 MCP 服务器,可与 Agent Composer 或其他 MCP 客户端一起使用。

与游标一起使用

要将此 MCP 服务器与Cursor一起使用,您需要在 Cursor 设置中对其进行配置:

  1. 如果.cursor目录尚不存在,请在主目录中创建它
  2. 在该目录中创建或编辑mcp.json文件:
mkdir -p ~/.cursor touch ~/.cursor/mcp.json
  1. 将以下配置添加到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" ] } } }
  1. 重新启动 Cursor 以应用更改

现在您可以在 Cursor 的 AI 助手中直接使用 Databricks MCP 服务器。

可用工具

该服务器提供以下工具:

  1. execute_sql_query :执行 SQL 查询并返回结果
    execute_sql_query(sql: str) -> str
  2. list_schemas :列出特定目录中所有可用的模式
    list_schemas(catalog: str) -> str
  3. list_tables :列出特定模式中的所有表
    list_tables(schema: str) -> str
  4. describe_table :描述表的架构
    describe_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:用于异步操作
-
security - not tested
F
license - not found
-
quality - not tested

这是一个模型上下文协议 (MCP) 服务器,用于使用语句执行 API 对 Databricks 执行 SQL 查询。它使 AI 助手能够直接查询 Databricks 数据仓库、分析数据库模式并以结构化格式检索查询结果。

  1. Features
    1. Setup
      1. System Requirements
      2. Installation
    2. Permissions Requirements
      1. Running the Server
        1. Standalone Mode
        2. Using with Cursor
      2. Available Tools
        1. Example Usage
          1. Handling Long-Running Queries
            1. Dependencies
              ID: f6iwwyxvnq