项目简介
Genie MCP Server 是一个异步服务器,实现了 Model Context Protocol (MCP) 规范,旨在连接大型语言模型 (LLM) 客户端与 Databricks Genie。它允许 LLM 通过标准化的协议调用 Databricks Genie 的查询能力,并获取相关数据或文本回复。
主要功能点
- MCP 工具集成: 提供符合 MCP 协议的工具 (Tools),允许 LLM 调用 Databricks Genie 的查询能力,向其发送问题并获取结构化或非结构化的回复。
- MCP 资源管理: 管理和提供 Agent 卡片等资源 (Resources),为 LLM 提供额外的上下文信息,例如关于特定 Agent 或功能的描述。
- 异步 API 服务: 使用 Starlette 和 Uvicorn 构建高性能的异步 Web 服务。
- Databricks 集成: 与 Databricks Genie API 深度集成,支持对话式查询。
- 自动令牌管理: 自动管理 Databricks OAuth 令牌的获取和刷新,确保安全可靠的 API 调用。
- 可部署性: 设计为可轻松部署到 Databricks 应用环境。
安装步骤
- 克隆仓库: 将项目代码克隆到本地或 Databricks Workspace 中:
git clone https://github.com/vivian-xie-db/genie_mcp_server.git cd genie_mcp_server - 安装依赖: 安装项目所需的 Python 依赖:
pip install -r requirements.txt - 配置环境变量:
- 创建或编辑 '.env' 文件,或设置环境变量来配置 Databricks 连接信息和 Genie Space ID。
- 需要配置 'DATABRICKS_HOST', 'DATABRICKS_CLIENT_ID', 'DATABRICKS_CLIENT_SECRET', 和 'SPACE_ID'。
- 示例 '.env' 文件内容:
DATABRICKS_HOST=your_databricks_host DATABRICKS_CLIENT_ID=your_client_id DATABRICKS_CLIENT_SECRET=your_client_secret SPACE_ID=your_genie_space_id DATABRICKS_APP_PORT=8000 # Optional, default is 8000
服务器配置(供 MCP 客户端参考)
MCP 客户端需要知道如何启动或连接到 MCP 服务器进程。对于此项目,服务器的名称是 'genie-mcp-server',启动命令及其参数如下:
- 服务器名称: 'genie-mcp-server' (这是服务器在 MCP 协议中声明的唯一标识符)
- 启动命令 (command): 'python' (用于执行 Python 脚本的命令)
- 启动参数 (args): '["mcp_server.py"]' (传递给 'python' 命令的脚本文件路径)
(注意:实际的 MCP 客户端配置可能还需要包含传输协议相关的参数,例如如果是通过 HTTP 连接,需要配置服务器的 URL。这里的 command 和 args 描述的是启动服务器进程本身的方式,常用于 Stdio 等传输协议。)
基本使用方法
项目启动后,它会监听配置的端口(默认为 8000)提供 '/api/mcp' 路径的 MCP Streamable HTTP 服务。
- 启动服务器: 在项目根目录执行(需要先设置好环境变量):
或者如果作为 Databricks App 部署,则按部署指南操作。uvicorn mcp_server:starlette_app --host 0.0.0.0 --port $DATABRICKS_APP_PORT - 与 MCP 客户端交互: LLM 客户端(兼容 MCP Streamable HTTP 协议)可以通过配置连接到此服务器的地址和端口 ('/api/mcp' 路径)。
- 调用工具: LLM 客户端可以发现并调用名为 'genie-query' 的工具,提供一个包含 'query' 键值对的 JSON 对象作为参数,向 Databricks Genie 发送问题。
{ "name": "genie-query", "arguments": { "query": "你的查询问题,例如:展示过去一个月的销售数据" } } - 访问资源: LLM 客户端可以列出 ('list_resources') 并读取 ('read_resource') 服务器提供的 Agent 卡片资源,这些资源通常包含关于 Agent 能力或配置的 JSON 信息。
通过以上步骤,LLM 客户端即可利用此 MCP 服务器与 Databricks Genie 进行高效的交互。
信息
分类
AI与计算