← 返回目录
D

Druid MCP Server

社区
用于 Apache Druid 集群管理与分析的综合 MCP 服务器
GitHub 源仓库 ↗
★ 18 Stars 分类 · 数据库 热门 源版本 08cbd4deb172
55FMRS · C

这是由 iunera(Apache Druid 领域的专家)打造的一款精心设计的 MCP 服务器,用于连接 AI 助手与 Druid 集群。它以其丰富的工具集、分功能的 Spring 配置文件以及 streamable HTTP 传输的企业级功能脱颖而出。安全是一个关键特性,默认使用 OAuth2。然而,其运行要求相对苛刻(Java 25,有时需要 Docker),需要非常熟悉连接 Druid 集群的用户才能可靠地管理它。虽然对于生产 Druid 用户来说它是一项巨大的资产,但其复杂性可能让新手望而却步。

可靠性
10/20
安全与权限
8/20
维护活跃度
12/20
文档质量
13/20
安装易用性
12/20
查看 FMRS 评分方法 →

Druid MCP Server 是 iunera 为 Apache Druid 开发的一款功能全面的 Model Context Protocol (MCP) 服务器。它基于 Spring Boot 和 Spring AI 构建,将 AI 助手与 Druid 集群无缝集成。该服务器提供工具、资源和提示,以支持 Druid 集群的管理和数据分析。功能涵盖从基本的数据查询和浏览(例如列出数据源、分段、执行 SQL 查询)到更高级的操作,如摄取管理、主管监控、保留规则、压缩、多阶段查询以及安全/授权管理。支持多种传输模式(STDIO、SSE、streamable HTTP),并可使用 Spring profiles 进行调整,便于在受控环境中使用。

工具能力

getDatasources
列出所有可用的 Apache Druid 数据源,或获取特定数据源的详细模式。
getLookups
获取所有或特定层级的查找配置或状态。
getSegments
获取段元数据或特定段的详细信息。
getSegmentLoadQueue
获取当前正在加载的段的加载队列状态。
queryDruidSql
对 Druid 数据源执行 SQL 查询。
getCompactionConfig
查看压缩配置或数据源的配置更改历史。
getCompactionStatus
获取压缩运行和进度的当前状态。
manageCompaction
添加、更新或删除压缩配置。
manageDatasourceOrSegment
修改段状态或永久删除数据源。
manageLookup
创建、更新或删除查找配置。
queryDruidMultiStage
作为任务对 Druid 数据源执行多阶段 SQL (MSQ) 查询。
queryDruidMultiStageWithContext
使用自定义上下文参数执行多阶段 SQL 查询。
getMultiStageQueryTaskStatus
获取多阶段查询任务的状态。
cancelMultiStageQueryTask
取消正在运行的多阶段查询任务。
getRetentionRules
检索特定数据源或所有数据源的保留规则或审计历史。
manageRetentionRules
更新特定数据源的保留规则配置。
submitIngestion
提交 Druid 摄取规范或生成简单的批量模板。
getSupervisors
列出所有主管节点或查询特定主管节点的详细信息。
manageSupervisor
暂停、恢复或终止主管节点的执行。
getTasks
列出符合特定状态的摄取任务。
getTaskDetails
获取任务的详细信息、规范、执行报告或执行日志。
shutdownTask
终止/关闭 Druid 任务。
getClusterStatus
检查整体健康状况或从协调器或路由器获取特定的元数据/属性。
getNodesStatus
列出注册的服务器、其详细状态或单个节点状态。
diagnoseCluster
执行自动诊断健康检查、配置审计或查询性能分析。
checkFunctionalityHealth
验证摄取系统、主管节点状态转换和历史查询延迟的操作。
manageAuthentication
管理基本安全用户和凭据。
manageAuthorization
管理安全授权属性、角色和资源访问策略。
manageSecurityAssignments
配置将角色分配给用户的映射规则,或检索已配置的身份验证器链。

安装接入

  1. 确保您拥有 Java 25 运行时或 Docker。
  2. 获取一个可访问的 Apache Druid 集群,并记录路由器 URL(默认端口 8888)和可选的协调器 URL(端口 8081)。
  3. 如果使用 Docker,请运行 docker run --rm -i -e DRUID_ROUTER_URL=http://your-druid-router:8888 -e DRUID_COORDINATOR_URL=http://your-druid-coordinator:8081 iunera/druid-mcp-server:latest
  4. 如需 streamable HTTP,请使用配置文件 http 运行,并设置 SPRING_PROFILES_ACTIVE=http,query 以在 http://localhost:8080/mcp 暴露端点。
  5. 根据您的 MCP 客户端配置,使用上面的 JSON 配置示例,并设置必要的环境变量。
