项目简介
该仓库提供了一个基于 Model Context Protocol (MCP) 的服务器实现,旨在简化大型语言模型 (LLM) 与 Dremio 的集成。通过遵循 MCP 标准,它允许支持 MCP 协议的 LLM 客户端(如 Claude Desktop)安全、高效地访问 Dremio 中的数据资源、执行查询以及利用 Dremio 相关的自动化工具。
主要功能点
- Dremio 数据与功能集成: 作为 LLM 与 Dremio 之间的桥梁,将 Dremio 的数据访问和管理能力封装为 LLM 可调用的工具和资源。
- 提供标准化工具 (Tools): 注册并执行 Dremio 相关的自动化任务,例如:
- 运行 SQL 查询获取数据。
- 获取表或视图的 Schema 信息。
- 获取表或视图的 Lineage(血缘)信息。
- 执行 Dremio 集群相关的分析(如查询失败详情、引擎使用报告)。
- (可选)访问 Prometheus 监控指标。
- 托管数据资源 (Resources): 以结构化方式向 LLM 暴露 Dremio 中的数据概念或元数据,例如提供 Dremio 系统表的描述或可用于分析的提示信息。
- 定义 Prompt 模板 (Prompts): 提供针对 Dremio 集成优化的系统 Prompt,指导 LLM 如何更好地利用可用的工具和资源与 Dremio 交互。
- 支持 MCP 协议通信: 通过标准的 JSON-RPC 协议与 MCP 客户端通信,接收指令并返回结果。
安装步骤
- 克隆或下载本仓库到本地机器。
- 确保已安装 Python 3.11 或更高版本。
- 安装 'uv' 包管理器(如果尚未安装)。
- 进入仓库根目录。
- 运行以下命令进行基本验证:
确认能看到命令帮助信息。uv run dremio-mcp-server --help
服务器配置
MCP 服务器需要通过配置文件连接 Dremio,LLM 客户端需要配置如何启动和连接该服务器。
-
MCP 服务器配置 ('config.yaml'): 此文件默认位于 '$HOME/.config/dremioai/config.yaml'。您可以使用命令行工具创建:
# 使用 uv 运行命令 uv run dremio-mcp-server config create dremioai \ --uri <您的 Dremio URI> \ --pat <您的 Dremio PAT> \ # 如果是 Dremio Cloud,可能还需要 --project-id <您的项目 ID> # --mode FOR_DATA_PATTERNS,FOR_SELF # 可选:指定服务器模式,默认为 FOR_DATA_PATTERNS # --enable-experimental # 可选:启用实验性工具 # --oauth-client-id <您的 OAuth 应用 ID> # 可选:配置 OAuth2 登录或者手动创建编辑 YAML 文件,示例如下:
# config.yaml dremio: uri: https://<您的 Dremio 地址> # Dremio 连接地址 pat: <您的 PAT> # Dremio 个人访问令牌,也可以使用 @ 文件路径的方式引用 # project_id: <您的 Dremio Cloud 项目 ID> # 如果是 Dremio Cloud 则需要 # enable_experimental: false # 是否启用实验性工具 # oauth2: # 可选:OAuth2 配置 # client_id: <您的 OAuth 应用 ID> # # refresh_token: <刷新令牌> # 登录后自动更新 # # dremio_user_identifier: <用户标识符> # 登录后自动更新 # # expiry: <令牌过期时间> # 登录后自动更新 tools: server_mode: FOR_DATA_PATTERNS # 服务器模式,可选值及其组合:FOR_SELF, FOR_PROMETHEUS, FOR_DATA_PATTERNS, EXPERIMENTAL # prometheus: # 可选:Prometheus 配置 # uri: <Prometheus URI> # token: <Prometheus Token>根据您的 Dremio 环境和需求修改此文件。
-
LLM 客户端配置 (如 Claude Desktop): 编辑 Claude Desktop 的配置文件(macOS: '~/Library/Application Support/Claude/claude_desktop_config.json',Windows: '%APPDATA%\Claude\claude_desktop_config.json')。 在 JSON 文件中找到或添加 'mcpServers' 部分,并添加一个条目来配置 Dremio MCP 服务器。配置内容指示客户端如何启动服务器进程:
{ // ... 其他配置 "mcpServers": { "Dremio": { // 服务器名称,显示在客户端界面 "command": "<uv 可执行文件路径>", // 启动服务器的命令,通常是 uv "args": [ // 传递给 command 的参数 "run", "--directory", "<您的 dremio-mcp 仓库路径>", // 指向您克隆仓库的根目录 "dremio-mcp-server", "run" // 运行 MCP 服务器主程序 // 可选:如果您的 config.yaml 不在默认位置,添加 "--cfg", "<您的 config.yaml 文件路径>" ] } // ... 其他 MCP 服务器配置 } // ... 其他配置 }请将 '<uv 可执行文件路径>' 和 '<您的 dremio-mcp 仓库路径>' 替换为您系统上的实际路径。
基本使用方法
完成安装和配置后:
- 启动您的 LLM 客户端(如 Claude Desktop)。
- 根据客户端界面提示,选择或启用配置好的 "Dremio" MCP 服务器。客户端会自动按照配置的 'command' 和 'args' 启动 Dremio MCP 服务器进程。
- 一旦服务器启动并与 Dremio 建立连接(可能需要输入 Dremio 凭证或进行 OAuth 登录),您就可以在 LLM 客户端中通过对话等方式使用 Dremio 相关的工具和访问 Dremio 数据了。尝试向 LLM 提问关于 Dremio 数据、表结构或集群使用情况的问题。
信息
分类
AI与计算