LakeFlow MCP 后端服务器
以下为使用说明,按步骤帮助你快速理解、安装与使用该 MCP 服务器。
项目简介
- 该仓库实现了一个基于 MCP 的后端服务,核心通过 mcp.server.fastmcp 将函数注册为可被客户端调用的“工具”。这些工具主要围绕将 Databricks 作业打包、上传、触发执行、查询日志等能力进行封装,方便 AI 客户端通过统一的 MCP 接口来访问云端作业能力。
- 服务器与 Databricks 的交互通过 Databricks Python SDK 实现,包含创建作业、上传 wheel、触发运行、获取日志、列出任务等功能。
主要功能点
- MCP 工具注册与命令行暴露:通过装饰器注册函数,使其既可作为 MCP 工具被远程调用,也可作为本地 CLI 命令执行。
- Wheel 构建与上传:支持将本地包打包为 wheel,并上传至 Databricks 工作区。
- Databricks 作业管理:创建作业、配置自动扩缩、注入密钥环境变量、执行任务、查看日志、列出作业运行信息等。
- 安全信息管理:通过 Databricks Secrets 将敏感信息在作业中以安全方式传递。
- 简易的 CLI 与 MCP 服务并存:可以本地通过 CLI 调用,也能通过 MCP 客户端进行远程调用。
安装步骤
- 安装依赖
- 需要 Python 环境,以及 Databricks SDK、Typer 等依赖(具体在 pyproject.toml 中定义)。
- 获取源码
- 将仓库克隆到本地或服务器上。
- 配置环境变量(Databricks 访问)
- 设置 DATABRICKS_HOST、DATABRICKS_TOKEN 等必要的 Databricks 访问信息。
- 启动 MCP 服务器
- 直接运行 lakeflow.py;当直接运行时,若没有传入参数,脚本会启动 MCP 服务器供客户端连接。
- 也可以在 MCP 客户端配置中指定启动命令来让 MCP 自动连接该服务器(见下文“服务器配置”示例)。
服务器配置
以下 JSON 配置示例用于 MCP 客户端对接服务器。请将/path/to/lakeflow-mcp 替换为实际的仓库路径,将 DATABRICKS_HOST/ DATABRICKS_TOKEN 替换为实际的 Databricks 主机与访问令牌。
{ "mcpServers": { "lakeflow": { "command": "uv", "args": [ "run", "--quiet", "--directory", "/path/to/lakeflow-mcp", "python", "lakeflow.py" ], "env": { "DATABRICKS_HOST": "<你的 Databricks 主机地址>", "DATABRICKS_TOKEN": "<你的 Databricks 访问令牌>" } } } }
注释与要点:
- 该配置用于让 MCP 客户端知道如何启动 LakeFlow 的 MCP 服务。command 和 args 指定了如何执行 lakeflow.py,使其以 MCP 服务模式运行。
- 将目录路径 /path/to/lakeflow-mcp 替换为实际仓库路径。
- 环境变量中需要提供对 Databricks 的访问凭证,确保服务器能够调用 Databricks 的 API。
- MCP 客户端并不需要理解内部实现细节,只需知道服务器启动命令和必要参数即可建立连接。
基本使用方法
- 启动方式
- 在命令行直接运行 lakeflow.py,即可启动 MCP 服务,等待来自客户端的请求。
- 客户端操作
- 客户端通过 MCP 协议向服务器发送请求,对应的工具会执行相应的 Databricks 作业管理操作(创建、触发、查询、获取日志等)。
- 本地对接测试
- 可以通过本地脚本或测试用例调用 lakeflow.py 提供的函数(如 create_job_from_source、trigger_run、list_job_runs、get_run_logs)来验证功能。
运行与调试注意
- 运行前请确保 Databricks 环境可访问,且环境变量已正确设置(主机、令牌、权限等)。
- 由于涉及云端作业与密钥管理,确保在测试环境中使用受控的测试包与作业配置,避免产生实际成本。