← 返回目录
D

Druid MCP Server

社区
用于 Apache Druid 集群管理与分析的综合 MCP 服务器
分类
数据库 第 31 / 58
Stars
★ 18 热门
传输方式
stdio(本地进程) · Streamable HTTP · SSE
运行环境
Docker · Java 25
凭据
可选 API Key
许可证
Apache-2.0
最近提交
工具数
29
55FMRS · C

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

最强项 · 文档质量 13/20 最弱项 · 安全与权限 8/20

可靠性
10/20
安全与权限
8/20
维护活跃度
12/20
文档质量
13/20
安装易用性
12/20
查看各项评分依据
可靠性 10/20
README 详细列出了按 Spring profile 组织的工具表及其对应 Druid API 端点,工具参数定义清晰,错误处理被声明。但仓库未提供可验证的 CI 工作流或已提交的测试证据(静态审阅无执行证据,按规则不超过 12)。且存在版本矛盾:manifest 为 2.0.1,README 中 JAR 名与 Docker 示例均为 2.0.0,docker run args 引用 :latest 而 identifier 为 :2.0.1,说明声明与实际行为可能不一致。扣分:无测试/CI 证据、版本不一致。
安全与权限 8/20
凭据通过环境变量传递并在 manifest 中正确标记 DRUID_AUTH_PASSWORD 为 isSecret,OAuth2 默认开启,HTTP 传输有 Origin 校验声明,permissions profile 有双条件门控,这些是亮点。但存在多项扣分:(1) KILL_DATASOURCE、shutdownTask、TERMINATE supervisor 等不可逆破坏性操作默认无需用户确认机制;(2) 提供 DRUID_SSL_SKIP_VERIFICATION 跳过证书校验选项;(3) 默认开启匿名遥测需手动 opt-out;(4) 允许配置密码为明文/系统属性传递。未发现恶意行为或凭据窃取,不触发红线(0-4 区间不适用),但因缺少破坏性操作确认与数据流最小化设计,扣至 8。
维护活跃度 12/20
Apache-2.0 许可明确,包发布到 Maven Central 和 Docker Hub,版本持续迭代(已至 2.x),作者 iunera 为公司主体,提供咨询联系方式和 roadmap,未归档、issues 为 0。但缺少可见的安全响应策略(SECURITY.md)、依赖更新机制与治理文档的证据,stars 仅 16,社区信号弱。扣分:安全响应渠道与依赖管理证据缺失。
文档质量 13/20
README 极为详尽:安装、Maven Central 下载、Docker 示例、SSL/认证配置、全量环境变量表、按 profile 的工具/资源/prompt 参数表、prompt 自定义、metrics opt-out 均有覆盖,并分层链接 development.md 和示例目录。扣分:版本号(2.0.0 vs 2.0.1)与镜像 tag(latest)不一致造成混淆,工具的实际限制、查询成本、故障排查内容较薄。
安装易用性 12/20
提供三种传输方式(STDIO/HTTP/Ypipe)的完整配置示例,mcp-servers-config. 就绪,环境变量通过 docker -e 透传设计简洁,主流客户端可直接套用。前提(Java 25、Maven 3.6+、Druid 集群)明确,并附带本地集群安装器降低依赖门槛。但无 CI/测试执行证据(按规则不超过 15),Java 25 前置对部分用户偏新,且配置示例中默认 DRUID_SSL_SKIP_VERIFICATION=true 与安全建议矛盾。

静态评测 · 未实际运行收录于 2026-09-08

查看 FMRS 评分方法 →

选型与风险

能访问什么访问网络连接数据库

适合谁

  • 数据分析师和数据工程师希望使用 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 配置文件,可能存在配置错误的操作。

安装接入

准备工作

运行环境:Docker · Java 25

DRUID_ROUTER_URL 必填 Druid Router 节点的连接地址(如 http://host.docker.internal:8888),必填。
DRUID_AUTH_PASSWORD 可选密钥 Druid HTTP Basic 认证密码,属于敏感信息,选填。
其他可选配置项(8 个)
DRUID_COORDINATOR_URL 可选 Druid Coordinator 节点地址,用于元数据端点,选填。
DRUID_AUTH_USERNAME 可选 Druid HTTP Basic 认证用户名,选填。
DRUID_SSL_ENABLED 可选 是否启用 SSL/TLS 连接 Druid 集群(true/false)。
DRUID_SSL_SKIP_VERIFICATION 可选 是否跳过 SSL 证书校验,仅建议开发/测试环境使用。
SPRING_PROFILES_ACTIVE 可选 激活的 Spring profile 列表(query、ops、permissions、health 或 http),决定启用哪些工具和传输方式。
DRUID_MCP_SECURITY_OAUTH2_ENABLED 可选 是否为 HTTP 传输启用 OAuth2 客户端认证,默认 true。
DRUID_MCP_SQL_SYNTAX_CORRECTION_ENABLED 可选 是否启用自动 SQL 语法修正,默认 true。
DRUID_MCP_SQL_SYNTAX_CORRECTION_CACHE_TTL_MS 可选 表和列元数据缓存的 TTL 毫秒数,默认 300000。
  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 Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "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"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add druid-mcp-server -e DRUID_ROUTER_URL=http://host.docker.internal:8888 -e DRUID_COORDINATOR_URL=http://host.docker.internal:8081 -e DRUID_AUTH_USERNAME= -e DRUID_AUTH_PASSWORD= -e DRUID_SSL_ENABLED=false -e DRUID_SSL_SKIP_VERIFICATION=true -- docker 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

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

启动 Docker 容器后在 MCP 客户端工具列表中确认出现 getDatasources 和 queryDruidSql 等工具,然后调用 getDatasources,若能返回数据源列表说明连接成功。

常见排障

  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` 下仅提供安全只读工具。

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 列出 Druid 集群中所有可用的数据源,并显示每个数据源的详细 schema。
  • 对 sales_data 数据源执行这条 SQL 查询:SELECT * FROM sales_data LIMIT 10。
  • 检查集群的整体健康状态,并诊断是否存在性能问题。
  • 为 datasource 数据源配置段压缩(compaction)。

工具能力 29

getDatasources 只读
列出所有可用的 Apache Druid 数据源,或获取特定数据源的详细模式。
getLookups 只读
获取所有或特定层级的查找配置或状态。
getSegments 只读
获取段元数据或特定段的详细信息。
getSegmentLoadQueue 只读
获取当前正在加载的段的加载队列状态。
queryDruidSql 只读
对 Druid 数据源执行 SQL 查询。
getCompactionConfig 只读
查看压缩配置或数据源的配置更改历史。
getCompactionStatus 只读
获取压缩运行和进度的当前状态。
manageCompaction 写入
添加、更新或删除压缩配置。
展开其余 21 个工具
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 写入
配置将角色分配给用户的映射规则,或检索已配置的身份验证器链。

使用场景

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

支持客户端

Claude Desktop
Generic MCP Client

依据项目文档列出,未经本站实测。

详细介绍

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

同类可选方案

源版本 08cbd4deb172 数据同步于 2026-10-19 查看 FMRS 评分方法