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

Lakebase MCP

MCP Server

Lakebase MCP Server是一个生产就绪的Model Context Protocol (MCP)服务器,为Databricks Lakebase提供AI代理对数据库的全面控制,包括查询、模式探索、计算管理、分支、迁移、Delta同步、数据质量分析和特性服务。

工具数

46

提示词数

0

GitHub Stars

0

资源数

0
数据分析数据同步PythonClaudeClaude DesktopClaudeCursor

安装说明

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

作者 / 组织

suryasai87

提供方

suryasai87

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python ui/build.py

详细介绍

Lakebase MCP服务器

生产准备就绪 模型上下文协议(MCP) 服务器 copula湖基 --Rancher上的托管PostgreSQL服务,具有自动缩放、分支和Unity Catalog治理功能。

该服务器使AI代理(Claude、GPT、Copilot等)能够完全控制Lakebase数据库:查询、模式探索、计算管理、分支、迁移、增量同步、数据质量分析和功能服务——所有这些都是通过标准MCP接口实现的。

______________________________________________________________________

关键能力

  • 46工具 跨越13个类别——查询、模式、项目、分支、计算、迁移、同步、同步表、端点、监控、质量、功能存储、统一通信治理
  • 4个提示模板 --用于探索、迁移、同步和自动缩放调整的指导性工作流程
  • 1个会话资源memo://insights 用于在分析过程中积累观测值
  • 交互式UI仪表板 --5页React+FastAPI应用程序,带有工具浏览器、治理矩阵、连接向导和定价计算器
  • 自动缩放感知 --指数回退重试,用于扩展到零、读取副本路由、计算生命周期管理
  • 安全第一 --写保护、危险功能阻止、生产分支保护、只读事务执行
  • 双输出 --每个工具的markdown表(人性化)或JSON(程序化)
  • 完全异步 --基于FastMCP构建 psycopg 3.x异步连接池
  • 查询成本归属 --SQL注释标记(/* lakebase_mcp:tool_name */) + application_name 对于pg_stat活动
  • 运输灵活性 --可流式传输的http(默认,生产)或stdio(--transport stdio 克劳德桌面)

______________________________________________________________________

工具参考(46个工具)

查询工具(3)

工具描述只读
lakebase_read_query执行只读SQL(如果可用,则路由到副本)。包裹在 READ ONLY 交易
lakebase_execute_query执行读/写SQL。由SQL配置文件管理(LAKEBASE_SQL_PROFILELAKEBASE_ALLOW_WRITE).积木 pg_terminate_backend, pg_cancel_backend, pg_reload_conf没有
lakebase_explain_query显示PostgreSQL执行计划(EXPLAIN FORMAT JSON, VERBOSE).可选的 ANALYZE + BUFFERS 用于实际计时

架构发现工具(4)

工具说明
lakebase_list_schemas列出用户模式(不包括 pg_catalog, information_schema, pg_toast)与业主
lakebase_list_tables在具有行估计的架构中列出表/视图(pg_stat_get_live_tuples)和尺寸(pg_total_relation_size)
lakebase_describe_table全表架构:列、类型、可空性、默认值、长度/精度、带定义的索引
lakebase_object_tree分层JSON树:模式->表->列。包括表格、视图、实体化视图

项目管理工具(7)

工具说明
lakebase_list_projects通过Databricks API列出工作区中的所有Lakebase项目。可选目录筛选器
lakebase_describe_project详细项目信息:配置、分支、计算大小、存储使用情况、同步管道
lakebase_get_connection_string获取PostgreSQL连接字符串与临时凭据通过copula凭据自动售货。支持主端点和副本端点。 默认情况下已编辑密码
lakebase_create_project通过Databricks REST API创建一个新的Lakebase项目。指定目录、层和初始计算配置
lakebase_delete_project删除Lakebase项目(不可逆)。需要确认参数以防止意外删除
lakebase_rotate_credentials轮换Lakebase项目的PostgreSQL凭据。通过凭证自动售货生成新的短期代币
lakebase_list_credentials列出Lakebase项目的活动凭据/会话。显示凭证的有效期和过期时间

分支工具(3)

