Token导航 LogoToken导航TokenDH.com
Poc Databricks MCP logo
数据服务stdio官方级别未说明来源级核验

Poc Databricks MCP

MCP Server

Databricks MCP服务器是一个用于元数据发现、采样和受管控查询执行的工具,适用于Databricks数据仓库环境。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude数据分析Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ramzpat

提供方

ramzpat

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uvx --python 3.11 --from git+https://github.com/ramzpat/poc-databricks-mcp.git databricks-mcp

详细介绍

______________________________________________________________________

post_title:POC-Databricks MCP 作者1:GitHub复制品 post_slug:poc数据块mcp 微卫星:na featured_image:na 类别: -未分类 标签: -数据块 -mcp -配置 ai_note:人工智能辅助生成 summary:AppDMCP服务器的概述和配置指南。 发布日期:2026年1月23日

POC-copula MCP

快速开始

  • 安装: pip install -e .
  • 复制 config.example.ymlconfig.yml 填写仓库+明细表;通过env注入secrets(文件中没有secrets)。
  • 运行: DATABRICKS_MCP_CONFIG=config.yml python -m databricks_mcp.server
  • 工具在分配的目录/模式集上公开元数据发现、采样和受控查询执行。

远程使用Claude Desktop或其他MCP客户端

无需克隆存储库,即可远程使用此MCP服务器。使用 uvx (部分 uv 包管理器)直接从Git存储库运行服务器。

先决条件

  1. 安装 uv (包括 uvx): https://docs.astral.sh/uv/getting-started/installation/
   curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 创建配置文件 config.yml 在系统上的已知位置
  1. 将您的copula凭据设置为环境变量

与Claude Desktop一起使用(推荐)

步骤1:创建配置文件

创建一个 config.yml 在您的系统上的任何位置文件(例如。, ~/.config/databricks-mcp/config.yml 在macOS/Linux或 %USERPROFILE%\.config\databricks-mcp\config.yml 在Windows上):

warehouse:
  host: ${DATABRICKS_HOST}
  http_path: ${DATABRICKS_HTTP_PATH}
  warehouse_id: ${DATABRICKS_WAREHOUSE_ID}
auth:
  oauth:
    client_id: ${DATABRICKS_CLIENT_ID}
    client_secret: ${DATABRICKS_CLIENT_SECRET}
    token_url: ${DATABRICKS_TOKEN_URL}
scopes:
  catalogs:
    main:
      schemas:
        - default
    # Add more catalogs as needed
    # my_catalog:
    #   schemas:
    #     - schema1
    #     - schema2
limits:
  max_rows: 10000
  sample_max_rows: 1000
  query_timeout_seconds: 60
  max_concurrent_queries: 5
  allow_statement_types:
    - SELECT
observability:
  log_level: info
  propagate_request_ids: true

步骤2:配置Claude桌面

编辑您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

添加此配置以从Git存储库运行:

{
  "mcpServers": {
    "databricks-mcp": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "--from",
        "git+https://github.com/ramzpat/poc-databricks-mcp.git",
        "databricks-mcp"
      ],
      "env": {
        "DATABRICKS_MCP_CONFIG": "/absolute/path/to/your/config.yml",
        "DATABRICKS_HOST": "https://your-workspace.cloud.databricks.com",
        "DATABRICKS_HTTP_PATH": "/sql/1.0/warehouses/your-warehouse-id",
        "DATABRICKS_WAREHOUSE_ID": "your-warehouse-id",
        "DATABRICKS_CLIENT_ID": "your-client-id",
        "DATABRICKS_CLIENT_SECRET": "your-client-secret",
        "DATABRICKS_TOKEN_URL": "https://your-workspace.cloud.databricks.com/oidc/v1/token"
      }
    }
  }
}

重要提示:

  • 替换 /absolute/path/to/your/config.yml 带有配置文件的实际绝对路径
  • 全部替换 your-* 带有您的实际copula凭据的占位符
  • 在Windows上,在路径中使用正斜杠或双反斜杠: C:/Users/YourName/.config/databricks-mcp/config.ymlC:\\Users\\YourName\\.config\\databricks-mcp\\config.yml

步骤3:重新启动克劳德桌面

保存配置后,重新启动Claude Desktop。Rancher MCP服务器将自动可用。

替代方案:使用PyPI(发布时)

如果此包发布到PyPI,则可以简化配置:

{
  "mcpServers": {
    "databricks-mcp": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "databricks-mcp"
      ],
      "env": {
        "DATABRICKS_MCP_CONFIG": "/absolute/path/to/your/config.yml",
        "DATABRICKS_HOST": "https://your-workspace.cloud.databricks.com",
        "DATABRICKS_HTTP_PATH": "/sql/1.0/warehouses/your-warehouse-id",
        "DATABRICKS_WAREHOUSE_ID": "your-warehouse-id",
        "DATABRICKS_CLIENT_ID": "your-client-id",
        "DATABRICKS_CLIENT_SECRET": "your-client-secret",
        "DATABRICKS_TOKEN_URL": "https://your-workspace.cloud.databricks.com/oidc/v1/token"
      }
    }
  }
}

替代方案:当前工作目录中的配置文件

如果你喜欢把你的 config.yml 在特定目录中,您可以将其设置为工作目录或使用绝对路径:

{
  "mcpServers": {
    "databricks-mcp": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "--from",
        "git+https://github.com/ramzpat/poc-databricks-mcp.git",
        "databricks-mcp"
      ],
      "env": {
        "DATABRICKS_MCP_CONFIG": "config.yml",
        "DATABRICKS_HOST": "https://your-workspace.cloud.databricks.com",
        "DATABRICKS_HTTP_PATH": "/sql/1.0/warehouses/your-warehouse-id",
        "DATABRICKS_WAREHOUSE_ID": "your-warehouse-id",
        "DATABRICKS_CLIENT_ID": "your-client-id",
        "DATABRICKS_CLIENT_SECRET": "your-client-secret",
        "DATABRICKS_TOKEN_URL": "https://your-workspace.cloud.databricks.com/oidc/v1/token"
      }
    }
  }
}

备注:如果 DATABRICKS_MCP_CONFIG 未设置,服务器将查找 config.example.yml 默认情况下,位于当前工作目录中。对于生产使用,始终指定一个绝对路径到您的 config.yml 文件清晰可靠。

环境变量引用

所有配置值都支持使用环境变量替换 ${VAR_NAME} 语法在 config.yml 文件。您可以选择:

  1. 仅在环境变量中存储机密 (推荐):

- 仅在MCP客户端配置中保留敏感值(client_secret、token) env 部分 - 参考它们 config.yml${VARIABLE_NAME}

  1. 混合配置文件和环境变量:

- 将非敏感配置存储在 config.yml - 将机密存储为环境变量

具有最小环境变量的示例:

{
  "mcpServers": {
    "databricks-mcp": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "--from",
        "git+https://github.com/ramzpat/poc-databricks-mcp.git",
        "databricks-mcp"
      ],
      "env": {
        "DATABRICKS_MCP_CONFIG": "/path/to/config.yml",
        "DATABRICKS_CLIENT_SECRET": "your-secret-here"
      }
    }
  }
}

config.yml,硬编码非敏感值:

warehouse:
  host: "https://your-workspace.cloud.databricks.com"
  http_path: "/sql/1.0/warehouses/warehouse-id"
  warehouse_id: "warehouse-id"
auth:
  oauth:
    client_id: "your-client-id"
    client_secret: ${DATABRICKS_CLIENT_SECRET}  # From environment
    token_url: "https://your-workspace.cloud.databricks.com/oidc/v1/token"

测试您的配置

要验证您的配置是否有效,您可以从命令行手动测试它:

# Set environment variables
export DATABRICKS_MCP_CONFIG="/path/to/your/config.yml"
export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
export DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/your-warehouse-id"
export DATABRICKS_WAREHOUSE_ID="your-warehouse-id"
export DATABRICKS_CLIENT_ID="your-client-id"
export DATABRICKS_CLIENT_SECRET="your-client-secret"
export DATABRICKS_TOKEN_URL="https://your-workspace.cloud.databricks.com/oidc/v1/token"