claude_desktop_config.json
{
  "mcpServers": {
    "druid-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "DRUID_ROUTER_URL",
        "-e",
        "DRUID_COORDINATOR_URL",
        "-e",
        "DRUID_AUTH_USERNAME",
        "-e",
        "DRUID_AUTH_PASSWORD",
        "-e",
        "DRUID_SSL_ENABLED",
        "-e",
        "DRUID_SSL_SKIP_VERIFICATION",
        "iunera/druid-mcp-server:latest"
      ],
      "env": {
        "DRUID_ROUTER_URL": "http://host.docker.internal:8888",
        "DRUID_COORDINATOR_URL": "http://host.docker.internal:8081",
        "DRUID_AUTH_USERNAME": "",
        "DRUID_AUTH_PASSWORD": "",
        "DRUID_SSL_ENABLED": "false",
        "DRUID_SSL_SKIP_VERIFICATION": "true"
      }
    }
  }
}

选型与风险

适合谁

  • 数据分析师和数据工程师希望使用 Claude、ChatGPT 或 Gemini 等 AI 助手以自然语言查询和探索 Apache Druid 数据。
  • 希望自动化或简化 Druid 集群管理任务(如监视任务、压缩、保留规则和摄取)的团队。
  • 使用受支持传输方式(STDIO、streamable HTTP)集成 MCP 的开发人员,寻求与 Druid 交互的标准 '即取即用' 服务器。
  • 希望在本地桌面应用(如 Ypipe)中实现对话式数据界面的用户。

不适合谁

  • 不适用于对延迟敏感的实时数据操作,其中 MCP 会话开销可能无法接受。
  • 不适用于无头、非交互式场景,其中 MCP 协议抽象是不必要的。
  • 不适用于需要深度、自定义 Druid API 功能或尚未通过 MCP 暴露的复杂工作流的用户。
  • 不适用于寻找与云托管服务(如 Imply Polaris)互操作的服务器。

所需权限

  • 必须通过环境变量提供 Druid 路由器(必需的)和协调器(推荐的)的 URL。
  • 可选地提供 Druid 用户名和密码以通过 HTTP 基本身份验证进行身份验证。
  • 对于 HTTP 传输,默认启用 OAuth2,要求客户端提供有效的 Bearer 令牌。
  • 管理操作需要合适的权限,这取决于激活的 Spring 配置文件(例如 `ops`、`permissions`、`health`)。
  • 根据查询范围读取对 Druid 系统表/目录和数据访问的权限。

风险与副作用

  • 当激活 `ops` 配置文件和令牌被泄露时,可能存在无意的数据删除或修改风险,因为 `manageDatasourceOrSegment` 允许永久删除数据源。
  • 使用未经验证的 SSL 证书(`DRUID_SSL_SKIP_VERIFICATION=true`)可能会使连接遭受中间人攻击。
  • 向 AI 助手暴露敏感集群元数据和查询结果可能导致数据泄露。
  • 在获得足够权限的情况下,`permissions` 工具可以修改用户、角色和授权策略。
  • 由于工具采用按需激活模式,如果未正确激活所需的 Spring 配置文件,可能存在配置错误的操作。

常见排障

  1. 检查环境变量:确认 `DRUID_ROUTER_URL` 设置了正确的协议(http/https)和端口。
  2. 验证 Druid 集群是否正在运行并且路由器端点从 MCP 服务器的环境可访问。
  3. 对于 HTTP 模式,确保您激活了 `http` Spring 配置文件(`SPRING_PROFILES_ACTIVE=http,...`),否则服务器可能在 STDIO 模式下运行并不监听端口。
  4. 对于 HTTP 模式,需要身份验证时,请确保您的 MCP 客户端配置了有效的 OAuth2 令牌或禁用 `DRUID_MCP_SECURITY_OAUTH2_ENABLED=false`(对于测试)。
  5. 如果您看不到预期的某些工具,请检查启用的 Spring 配置文件;例如,在配置文件 `ops` 下启用 `getTasks`,而在 `query` 下仅提供安全只读工具。

使用场景

使用自然语言查询对 Apache Druid 进行时间序列数据探索
通过 AI 助手管理和监控 Druid 集群任务、主管节点和压缩
通过 AI 助手进行 SQL 查询优化和性能分析
通过 AI 助手以受控方式进行数据摄取管理
在本地桌面应用(如 Ypipe)中实现无缝的对话式数据接口

支持客户端

Claude Desktop完整支持
Generic MCP Client完整支持