工具说明
lakebase_create_branch在写分支(即时共享存储)上创建副本。可选父分支选择
lakebase_list_branches列出所有分支,包括创建时间、父级、计算状态、CU分配
lakebase_delete_branch删除分支(不可逆)。 无法删除生产/主 --强制服务器端

计算管理工具(6)

工具说明
lakebase_get_compute_status当前状态(active/suspended/scaling_up/scaling_down)CU分配、连接、正常运行时间
lakebase_configure_autoscaling设置最小/最大CU范围。规则:每个CU=2 GB RAM,最大扩展=16 CU,0.5-32 CU范围。无需重新启动
lakebase_configure_scale_to_zero启用/禁用带非活动超时(60–3600秒)的自动挂起。设备:60秒,分段:300秒,产品:禁用
lakebase_get_compute_metrics时间序列:CPU百分比、内存百分比、工作集、连接、状态转换。回顾:5-1440分钟
lakebase_restart_compute重新启动计算(中断活动连接)。用于配置更改、性能问题或扩展更新
lakebase_create_read_replica创建具有独立自动缩放功能的读取副本。共享存储(无数据复制)

迁移工具(2)

工具说明
lakebase_prepare_migration从生产中创建临时分支,在分支上执行DDL迁移SQL,并在升级前验证结果
lakebase_complete_migrationapply=true:在生产分支上重放DDL并清理迁移分支。 apply=false:删除分支,放弃更改

同步工具(2)

工具说明
lakebase_create_sync创建Delta\Lakebase同步管道。方向: delta_to_lakebase, lakebase_to_delta.频率: snapshot, triggered, continuous
lakebase_list_syncs列出所有同步管道,包括源、目标、方向、频率、状态、上次同步时间

同步表工具(4)

工具说明
lakebase_list_synced_tables通过同步表API列出Lakebase项目的所有同步表。显示源增量表、同步状态和上次同步时间
lakebase_create_synced_table通过以下方式创建新的同步表(Delta到Lakebase反向同步) /api/2.0/lakebase/projects/{name}/synced_tables。指定源目录、架构和表
lakebase_delete_synced_table删除已同步的表配置。停止正在进行的同步并清理Lakebase侧副本
lakebase_get_synced_table_status获取特定同步表的详细同步状态:延迟、吞吐量、上次同步时间、错误状态

端点管理工具(4)

工具说明
lakebase_list_endpoints列出Lakebase项目的所有端点(主端点和副本端点)以及连接详细信息和状态
lakebase_create_endpoint通过REST API为Lakebase项目创建一个新的端点(例如,读取副本端点)
lakebase_update_endpoint更新端点配置:自动缩放CU范围、允许的IP列表、SSL模式
lakebase_delete_endpoint删除非主要端点。无法删除主要端点

监控工具(3)

工具说明
lakebase_replication_status查询 pg_stat_replication 对于活动复制槽、WAL延迟、重播延迟和副本状态
lakebase_wal_statistics查询 pg_stat_wal 用于WAL生成速率、缓冲区、同步度量。可用于规模和CDC吞吐量估算
lakebase_cdc_monitor基于WAL的CDC监控(wal2delta)管道:插槽状态、确认的刷新LSN、复制延迟、消费者健康状况

数据质量工具(1)

工具说明
lakebase_profile_table每列统计信息:空%、基数、最小/最大值、平均值、stddev(数字)、不同计数。可配置的样本量(100-1M行)

功能存储工具(2)