# Run with uvx from Git (if uv is installed)
uvx --python 3.11 --from git+https://github.com/ramzpat/poc-databricks-mcp.git databricks-mcp

# Or run directly with Python (if you cloned the repo)
python -m databricks_mcp.server

快速设置(开发)

  • 创建venv并安装: python -m venv .venv && source .venv/bin/activate && pip install -e .[test]
  • 导出所需的环境变量(示例):

- export DATABRICKS_HOST="https://" - export DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/" - export DATABRICKS_WAREHOUSE_ID="" - export DATABRICKS_CLIENT_ID="" - export DATABRICKS_CLIENT_SECRET="" - export DATABRICKS_TOKEN_URL="https:///oidc/v1/token"

  • 复制 config.example.ymlconfig.yml 并调整配额制度/限制;留下秘密 ${...} env引用。
  • 运行服务器: DATABRICKS_MCP_CONFIG=config.yml python -m databricks_mcp.server
  • 运行测试: pytest

获取OAuth令牌(服务主体)

  • Prereq:服务负责人 client_id / client_secret,以及令牌端点(工作区OIDC)。通常不需要范围;如果你的IdP强制执行,请通过 scope.
  • 请求示例:
  curl -X POST "$DATABRICKS_TOKEN_URL" \
  	-H 'Content-Type: application/x-www-form-urlencoded' \
  	-d "grant_type=client_credentials" \
  	-d "client_id=$DATABRICKS_CLIENT_ID" \
  	-d "client_secret=$DATABRICKS_CLIENT_SECRET"
  • 预期JSON: { "access_token": "...", "token_type": "Bearer", "expires_in": 3600 }
  • 服务器通过以下方式自动获取和刷新令牌 DATABRICKS_CLIENT_ID/SECRETDATABRICKS_TOKEN_URL;curl仅用于验证/调试。

配置

  • 必填字段(YAML):仓库主机, http_path, warehouse_id,

满配 scopes.catalogs..schemas、限制(行/时间/并发性), 以及可选的可观察性设置。

  • 必需的环境变量:OAuth客户端密钥(${DATABRICKS_CLIENT_SECRET} 在YAML中)

加上引用的任何主机/令牌设置 ${...} (例如。, DATABRICKS_HOST, DATABRICKS_HTTP_PATH, DATABRICKS_WAREHOUSE_ID, DATABRICKS_TOKEN_URL).

  • 限制: max_rows, sample_max_rows, query_timeout_seconds,

max_concurrent_queries (不能是无限的), allow_statement_types (默认值 SELECT). -1 仅表示行/时间“无限制”。

  • 秘密:始终使用 ${ENV_VAR} YAML中的引用;永远不要硬编码令牌。

工具

  • list_catalogs, list_schemas(catalog):仅返回已分配的作用域。
  • list_tables(catalog, schema):允许范围内的信息架构中的表/视图。
  • table_metadata(catalog, schema, table):列、主键、分区列和行数(如果可用)。
  • partition_info(catalog, schema, table):分区列加上轻量级统计数据(行数、大小)。
  • sample_data(catalog, schema, table, limit?, predicate?):capped示例在服务器端强制执行。
  • preview_query(sql, limit?, timeout_seconds?):仅选择具有严格行/时间限制的快速检查。
  • run_query(sql, limit?, timeout_seconds?):当配置显式使用时,受控制的SELECT具有行/时间上限和可选的无限行 -1.
  • health_check():liveness,无需联系copula。

护栏

  • 对每个工具上的目录和模式执行允许列表;其他任何东西都被拒绝了。
  • 默认情况下仅选择;其他语句类型需要显式 allow_statement_types 在配置中。
  • 服务器端的行上限、超时和并发限制始终适用(客户端请求不能覆盖)。
  • 当限制减少输出时,结果中会显示截断。

可观测性

  • 结构化日志包括请求ID/查询ID;通过配置日志级别 observability.log_level.
  • 错误简洁明了,避免使用原始SQL或机密;copula故障映射到用户安全消息。

测试

  • 安装dev-deps: pip install -e .[test]
  • 运行单元测试: pytest

目录标签

目录标签

PythonClaude数据分析数据仓库本地部署元数据管理查询执行数据采样Databricks集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP