BERDL数据湖MCP服务器

一种基于FastAPI的服务,使AI助手能够通过Spark与存储在MinIO中的Delta Lake表进行交互,实现自然语言数据操作的模型上下文协议(MCP)。
⚠️ 重要警告: 此服务允许任意 read-oriented 对Delta Lake表执行的查询。除非您在本地托管模型,否则查询结果将发送到模型宿主服务器。❌ 此外,这项服务是 非 批准部署到任何生产环境,包括CI,直到KBase领导层明确批准。仅限于当地开发或评估目的。
文档
指南
用户指南 -设置和使用MCP服务器的完整文档:
克劳德代码指南 -使用BERDL MCP服务器和Claude Code CLI:
- 将Claude Code连接到BERDL数据湖
- 使用自然语言查询您的Delta Lake表
- 逐步设置和故障排除
- 最佳实践和示例查询
快速开始
选项A:使用预构建图像(推荐)
- 克隆存储库:
git clone https://github.com/BERDataLakehouse/datalake-mcp-server.git
cd datalake-mcp-server- 编辑
docker-compose.yaml:
- 全部取消注释 image: 和 platform: 线条 - 全部评论 build: 章节
- 启动服务:
docker compose up -d选项B:从源代码构建(适用于开发人员)
- 克隆所需的存储库:
# Clone at the same directory level as datalake-mcp-server
cd ..
git clone https://github.com/BERDataLakehouse/spark_notebook_base.git
git clone https://github.com/BERDataLakehouse/kube_spark_manager_image.git
git clone https://github.com/BERDataLakehouse/hive_metastore.git
cd datalake-mcp-server- 构建基础映像:
cd ../spark_notebook_base
docker build -t spark_notebook_base:local .
cd ../datalake-mcp-server- 确保
docker-compose.yaml有build:未注释的部分(默认)
- 启动服务:
docker compose up -d --build访问服务
- MCP服务器API: http://localhost:8000/apis/mcp/docs
- MCP服务器根目录: http://localhost:8000/docs
- MinIO控制台: http://localhost:9003(凭据:minio/minio123)
- Spark主用户界面: http://localhost:8090
- PostgreSQL:本地主机:5432(凭据:hive/hivepassword)
备注:MCP服务器安装在 /apis/mcp 默认情况下。集 SERVICE_ROOT_PATH="" 环境变量在根上服务。
认证
该服务使用KBase身份验证和基于角色的访问控制:
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
KBASE_AUTH_URL | 没有 | https://ci.kbase.us/services/auth/ | KBase身份验证服务URL |
KBASE_ADMIN_ROLES | 没有 | KBASE_ADMIN | 具有完全管理员权限的KBase角色列表,以逗号分隔 |
KBASE_REQUIRED_ROLES | 没有 | BERDL_USER | 以逗号分隔的身份验证所需的KBase角色列表。用户必须具有所有这些角色 |
测试
# Install dependencies (only required on first run or when the uv.lock file changes)
uv sync --locked
# Run tests
PYTHONPATH=. uv run pytest tests
# Run with coverage
PYTHONPATH=. uv run pytest --cov=src tests/