工具说明
lakebase_lookup_features按实体键查找低延迟(\ list_tables -> describe_table -> read_query -> profile_table -> append_insight
lakebase_safe_migration基于分支的模式迁移prepare_migration -> read_query (测试)-> explain_query (验证)-> complete_migration
lakebase_setup_syncDelta\湖基同步create_sync -> list_syncs
lakebase_autoscaling_tuning监控和调整计算自动缩放get_compute_status -> get_compute_metrics -> configure_autoscaling -> configure_scale_to_zero -> create_read_replica

克劳德代码中的用法:

Use the lakebase_explore_database prompt to guide your exploration of my database.

Python MCP客户端中的用法:

prompt = await session.get_prompt("lakebase_autoscaling_tuning")
print(prompt.messages[0].content.text)

______________________________________________________________________

自动缩放感知设计

此服务器专为Lakebase自动缩放计算而构建:

缩放到零重试

当计算暂停时,第一次连接尝试失败。服务器以指数回退重试:

  • 尝试次数:5次(可通过以下方式配置 LAKEBASE_S2Z_RETRY_ATTEMPTS)
  • 延迟:0.5秒->1.0秒->2.0秒->4.0秒->8.0秒(上限为 LAKEBASE_S2Z_MAX_DELAY)
  • 捕捉: OperationalError, ConnectionException, ConnectionRefusedError, OSError

读取副本路由

  • lakebase_read_query 电话 execute_readonly() 哪个更喜欢副本池
  • lakebase_execute_query 始终使用主池
  • 如果副本不可用,则自动回退到主副本

连接健康状况

  • 结账前健康检查(AsyncConnectionPool.check_connection)
  • 最大生存期:300秒--回收陈旧连接
  • 最大空闲时间:60s--空闲连接被清除
  • 重新连接超时:30s

自动缩放感知错误消息

条件消息
缩放到零唤醒“计算正在唤醒…重试已用尽。请稍后重试。”
连接被拒绝“无法连接。可能:挂起、重新启动、正在进行自动缩放。”
连接已终止“重新启动/扩展期间连接已终止。池将重新连接。”
权限被拒绝“UC权限不允许此操作。”
找不到表“使用 lakebase_list_tables 以发现可用的表。"
语法错误“SQL语法错误--{details}。”
查询超时“尝试使用LIMIT限制行或简化查询。”

______________________________________________________________________

查询成本归属

灵感来自雪花 QUERY_TAG 模式,Lakebase MCP为成本跟踪和可观察性提供了两层查询属性:

1.应用程序级标记

所有连接包括 application_name=lakebase_mcp 在连接字符串中。这出现在:

  • pg_stat_activity.application_name --在活动查询中识别MCP会话
  • PostgreSQL日志——在日志分析中过滤MCP流量

2.工具级SQL注释

每个查询前面都有一个SQL注释,用于标识发起工具:

/* lakebase_mcp:lakebase_read_query */ SELECT * FROM users LIMIT 10;

这出现在:

  • pg_stat_statements --按工具划分的总成本
  • 查询日志——跟踪单个工具调用

______________________________________________________________________

安全控制

控制详细信息
写防护所有写/DDL查询都被阻止,除非 LAKEBASE_ALLOW_WRITE=true (遗产)或受其管辖 LAKEBASE_SQL_PROFILE
SQL治理基于sqlglot的AST解析对所有17种SQL语句类型进行分类,每种类型允许/拒绝
工具访问控制每个工具都有预构建配置文件的允许/拒绝列表(只读、分析师、开发人员、管理员)
只读交易lakebase_read_query 包裹 SET TRANSACTION READ ONLY
危险功能阻塞pg_terminate_backend, pg_cancel_backend, pg_reload_conf 在验证时被拒绝
生产分支保护lakebase_delete_branch 拒绝删除 productionmain
行限制查询上限为 LAKEBASE_MAX_ROWS (默认值:1000)
查询超时connect_timeout 通过强制执行 LAKEBASE_QUERY_TIMEOUT (默认值:30秒)
凭证编辑get_connection_string 默认情况下编辑密码--返回 **** 除非 show_password=true 明确传递
输入验证Pydantic模型对所有参数(CU范围、超时、样本大小)强制执行边界

______________________________________________________________________

精细治理

服务器提供 双层治理 用于控制AI代理可以做什么——匹配并超越Snowflake MCP的访问控制能力。

建筑

Request: lakebase_execute_query("DROP TABLE users")

Layer 1 — Tool Access Control
  Is "lakebase_execute_query" permitted? → check tool profile/allow/deny

Layer 2 — SQL Statement Governance
  Parse "DROP TABLE users" via sqlglot → SQLStatementType.DROP
  Is DROP in allowed types? → check SQL profile/allow/deny

Both layers must PASS for execution to proceed.

SQL语句配置文件

服务器使用以下方式对SQL进行分类 sqlglot AST解析 (不是正则表达式)来准确处理CTE、子查询、多语句SQL和Postgres特定的语法。

配置文件允许的语句类型
read_only选择、显示、描述、解释
analyst只读+插入、设置
developer分析员+更新、删除、创建、更改、调用
admin所有17种类型(SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER、MERGE、TRUNCATE、GRANT、REVOKE、USE、SHOW、DESCRIBE、EXPLAIN、SET、CALL)

工具访问配置文件

配置文件允许的工具类别
read_onlysql_query、schema_read、project_read、branch_read、compute_read、sync_read、synced_tables_read、endpoint_read、监控、质量、特征_read、洞察
analyst与read_only相同
developer只读+分支写入、计算写入、迁移、同步写入、同步表写入、端点写入
admin全部16个类别

快速入门示例

只读代理 (限制性最强——非常适合编码助理):

export LAKEBASE_SQL_PROFILE=read_only
export LAKEBASE_TOOL_PROFILE=read_only
export LAKEBASE_TOOL_DENIED=lakebase_execute_query  # force read_query only

分析师代理 (SELECT+INSERT用于暂存):

export LAKEBASE_SQL_PROFILE=analyst
export LAKEBASE_TOOL_PROFILE=analyst

开发商代理 (完全CRUD,无管理员):

export LAKEBASE_SQL_PROFILE=developer
export LAKEBASE_TOOL_PROFILE=developer

传统模式 (向后兼容——无治理环境变量):

export LAKEBASE_ALLOW_WRITE=false  # same behavior as before

YAML配置(可选)

对于复杂的策略,请使用YAML文件而不是env-vars:

export LAKEBASE_GOVERNANCE_CONFIG=/path/to/governance.yaml

governance.yaml.example 以获取完整参考。

治理环境变量

变量默认值描述
LAKEBASE_SQL_PROFILEread_only, analyst, developer, admin*(空=遗留)*SQL权限配置文件
LAKEBASE_TOOL_PROFILEread_only, analyst, developer, admin*(空=遗留)*工具访问配置文件
LAKEBASE_SQL_ALLOWED_TYPES逗号分隔类型*(空)*允许的其他SQL类型
LAKEBASE_SQL_DENIED_TYPES逗号分隔类型*(空)*拒绝SQL类型(覆盖配置文件)
LAKEBASE_TOOL_ALLOWED_CATEGORIES逗号分隔的类别*(空)*其他允许的工具类别
LAKEBASE_TOOL_DENIED_CATEGORIES逗号分隔的类别*(空)*拒绝的工具类别
LAKEBASE_TOOL_ALLOWED逗号分隔的工具名称*(空)*个人工具允许列表
LAKEBASE_TOOL_DENIED逗号分隔的工具名称*(空)*个人工具拒绝列表
LAKEBASE_GOVERNANCE_CONFIG文件路径*(空)*治理之路.yaml

______________________________________________________________________

Unity目录集成

Lakebase MCP在三个层面上与Unity Catalog治理集成:

第一级:权限反思

代理可以在尝试操作之前查询自己的UC权限:

> What can I access in the hls_amer_catalog?

Agent calls: lakebase_governance_summary(catalog="hls_amer_catalog")

Result:
  SQL Governance: read_only (SELECT, SHOW, DESCRIBE, EXPLAIN)
  Tool Access: all read-only tools
  UC Privileges: SELECT, USE_CATALOG, USE_SCHEMA
  Recommended profile: read_only or analyst

第二级:联合目录

Lakebase数据库注册为 国外目录 在Unity目录中:

  • 模式和表出现在目录资源管理器中
  • UC授权(SELECT、MODIFY等)控制元数据访问
  • 凭证自动售货尊重UC权限
  • 可以应用行过滤器和列掩码

第三级:三层访问控制

Agent Request → MCP Tool Governance → SQL Statement Governance → UC Permission Check
                (tool_guard.py)        (sql_guard.py)             (PostgreSQL + UC grants)

Layer 1: Is the tool allowed?        (LAKEBASE_TOOL_PROFILE)
Layer 2: Is the SQL type allowed?    (LAKEBASE_SQL_PROFILE)
Layer 3: Does UC permit this object? (Unity Catalog grants)

所有三层都必须允许操作成功。

______________________________________________________________________

UI仪表板

一个功能齐全的React+FastAPI web应用程序,用于探索、配置和估算Lakebase MCP服务器的成本。已部署为copula应用程序。

第(5)页

页面路径描述
/统计数据概述(46个工具、16个类别、4个配置文件、4个提示)、快速链接
工具资源管理器/tools按类别、搜索、筛选、查看参数和注释浏览所有46个工具
连接/connect带有Claude Desktop、Claude Code、Python、curl配置片段的连接向导
治理/governanceSQL配置文件和工具配置文件的交互式访问控制矩阵
定价计算器/pricing代币成本估算器、计算/存储计算器、竞争比较

定价计算器

定价页面提供了三个维度的交互式成本估算:

  • 代币成本计算器 --选择Claude模型(Opus/Sonet/Haiku),调整每个会话的工具调用,请参阅每个调用和每个会话的成本。包括型号推荐横幅(例如,“切换到Sonnet可节省40%”)
  • 计算成本估算师 --选择CU大小(0.5-32)、地区和使用模式(始终与比例为零)。计算每月DBU成本
  • 存储成本估算师 --输入数据库大小和分支。强调分支是免费的(写时复制)
  • 月度总估算 --结合令牌+计算+存储,可调整会话/月
  • 竞争比较 --并排的Lakebase vs Snowflake MCP vs Teradata MCP:计算成本、会话成本、工具数量、治理层和关键差异化因素
  • 成本优化技巧 -可操作的建议(即时缓存、模型选择、缩放为零、批量API)

构建和部署

# Build frontend
python ui/build.py

# Deploy to Databricks Apps
python ui/deploy_to_databricks.py --app-name lakebase-mcp-ui

# Hard redeploy (delete and recreate)
python ui/deploy_to_databricks.py --app-name lakebase-mcp-ui --hard-redeploy

UI测试(44个测试)

cd ui/frontend
npx vitest run
测试套件测试覆盖范围
App.test.jsx7路线、导航,共5页
PricingCalculator.test.jsx10全部6个部分,模型选择器,优化提示
ConnectionWizard.test.jsx7配置生成、复制按钮、选项卡
ToolCard.test.jsx6工具渲染、参数、注释
GovernanceMatrix.test.jsx5配置文件矩阵,SQL/工具治理
类别According.test.jsx4类别分组、扩展、工具计数
ProfileSelector.test.jsx5配置文件切换,徽章计数

______________________________________________________________________

快速开始

先决条件

  • Python 3.11+
  • 紫外线 (推荐)或pip
  • 启用了Lakebase的copula工作区
  • Rancher CLI已通过身份验证(databricks auth login)

1.克隆和安装

git clone https://github.com/suryasai87/lakebase-mcp.git
cd lakebase-mcp
uv sync

2.配置环境

创建一个 .env 文件或导出这些环境变量:

# Required — Lakebase connection
export LAKEBASE_HOST="ep-your-endpoint.database.us-east-1.cloud.databricks.com"
export LAKEBASE_DATABASE="databricks_postgres"

# Optional — Databricks workspace (for compute/project/branching tools)
export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"

# Optional — Read replica
export LAKEBASE_REPLICA_HOST=""

# Optional — Safety (defaults shown)
export LAKEBASE_ALLOW_WRITE="false"
export LAKEBASE_MAX_ROWS="1000"
export LAKEBASE_QUERY_TIMEOUT="30"

# Optional — Scale-to-zero retry (defaults shown)
export LAKEBASE_S2Z_RETRY_ATTEMPTS="5"
export LAKEBASE_S2Z_RETRY_DELAY="0.5"

# Optional — Pool lifecycle (defaults shown)
export LAKEBASE_POOL_MAX_LIFETIME="300"
export LAKEBASE_POOL_MAX_IDLE="60"

3.本地运行

# Default: Streamable HTTP (production, stateless, horizontal scaling)
uv run lakebase-mcp

# Alternative: stdio transport (for Claude Desktop direct integration)
uv run lakebase-mcp --transport stdio

服务器启动于 http://localhost:8000/mcp 默认情况下使用Streamable HTTP传输。

4.连接AI代理

克劳德桌面(claude_desktop_config.json)

{
  "mcpServers": {
    "lakebase": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

克劳德代码(.claude/mcp.json)

{
  "mcpServers": {
    "lakebase": {
      "type": "streamable_http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

任何MCP客户端(Python)

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async with streamablehttp_client("http://localhost:8000/mcp") as (read, write, _):
    async with ClientSession(read, write) as session:
        await session.initialize()

        # List all 46 tools
        tools = await session.list_tools()

        # Run a query
        result = await session.call_tool(
            "lakebase_read_query",
            arguments={"sql": "SELECT current_database(), version()"}
        )
        print(result.content[0].text)

______________________________________________________________________

部署到ViewModel

选项A:copula应用程序(推荐)

  1. 创建应用程序
databricks apps create lakebase-mcp-server --profile DEFAULT
  1. 设置秘密 用于Lakebase连接
databricks apps set-secret lakebase-mcp-server LAKEBASE_HOST \
  "ep-your-endpoint.database.us-east-1.cloud.databricks.com" --profile DEFAULT

databricks apps set-secret lakebase-mcp-server LAKEBASE_DATABASE \
  "databricks_postgres" --profile DEFAULT
  1. 同步和部署
DATABRICKS_USERNAME=$(databricks current-user me --profile DEFAULT | jq -r .userName)

databricks sync . "/Users/$DATABRICKS_USERNAME/lakebase-mcp-server" --profile DEFAULT

databricks apps deploy lakebase-mcp-server \
  --source-code-path "/Workspace/Users/$DATABRICKS_USERNAME/lakebase-mcp-server" \
  --profile DEFAULT
  1. 访问MCP端点
https://lakebase-mcp-server-.aws.databricksapps.com/mcp

选项B:Unity目录MCP目录注册

部署后,在UC MCP目录中注册服务器,以便所有工作区用户都可以发现它:

uv run python deploy/register_mcp_catalog.py

编辑 deploy/register_mcp_catalog.py 在运行之前设置实际的应用程序URL。

______________________________________________________________________

建筑

lakebase-mcp/
├── server/
│   ├── main.py              # FastMCP server, lifespan, tool registration, governance wiring
│   ├── config.py            # Environment-based configuration (19 vars)
│   ├── db.py                # Async connection pool (S2Z retry + replica routing + query tagging)
│   ├── auth.py              # Databricks SDK auth (OBO + standard) + UC permissions
│   ├── governance/
│   │   ├── sql_guard.py     # sqlglot-based SQL statement classification (17 types)
│   │   ├── tool_guard.py    # Per-tool access control (16 categories, 4 profiles)
│   │   └── policy.py        # Unified policy engine (env vars + YAML)
│   ├── tools/
│   │   ├── query.py         # 3 tools: read, execute, explain
│   │   ├── schema.py        # 4 tools: schemas, tables, describe, tree
│   │   ├── instance.py      # 7 tools: projects, describe, connection string, create/delete project, credentials
│   │   ├── branching.py     # 3 tools: create, list, delete branches
│   │   ├── compute.py       # 6 tools: autoscaling, S2Z, metrics, replicas
│   │   ├── migration.py     # 2 tools: prepare, complete
│   │   ├── sync.py          # 2 tools: create sync, list syncs
│   │   ├── synced_tables.py # 4 tools: list, create, delete, status for synced tables
│   │   ├── endpoints.py    # 4 tools: list, create, update, delete endpoints
│   │   ├── monitoring.py   # 3 tools: replication status, WAL stats, CDC monitor
│   │   ├── quality.py       # 1 tool: profile table
│   │   ├── feature_store.py # 2 tools: lookup, list feature tables
│   │   └── uc_governance.py # 4 tools: UC permissions, access check, governance summary, catalog grants
│   ├── resources/
│   │   └── insights.py      # memo://insights resource + append tool
│   ├── prompts/
│   │   └── templates.py     # 4 prompt templates
│   └── utils/
│       ├── errors.py        # Autoscaling-aware error handling
│       ├── formatting.py    # Markdown/JSON response formatting
│       └── pagination.py    # Cursor-based pagination
├── ui/
│   ├── backend/
│   │   ├── app.py           # FastAPI app serving React SPA + API
│   │   └── routers/
│   │       └── metadata.py  # 12 API endpoints (tools, governance, pricing)
│   ├── frontend/
│   │   ├── src/
│   │   │   ├── App.jsx      # Router with 5 animated pages
│   │   │   ├── components/
│   │   │   │   └── Layout.jsx  # Sidebar navigation, app bar
│   │   │   ├── pages/
│   │   │   │   ├── Home.jsx              # Dashboard with stats and quick links
│   │   │   │   ├── ToolExplorer.jsx      # Tool browser with search and filters
│   │   │   │   ├── ConnectionWizard.jsx  # MCP client connection setup
│   │   │   │   ├── GovernanceDashboard.jsx # Access control matrices
│   │   │   │   └── PricingCalculator.jsx # Cost estimators and comparison
│   │   │   └── hooks/
│   │   │       └── useApi.js  # Shared fetch hook
│   │   └── __tests__/       # 44 Vitest tests (7 suites)
│   ├── build.py             # Frontend build script
│   ├── deploy_to_databricks.py  # Staging-based deployment
│   └── app.yaml             # Databricks App config for UI
├── tests/
│   ├── test_unit/           # 39+ unit tests (no connection needed)
│   ├── test_integration/    # Live connection tests
│   └── test_e2e/            # Full MCP protocol tests
├── deploy/
│   └── register_mcp_catalog.py  # Unity Catalog registration
├── eval/
│   └── evaluation.xml       # 10 evaluation Q&A pairs
├── app.yaml                 # Databricks App configuration (MCP server)
├── pyproject.toml           # Project metadata (v0.2.0)
├── requirements.txt         # Pip-compatible requirements (includes sqlglot for SQL governance)
└── TESTING_SCENARIOS.md     # Comprehensive test scenarios for all 46 tools

______________________________________________________________________

运行测试

# Unit tests (no Lakebase connection needed)
uv run pytest tests/test_unit/ -v

# Integration tests (requires LAKEBASE_LIVE_TEST=true + connection)
LAKEBASE_LIVE_TEST=true uv run pytest tests/test_integration/ -v

# E2E tests (requires running MCP server)
LAKEBASE_E2E_TEST=true MCP_SERVER_URL=http://localhost:8000/mcp \
  uv run pytest tests/test_e2e/ -v

______________________________________________________________________

配置参考

环境变量默认值描述
LAKEBASE_HOST*(必填)*Lakebase端点主机名
LAKEBASE_DATABASE*(必填)*数据库名称
LAKEBASE_PORT5432PostgreSQL端口
DATABRICKS_HOST*(可选)*工作区URL(用于计算/项目/分支工具)
LAKEBASE_REPLICA_HOST*(空)*读取副本主机名
LAKEBASE_REPLICA_PORT5432读取副本端口
LAKEBASE_PG_USER*(来自.pgpass)*显式PostgreSQL用户名
LAKEBASE_PG_PASSWORD*(来自.pgpass)*显式PostgreSQL密码
LAKEBASE_ALLOW_WRITEfalse允许写/DDL查询
LAKEBASE_MAX_ROWS1000每个查询结果的最大行数
LAKEBASE_QUERY_TIMEOUT30查询超时/连接超时(秒)
LAKEBASE_S2Z_RETRY_ATTEMPTS5扩展到零连接重试
LAKEBASE_S2Z_RETRY_DELAY0.5基本重试延迟(秒,每次尝试加倍)
LAKEBASE_S2Z_MAX_DELAY10.0最大重试延迟上限(秒)
LAKEBASE_POOL_MIN2最小池连接数
LAKEBASE_POOL_MAX10最大池连接数
LAKEBASE_POOL_MAX_LIFETIME300最大连接时间(秒)
LAKEBASE_POOL_MAX_IDLE60驱逐前的最大空闲时间(秒)

______________________________________________________________________

对话示例

探索数据库

:我的Lakebase数据库中有哪些表?给我看看最大的那个。 代理: *呼叫 lakebase_list_schemas -> lakebase_list_tables -> lakebase_describe_table* 您的数据库有3个模式(公共、分析、暂存),总共有24个表。最大的是 public.transactions 约240万行。..

调整自动缩放

:我的开发数据库太贵了。你能把刻度调到零吗? 代理: *呼叫 lakebase_get_compute_status -> lakebase_get_compute_metrics -> lakebase_configure_scale_to_zero* 完成。您的开发分支现在会在60秒不活动后挂起,并在下一次查询时在约200毫秒后唤醒。根据您的指标,计算有78%的时间处于空闲状态——这应该会大大降低成本。

安全架构迁移

:添加a last_login 将列添加到用户表中,但请先对其进行测试。 代理: *呼叫 lakebase_prepare_migration -> lakebase_describe_table (在分支上)-> lakebase_complete_migration(apply=true)* 迁移已应用。这 last_login 时间戳列现在已投入生产 users 桌子。我首先在一个分支上测试了它,以验证没有现有的查询被破坏。

设置功能服务

:将customer_features表从Delta Lake同步到Lakebase以进行实时服务。 代理: *呼叫 lakebase_create_sync 方向=delta_to_lakebase,频率=连续* 已创建连续同步管道。这 analytics.ml.customer_features Delta表将把更改流式传输到Lakebase。使用 lakebase_lookup_features 用于亚毫秒级查找。

配置文件数据质量

:检查订单表的数据质量。 代理: *呼叫 lakebase_profile_table 其中table_name=“public.orders”* |列|类型|空值%|不同值|最小值|最大值|平均值| |--------|------|--------|----------|-----|-----|-----| |order_id |整数|0%|50000|1|50000|25000.5| |金额|数字|2.3%|4521|0.99|9999.99 |142.87| |状态|文本|0%|5||||

______________________________________________________________________

认证

服务器支持多种身份验证模式:

模式何时如何
代表(OBO)部署为copula应用程序ModelServingUserCredentials() --继承用户身份
标准SDK本地开发、CLIWorkspaceClient() --用途 ~/.databrickscfg 或环境变量
.pgpass 文件使用OAuth轮换的本地开发标准PostgreSQL .pgpass 用于连接凭据
显式凭据CI/CD、服务帐户LAKEBASE_PG_USER + LAKEBASE_PG_PASSWORD 环境变量

Unity目录权限在数据库层强制执行——服务器不会绕过访问控制。

______________________________________________________________________

已知限制和路线图

通过将MCP实现与最新的copula Lakebase API(2026年4月)进行比较,发现了以下差距:

#严重性差距状态
GAP-1MEDIUMCU扩展验证使用8个CU最大值——copula文档显示16个CU最大扩展值在v0.3.0中修复 --最大点差更新为16 CU
GAP-2自动缩放最小/最大CU未根据特定层的约束进行验证在v0.3.0中修复 --添加了层感知验证
GAP-3HIGH迁移工具是部分存根-- prepare_migration 创建分支但不执行DDL; complete_migration(apply=true) 返回成功,而无需在生产环境中重放DDL在v0.3.0中修复 --迁移现在在分支上执行DDL,并在生产上重播
GAP-4HIGH无同步表API支持(通过 /api/2.0/lakebase/projects/{name}/synced_tables)在v0.3.0中修复 --添加了4个同步表工具
GAP-5中级无端点管理工具(通过REST API创建/更新/删除端点)在v0.3.0中修复 --添加了4个端点管理工具
GAP-6中等没有通过Lakebase REST API的凭证/连接状态管理在v0.3.0中修复rotate_credentialslist_credentials 添加了工具
GAP-7缺失 pg_stat_replicationpg_stat_wal 监视查询在v0.3.0中修复replication_statuswal_statistics 添加了工具
GAP-8中等SQL/工具治理仅连接到查询工具——分支、计算和同步工具绕过治理检查在v0.3.0中修复 --对所有工具类别实施治理
GAP-9get_connection_string 以明文响应返回凭据--应编辑或使用短寿命令牌在v0.3.0中修复 --默认情况下已编辑密码, show_password=true 选择加入
GAP-10无基于WAL的CDC(wal2delta)监控集成在v0.3.0中修复cdc_monitor 工具已添加
GAP-11LOW无项目级CRUD(通过API创建/删除项目)在v0.3.0中修复create_projectdelete_project 添加了工具
GAP-12LOW没有通过REST API进行Lakehouse同步状态轮询在v0.3.0中修复get_synced_table_status 该工具提供同步状态轮询

全面差距分析并提出建议: 汇流——Lakebase MCP服务器

______________________________________________________________________

许可证

Apache 2.0

目录标签

目录标签

数据分析数据同步PythonClaude数据库管理本地部署AI代理控制PostgreSQL服务UnityCatalog治理

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

46

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP