使用自然语言命令通过 Bauplan MCP 服务器管理您的 Bauplan 数据湖。
[!NOTE] 该服务器现处于 Beta 版本并采用 MIT 许可证发布,但 API 和功能可能会在我们继续开发过程中未经通知地进行更改。
Bauplan 模型上下文协议(MCP)服务器是一个开源库,它为 AI 助手提供了访问 Bauplan 数据湖功能的能力,包括查询表、模式检查、数据分支管理以及运行管道。
当前版本的主要用途是帮助本地开发,通过提供对您的 Bauplan 数据湖的访问来支持像 Claude Code 或 Claude Desktop 这样的 AI 助手。
我们预计在未来不久会将其推广到服务器端部署,可能由 Bauplan 直接托管:敬请关注!
要了解如何充分利用 MCP 服务器,请参阅我们的视频演示。如果您有任何初步问题或反馈,请联系我们!
您可以在一分钟内使用现有的 AI 助手开始:一个使用 Claude Desktop 和 Claude Code 的视频设置也可供参考这里。
您需要:
pip 管理虚拟环境,见下文);</aside>[!WARNING] 不要使用管理员 Bauplan API 密钥:尽管服务器拒绝在
main上写入,但使用非管理员密钥进行 AI 辅助开发是一个好习惯(请参阅我们的路线图以获取更多关于即将推出的安全功能的详细信息)。
启动服务器:
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 Desktop 或 Cursor 上运行,以启用 AI 访问服务器。
就这样!现在您可以开始向您的 AI 提问有关您的数据湖的问题(以及其他更多内容)!
MCP 客户端在建立与服务器的连接时,可能会或可能不会利用收到的 MCP 指令。因此,我们成功的 Bauplan 实现(如数据工程代理)依赖于客户端被指示如何最好地使用 Bauplan MCP 服务器。我们建议在开始会话(或使用 CLAUDE.md 或等效文件)时,使用一个提示来指导客户端如何最佳地使用服务器。对于一个好的最小示例,您可以从本仓库中的 MCP_CONSTANTS.py 文件中的指令开始,特别是当它们指示模型在规划特定用例时从服务器获取“按需提示”。
您也可以使用标准的 Python 虚拟环境运行 MCP 服务器:
python -m venv venv && source venv/bin/activate
pip install -e .
Beta 版本涵盖了本地开发用例。与您的 Bauplan 数据湖的身份验证如下:
Bauplan,value=your_api_key(例如,在 Claude code 中 claude mcp add -H "Bauplan: <your-bauplan-api-key>" ...)- 则在实例化 Bauplan 客户端时将使用 your_api_key。这对于快速测试非常方便,并且开启了在共享基础设施上托管目录的可能性,将 Bauplan API 密钥管理委托给客户端。服务器支持以下 CLI 选项,主要用于指定替代传输选项:
| 选项 | 默认值 | 描述 | 使用于 |
|---|---|---|---|
--transport | stdio | 传输协议:stdio、sse 或 streamable-http | 所有命令 |
--host | 127.0.0.1 | 绑定主机(默认为 localhost) | 仅限 sse、streamable-http |
--port | 8000 | 绑定端口 | 仅限 sse、streamable-http |
--profile | None | 使用的 Bauplan 配置文件 | 所有命令 |
注意: 当使用 stdio 传输时,由于其通过 stdin/stdout 通信,--host 和 --port 选项将被忽略。
要将 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 工具都可供您的助手使用,正如这个视频所展示的那样。
如果您希望手动测试服务器(需要 Node.js),可以启动MCP 检查器:
npx @modelcontextprotocol/inspector
现在,使用适当的变量配置检查器,例如对于 Streamable HTTP:
Beta 版本暴露了核心 Bauplan 功能,用于数据湖和管道管理:得益于平台的 API 先行性质,经过适当提示的熟练 AI 助手应该已经是一个非常有效的数据湖共驾伙伴,包括数据探索、模式检查、迭代管道等。
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 许可证下提供,无任何保证。