返回市场
建筑计划-MCP服务器

建筑计划-MCP服务器

作者:BauplanLabs5 星标更新:2025-10-29

项目介绍

Bauplan MCP 服务器构建计划

使用自然语言命令通过 Bauplan MCP 服务器管理您的 Bauplan 数据湖。

[!NOTE] 该服务器现处于 Beta 版本并采用 MIT 许可证发布,但 API 和功能可能会在我们继续开发过程中未经通知地进行更改。

概述

Bauplan 模型上下文协议(MCP)服务器是一个开源库,它为 AI 助手提供了访问 Bauplan 数据湖功能的能力,包括查询表、模式检查、数据分支管理以及运行管道。

当前版本的主要用途是帮助本地开发,通过提供对您的 Bauplan 数据湖的访问来支持像 Claude Code 或 Claude Desktop 这样的 AI 助手。

我们预计在未来不久会将其推广到服务器端部署,可能由 Bauplan 直接托管:敬请关注!

要了解如何充分利用 MCP 服务器,请参阅我们的视频演示。如果您有任何初步问题或反馈,请联系我们!

快速开始

您可以在一分钟内使用现有的 AI 助手开始:一个使用 Claude Desktop 和 Claude Code 的视频设置也可供参考这里

您需要:

  • 在本地配置文件中正确配置的 Bauplan API 密钥(默认配置文件)——服务器会自动识别它(见下文的其他身份验证方法);
  • uv(或标准的 pip 管理虚拟环境,见下文);
  • 能够利用 MCP 的 AI 平台,例如 Claude Code、Cursor 或 Claude Desktop。
<aside>

[!WARNING] 不要使用管理员 Bauplan API 密钥:尽管服务器拒绝在 main 上写入,但使用非管理员密钥进行 AI 辅助开发是一个好习惯(请参阅我们的路线图以获取更多关于即将推出的安全功能的详细信息)。

</aside>

启动服务器:

uv sync
uv run python main.py --transport streamable-http

现在,MCP 服务器可在 http://localhost:8000/mcp 访问。您可以在 Claude Code 中配置服务器,如下所示:

claude mcp add -t http mcp-bauplan "<http://localhost:8000/mcp>"

类似的命令可以在 Claude DesktopCursor 上运行,以启用 AI 访问服务器。

就这样!现在您可以开始向您的 AI 提问有关您的数据湖的问题(以及其他更多内容)!

高级配置

客户端提示策略

MCP 客户端在建立与服务器的连接时,可能会或可能不会利用收到的 MCP 指令。因此,我们成功的 Bauplan 实现(如数据工程代理)依赖于客户端被指示如何最好地使用 Bauplan MCP 服务器。我们建议在开始会话(或使用 CLAUDE.md 或等效文件)时,使用一个提示来指导客户端如何最佳地使用服务器。对于一个好的最小示例,您可以从本仓库中的 MCP_CONSTANTS.py 文件中的指令开始,特别是当它们指示模型在规划特定用例时从服务器获取“按需提示”。

Python 设置

您也可以使用标准的 Python 虚拟环境运行 MCP 服务器:

python -m venv venv && source venv/bin/activate
pip install -e .

Bauplan 凭据

Beta 版本涵盖了本地开发用例。与您的 Bauplan 数据湖的身份验证如下:

  • 如果您没有指定 Bauplan 配置文件作为标志(见下文 CLI 选项),则每次与数据湖交互时都会使用运行服务器的机器上的默认配置文件。
  • 如果您指定了一个配置文件作为标志,则在实例化 Bauplan 客户端时将使用此配置文件。
  • 如果您在助手中指定了一个头部 - key=Bauplan,value=your_api_key(例如,在 Claude code 中 claude mcp add -H "Bauplan: <your-bauplan-api-key>" ...)- 则在实例化 Bauplan 客户端时将使用 your_api_key。这对于快速测试非常方便,并且开启了在共享基础设施上托管目录的可能性,将 Bauplan API 密钥管理委托给客户端。

CLI 选项

服务器支持以下 CLI 选项,主要用于指定替代传输选项:

选项默认值描述使用于
--transportstdio传输协议:stdiossestreamable-http所有命令
--host127.0.0.1绑定主机(默认为 localhost)仅限 ssestreamable-http
--port8000绑定端口仅限 ssestreamable-http
--profileNone使用的 Bauplan 配置文件所有命令

注意: 当使用 stdio 传输时,由于其通过 stdin/stdout 通信,--host--port 选项将被忽略。

Claude Desktop

要将 Bauplan MCP 服务器添加到 Claude Desktop,请遵循指南,找到您的 claude_desktop_config.json 文件。

自动配置生成

使用提供的脚本生成具有正确路径的配置:

uv run scripts/generate-config.py

这将输出一个 JSON 配置,所有路径都已正确设置到您的安装目录。复制输出并将其添加到您的 claude_desktop_config.json 文件中。

手动配置

或者,您可以手动添加此配置(根据需要修改路径):

{
  "mcpServers": {
    "mcp-bauplan": {
      "command": "/path/to/bauplan-mcp-server/.venv/bin/python3",
      "args": [
        "/path/to/bauplan-mcp-server/main.py",
        "--transport",
        "stdio"
      ],
      "workingDirectory": "/path/to/bauplan-mcp-server/"
    }
  }
}

退出并重新启动 Claude Desktop。现在,所有 Bauplan 工具都可供您的助手使用,正如这个视频所展示的那样。

MCP 检查器

如果您希望手动测试服务器(需要 Node.js),可以启动MCP 检查器

npx @modelcontextprotocol/inspector

现在,使用适当的变量配置检查器,例如对于 Streamable HTTP:

功能

路线图

Beta 版本暴露了核心 Bauplan 功能,用于数据湖和管道管理:得益于平台的 API 先行性质,经过适当提示的熟练 AI 助手应该已经是一个非常有效的数据湖共驾伙伴,包括数据探索、模式检查、迭代管道等。

Bauplan 平台正在不断演进,新的代理特定命令和细粒度权限即将推出。我们现在正积极改进 MCP 服务器并添加新功能,包括:

  • 对 Bauplan 文档及相关用例的一级支持;
  • 现有 Bauplan 用户的服务器端部署选项;
  • 对 MCP 及其最佳实践的进一步迭代,以提高代码生成(无论是共驾还是代理用例)。

如果您希望看到特定功能,请联系我们!

工具列表

数据操作

  • list_tables:列出分支/命名空间中的所有表
  • get_schema:获取分支/命名空间中所有表的模式
  • get_table:获取特定表的模式(单个表更高效)
  • run_query:执行表上的 SELECT 查询
  • run_query_to_csv:执行 SELECT 查询并将结果直接保存到 CSV 文件(仅限标量数据类型)

分支管理

  • get_branches:列出带有可选过滤器的分支
  • get_commits:从分支获取提交历史
  • create_branch:从引用创建新分支
  • has_branch:检查特定分支是否存在
  • merge_branch:合并带有自定义提交消息的分支
  • delete_branch:删除分支(带有安全检查)

命名空间管理

  • get_namespaces:列出分支中的可用命名空间
  • create_namespace:在分支中创建新命名空间
  • has_namespace:检查分支中特定命名空间是否存在
  • delete_namespace:从分支中删除命名空间

标签管理

  • get_tags:获取带有可选过滤器的标签
  • create_tag:从引用创建新标签
  • has_tag:检查标签是否存在
  • delete_tag:删除标签

表管理

  • create_table:从 S3 位置使用模式检测创建表(创建 ICEBERG 表结构但不填充数据)
  • plan_table_creation:从 S3 位置创建表导入计划(生成带有作业跟踪的 YAML 模式计划)
  • apply_table_creation_plan:应用表创建计划以解决模式冲突(返回 job_id 用于跟踪)
  • has_table:检查特定分支/引用中的特定表是否存在
  • delete_table:从特定分支中删除表
  • import_data:从 S3 位置将数据导入现有表(返回 job_id 用于跟踪)
  • revert_table:从源引用还原表到目标分支,可选替换

项目管理

  • project_run:从指定目录和引用运行 Bauplan 项目,带有可配置参数(干运行、超时、分离模式)
  • code_run:从提供的字典中的代码文件运行 Bauplan 项目(适用于无法提交路径的客户端),自动创建临时目录并验证项目结构

作业管理

  • list_jobs:列出 Bauplan 系统中的作业,带有可选过滤器,适用于所有用户
  • get_job:通过其 ID 获取特定作业的详细信息
  • cancel_job:取消正在运行的作业并通过其 ID 获取更新的作业状态

用户管理

  • get_user_info:获取当前认证用户的详细信息(用户名和全名)

指令和指导

  • get_instructions:获取特定 Bauplan 用例的详细指令(管道、数据、修复、摄入)

许可证

本项目在附带的 MIT 许可证下提供,无任何保证。