mcpField
A
Apache Druid MCP Server For Enterprises

Apache Druid MCP Server For Enterprises

本地服务
github.com/iunera数据库188 周前更新

关于 Apache Druid MCP Server For Enterprises

Apache Druid MCP Server For Enterprises 为 Apache Druid 集群提供 MCP 接口,供数据分析和集群管理场景使用。它通过配置档案启用查询或运维工具,并支持多种传输方式及 OAuth 2.0。

主要功能

  1. 01查询 SQL 并浏览数据源
  2. 02查看段、查找表和加载队列
  3. 03管理摄取任务与集群运维
  4. 04提供资源和可定制提示词
  5. 05支持 STDIO、SSE 和 Streamable HTTP

适用场景

  1. 01用自然语言探索时间序列数据
  2. 02检查 Druid 数据源和段状态
  3. 03通过 MCP 客户端管理摄取任务

MCP 相关

该 MCP 服务向客户端提供 Druid 查询与管理工具、数据资源和提示词。支持 STDIO、SSE、Streamable HTTP;HTTP 与 SSE 默认启用 OAuth 2.0。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"druid": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-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",
"docker.io/iunera/druid-mcp-server:2.0.1"
],
"env": {
"DRUID_ROUTER_URL": "<DRUID_ROUTER_URL>",
"DRUID_COORDINATOR_URL": "<DRUID_COORDINATOR_URL>",
"DRUID_AUTH_USERNAME": "<DRUID_AUTH_USERNAME>",
"DRUID_AUTH_PASSWORD": "<DRUID_AUTH_PASSWORD>",
"DRUID_SSL_ENABLED": "<DRUID_SSL_ENABLED>",
"DRUID_SSL_SKIP_VERIFICATION": "<DRUID_SSL_SKIP_VERIFICATION>"
}
}
}
}
启动命令docker run -i --rm -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 docker.io/iunera/druid-mcp-server:2.0.1
需要配置的环境变量
DRUID_ROUTER_URLDruid router URL for connecting to the Druid cluster
DRUID_COORDINATOR_URLDruid coordinator URL for querying metadata endpoints (optional)
DRUID_AUTH_USERNAME密钥Username for Druid authentication (optional)
DRUID_AUTH_PASSWORD密钥Password for Druid authentication (optional)
DRUID_SSL_ENABLEDEnable SSL/TLS support for Druid connections
DRUID_SSL_SKIP_VERIFICATIONSkip SSL certificate verification (for development/testing only)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocidocker.io/iunera/druid-mcp-server:2.0.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Druid MCP 服务

信任评分

面向 Apache Druid 的综合性模型上下文协议(MCP)服务,提供丰富的工具、资源和提示词,用于管理和分析 Druid 集群。

由 iunera 开发——提供先进的 AI 和数据分析解决方案

概述

该 MCP 服务采用意图导向架构,配置文件会描述其使用意图以及相应的 Druid 使用领域。该服务提供三种主要类型的 MCP 组件:

  • 工具——用于执行操作的可执行函数
  • 资源——用于访问信息的数据提供方
  • 提示词——AI 辅助指导模板

视频演示

了解如何使用 MCP 服务将 AI Agent 与 Apache Druid 集成。本教程演示如何使用自然语言,通过 Claude、ChatGPT 和 Gemini 等 AI 助手探索时间序列数据、进行统计分析和摄取数据。

AI 强化时间序列:Apache Druid Enterprise MCP 服务教程

点击上方缩略图,在 YouTube 上观看视频

🌊 Y̊pipe:面向 Druid 的 AI 驱动 UI

通过 Y̊pipe(前身为 Data-Philter) 以前所未有的方式体验数据。这是一款由 iunera 设计的本地桌面应用,让离线 AI 实用易用。它利用此 Druid MCP 服务,为你的 Druid 集群提供流畅的对话式界面。

  • **自然语言查询:**用通俗的英语提问,即可即时获取结果。
  • **本地且安全:**完全在本地运行,支持离线模型(CPU/GPU)。
  • **即插即用:**开箱即用,适配 Development Druid Installation。

Ypipe

在 GitHub 上获取 Ypipe →

测试 iunera/druid-mcp-server 最简单的方法是使用 ypipe.com / https://github.com/iunera/ypipe

📋 Ypipe 集成蓝图

为实现无缝集成,我们提供了预定义的 Ypipe 集成蓝图文件:

通过此蓝图,你可以在 Ypipe 中通过可视化工作区轻松连接并配置 Druid MCP 服务。

Ypipe 工作区流程Druid 节点配置
Ypipe 工作区流程Ypipe Druid 节点

功能

  • 纯 Java
  • 集成 Spring AI MCP Server
  • 基于工具的架构,符合 MCP 协议规范
  • 基于工具的架构:完全符合 MCP 协议规范,并支持自动生成 JSON 架构
  • 多种传输模式:支持 STDIO、SSE 和 Streamable HTTP,包括 Oauth
  • 实时通信:支持流式传输的服务器发送事件
  • 全面的错误处理
  • 可自定义的提示词模板:提供 AI 辅助指导,并支持自定义模板
  • 全面的错误处理:以优雅的方式处理错误并返回有意义的响应
  • 企业就绪:提供生产级配置和安全功能
MCP Inspector 界面

连接到 MCP 客户端后,你可以通过 MCP Inspector 界面检查可用的工具、资源和提示词:

可用工具

MCP Inspector - 工具

工具界面展示了所有可用的 Druid 管理功能,并按功能领域分类,包括数据管理、摄取管理以及监控与健康状况。

可用资源

MCP Inspector - 资源

资源界面显示通过 MCP 协议可检索的所有 Druid 数据源和元数据。

可用提示词

MCP Inspector - 提示词

提示词界面显示适用于各种 Druid 管理任务和数据分析工作流的所有 AI 辅助指导模板。

快速开始

面向大模型的 MCP 配置

我们提供了可直接使用的 MCP 配置文件 mcp-servers-config.json,可与大模型客户端配合使用,以连接此 Druid MCP 服务。

示例

此配置包含多种集成和传输选项:

使用环境变量的 Docker 示例:
# STDIO mode (default)
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

# HTTP mode (enable profile 'http' and expose /mcp)
docker run -p 8080:8080 \
  -e SPRING_PROFILES_ACTIVE=http,query \
  -e DRUID_ROUTER_URL=http://your-druid-router:8888 \
  -e DRUID_COORDINATOR_URL=http://your-druid-coordinator:8081 \
  iunera/druid-mcp-server:latest

关于 Spring 配置文件的说明:

  • 默认配置文件:stdio,query
  • HTTP 配置文件:设置 SPRING_PROFILES_ACTIVE=http,query,以在 /mcp 启用 Streamable HTTP
先决条件
  • Java 25
  • Maven 3.6+
  • Apache Druid 集群正在运行,且 Router 使用端口 8888
构建和运行
# Build the application
mvn clean package -DskipTests

# Run the application
java -jar target/druid-mcp-server-2.0.1.jar

服务默认将在端口 8080 上启动。

有关详细的构建说明、测试、Docker 设置和开发指南,请参阅 development.md。

安全与身份验证

  • Streamable HTTP 和 SSE 传输默认使用 OAuth 2.0 进行保护。
  • 客户端连接时必须在 Authorization 标头中发送有效的 Bearer 令牌。
  • 示例:Authorization: Bearer YOUR_JWT_TOKEN
环境变量
  • DRUID_MCP_SECURITY_OAUTH2_ENABLED:
    • **说明:**启用或禁用用于客户端身份验证的 OAuth2 安全机制。
    • **类型:**布尔值
    • 默认值:true(如上文所述,默认启用 OAuth2)
    • **用法:**设置为 false 可禁用 OAuth2 身份验证。禁用后,客户端无需提供 OAuth2 令牌即可访问服务。

从 Maven Central 安装

如果希望使用预构建的 JAR,而不从源代码构建,可直接从 Maven Central 下载并运行。

先决条件
  • 仅需 Java 25 JRE
下载并运行

从 Maven Central 下载 JAR:https://repo.maven.apache.org/maven2/com/iunera/druid-mcp-server/

# STDIO mode (default)
java -jar target/druid-mcp-server-2.0.1.jar

# HTTP mode (profile: http) - exposes /mcp on port 8080
java -Dspring.profiles.active=http \
     -jar target/druid-mcp-server-2.0.1.jar

面向开发者

有关详细的开发信息,包括构建说明、测试指南、架构详情和贡献指南,请参阅 development.md。

按功能分类的可用工具

MCP 服务会根据当前启用的 Spring 配置文件(SPRING_PROFILES_ACTIVE)动态激活工具。默认配置以 STDIO 模式运行服务,并启用 query 配置文件。

配置文件:query(默认启用的配置文件)

提供安全、只读的数据查询和浏览功能。

工具描述参数Druid API 端点 / 功能
getDatasources列出所有可用的 Apache Druid 数据源,或获取特定数据源的详细架构。datasourceName(String,可选),detailed(Boolean,可选)/druid/v2/sql(查询 INFORMATION_SCHEMA.TABLES 和 COLUMNS 等系统目录)
getLookups获取所有层级或特定层级中查找表的配置或状态。tier(String,可选),lookupName(String,可选),includeStatus(Boolean,可选)/druid/coordinator/v1/lookups/config 和 /status 端点
getSegments获取段元数据,或获取特定段的详细信息。datasource(String,可选),segmentId(String,可选),detailed(Boolean,可选),metadataOnly(Boolean,可选)/druid/coordinator/v1/datasources/{ds}/segments 和系统表(通过 /druid/v2/sql 访问 sys.segments)
getSegmentLoadQueue获取显示当前正在加载的段的加载队列状态。serverName(String,可选)/druid/coordinator/v1/loadqueue
queryDruidSql对 Druid 数据源执行 SQL 查询。sqlQuery(String,必填)/druid/v2/sql(Router / Broker SQL 端点)
配置文件:ops

提供对摄取规范、任务、流式监督器、保留规则和压实操作的管理控制。

工具描述参数Druid API 端点 / 功能
getCompactionConfig查看数据源的压缩配置或配置变更历史。datasource(String,可选),includeHistory(Boolean,可选)/druid/coordinator/v1/config/compaction 端点
getCompactionStatus获取当前压缩任务的状态和进度。datasource(String,可选)/druid/coordinator/v1/compaction/status
manageCompaction添加、更新或删除压缩配置。action(Enum:UPSERT、DELETE,必需),datasource(String,必需),configJson(String,可选)/druid/coordinator/v1/config/compaction(POST/DELETE)
manageDatasourceOrSegment修改分段状态或永久删除数据源。action(Enum:ENABLE_SEGMENT、DISABLE_SEGMENT、KILL_DATASOURCE,必需),datasource(String,必需),segmentId(String,可选),interval(String,可选)/druid/coordinator/v1/datasources 和分段 POST/DELETE
manageLookup创建、更新或删除 Lookup 配置。action(Enum:UPSERT、DELETE,必需),tier(String,必需),lookupName(String,必需),configJson(String,可选)/druid/coordinator/v1/lookups/config(POST/DELETE)
queryDruidMultiStage对 Druid 数据源执行多阶段 SQL 查询(MSQ),并将其作为任务运行。sqlQuery(String,必需)/druid/v2/sql/task(MSQ 执行端点)
queryDruidMultiStageWithContext使用自定义上下文参数执行多阶段 SQL 查询。sqlQuery(String,必需),contextJson(String,可选)/druid/v2/sql/task,支持上下文配置
getMultiStageQueryTaskStatus获取多阶段查询任务的状态。taskId(String,必需)/druid/indexer/v1/task/{taskId}/status
cancelMultiStageQueryTask取消正在运行的多阶段查询任务。taskId(String,必需)/druid/indexer/v1/task/{taskId}/shutdown(POST)
getRetentionRules获取指定数据源或所有数据源的保留规则或审计历史。datasource(String,可选),includeHistory(Boolean,可选)/druid/coordinator/v1/rules
manageRetentionRules更新指定数据源的保留规则配置。datasource(String,必需),rulesJson(String,必需)/druid/coordinator/v1/rules
submitIngestion提交 Druid 摄取规范,或生成简单的批处理模板。action(Enum:SUBMIT_SPEC、GENERATE_TEMPLATE,必需),payloadJson(String,可选),datasourceName(String,可选),inputSourceType(String,可选),inputSourcePath(String,可选)/druid/indexer/v1/task(POST)
getSupervisors列出所有 Supervisor,或查询指定 Supervisor 的详细信息。supervisorId(String,可选)/druid/indexer/v1/supervisor
manageSupervisor暂停、恢复或终止 Supervisor 的执行。supervisorId(String,必需),action(Enum:SUSPEND、RESUME、TERMINATE,必需)/druid/indexer/v1/supervisor/{id}/(suspend/resume/terminate)
getTasks列出符合指定状态的摄取任务。state(Enum:RUNNING、PENDING、WAITING、COMPLETED,可选)/druid/indexer/v1/runningTasks、pendingTasks、waitingTasks、completeTasks
getTaskDetails获取任务的详细信息、规范、执行报告或执行日志。taskId(String,必需),aspect(Enum:STATUS、RAW_DETAILS、SPEC、REPORTS、LOG,必需),logOffset(Long,可选)/druid/indexer/v1/task/{id} 的规范、状态、报告和日志端点
shutdownTask终止/关闭 Druid 任务。taskId(String,必需)/druid/indexer/v1/task/{id}/shutdown(POST)
getClusterStatus检查整体运行状况,或从协调器或路由器获取特定元数据/属性。aspect(Enum:OVERALL、COORDINATOR、ROUTER、LEADER、METADATA、PROPERTIES、SELF_DISCOVERY_COORDINATOR、SELF_DISCOVERY_ROUTER,可选)/status/health、/status/selfDiscovered、/druid/coordinator/v1/leader、/druid/coordinator/v1/config
getNodesStatus列出已注册服务器、服务器的详细状态或单个节点的状态。serverName(String,可选),detailed(Boolean,可选)/druid/coordinator/v1/servers 和 /status
diagnoseCluster执行自动化诊断,包括运行状况检查、配置审计或查询性能分析。mode(Enum:COMPREHENSIVE、QUICK、PERFORMANCE、CONFIGURATION,必需)协调对活动任务、服务器状态、分段数量和 API 进行诊断检查
checkFunctionalityHealth验证摄取系统运行情况、Supervisor 状态转换和历史查询延迟。component(Enum:ALL、SUPERVISORS、HISTORICALS、INGESTION,可选),quick(Boolean,可选)协调检查任务执行日志和 Supervisor 状态
配置:permissions

提供基本安全身份验证和授权管理。

重要

仅在同时满足以下两个条件时,才会激活基本安全工具:

  1. 已激活 permissions 配置(spring.profiles.active=permissions)。
  2. 已设置 Coordinator URL(druid.coordinator.url),且该值非空。
工具描述参数Druid API 端点 / 功能
manageAuthentication管理基本安全用户和凭据。authenticator(String,必填)、action(枚举:LIST、GET、CREATE、DELETE、SET_PASSWORD,必填)、username(String,可选)、password(String,可选)/druid-ext/basic-security/authentication/db/...
manageAuthorization管理安全授权属性、角色和资源访问策略。authorizer(String,必填)、action(枚举:LIST_USERS、GET_USER、CREATE_USER、DELETE_USER、LIST_ROLES、GET_ROLE、CREATE_ROLE、DELETE_ROLE、SET_PERMISSIONS,必填)、name(String,可选)、permissionsJson(String,可选)/druid-ext/basic-security/authorization/db/...
manageSecurityAssignments配置将角色分配给用户的映射规则,或获取已配置的身份验证器链。authorizer(String,必填)、action(枚举:ASSIGN_ROLE、UNASSIGN_ROLE、GET_CHAIN,必填)、username(String,可选)、roleName(String,可选)/druid-ext/basic-security/authorization/db/... 和 /status/properties
配置:health

提供主动健康检查、集群状态、诊断以及 doctor 建议扫描。

工具描述参数Druid API 端点 / 功能
getClusterStatus检查整体健康状况,或从 Coordinator、Router 获取特定元数据/属性。aspect(枚举:OVERALL、COORDINATOR、ROUTER、LEADER、METADATA、PROPERTIES、SELF_DISCOVERY_COORDINATOR、SELF_DISCOVERY_ROUTER,可选)/status/health、/status/selfDiscovered、/druid/coordinator/v1/leader、/druid/coordinator/v1/config
getNodesStatus列出已注册的服务端、其详细状态或单个节点状态。serverName(String,可选)、detailed(Boolean,可选)/druid/coordinator/v1/servers 和 /status
diagnoseCluster执行自动诊断健康检查、配置审计或查询性能分析。mode(枚举:COMPREHENSIVE、QUICK、PERFORMANCE、CONFIGURATION,必填)对活动任务、服务端状态、分段数量和 API 执行诊断扫描
checkFunctionalityHealth验证摄取系统的运行、Supervisor 状态转换以及 Historical 查询延迟。component(枚举:ALL、SUPERVISORS、HISTORICALS、INGESTION,可选)、quick(Boolean,可选)检查任务执行日志和 Supervisor 状态

按功能分类的可用资源

功能资源 URI 模式描述参数
数据源druid://datasource/{datasourceName}访问数据源信息和元数据datasourceName(String)
数据源druid://datasource/{datasourceName}/details访问包含架构在内的数据源详细信息datasourceName(String)
Lookupdruid://lookup/{tier}/{lookupName}访问 Lookup 配置和数据tier(String)、lookupName(String)
Segmentsdruid://segment/{segmentId}访问分段元数据和信息segmentId(String)

按功能分类的可用提示词

功能提示词名称描述参数
数据分析data-exploration探索 Druid 数据源的指南datasource(String,可选)
数据分析query-optimization帮助优化 Druid SQL 查询,提升性能query(String)
集群管理health-check全面的集群健康状况评估指南无
集群管理cluster-overview集群状态概览与分析无
摄取管理ingestion-troubleshooting排查数据摄取问题issue(String,可选)
摄取管理ingestion-setup设置新数据摄取管道的指南dataSource(String,可选)
保留管理retention-management管理数据保留策略datasource(String,可选)
压缩compaction-suggestions优化分段压缩配置datasource(String,可选),currentConfig(String,可选),performanceMetrics(String,可选)
压缩compaction-troubleshooting排查压缩问题issue(String),datasource(String,可选)
运维emergency-response紧急响应流程与指南无
运维maintenance-mode集群维护流程无
环境变量配置

应用可通过环境变量进行配置,这是生产环境中推荐的方式。以下列出了从 application.yaml 配置文件中提取的所有受支持环境变量。

Druid 连接
  • DRUID_ROUTER_URL:Druid 路由器的 URL。
  • DRUID_AUTH_USERNAME:Druid 身份验证的用户名。
  • DRUID_AUTH_PASSWORD:Druid 身份验证的密码。
  • DRUID_SSL_ENABLED:启用或禁用 Druid 连接的 SSL(true/false)。
  • DRUID_SSL_SKIP_VERIFICATION:跳过 SSL 证书验证(true/false)。
  • DRUID_MCP_SQL_SYNTAX_CORRECTION_ENABLED:启用或禁用 SQL 语法自动修正(默认值:true)。启用后,将自动格式化查询、修正大小写,并为 Druid 标识符添加引号。
  • DRUID_MCP_SQL_SYNTAX_CORRECTION_CACHE_TTL_MS:从 Druid 加载并缓存的表和列元数据的生存时间(TTL),单位为毫秒(默认值:300000 / 5 分钟)。
MCP 服务配置
  • DRUID_MCP_SECURITY_OAUTH2_ENABLED:启用或禁用用于 HTTP 客户端身份验证的 OAuth2 安全机制(true/false)。
  • SPRING_PROFILES_ACTIVE:要激活的配置文件列表,以逗号分隔(例如,启用工具功能时使用 query、ops、permissions、health,或使用 http 启用 HTTP 服务传输,而非默认的 STDIO)。
  • SPRING_AI_MCP_SERVER_NAME:MCP 服务的名称。
  • SPRING_AI_MCP_SERVER_PROTOCOL:MCP 服务使用的协议(例如,streamable)。
通用服务配置
  • SERVER_PORT:服务监听的端口。
  • SERVER_SERVLET_SESSION_COOKIE_NAME:会话 Cookie 的名称。
  • SPRING_APPLICATION_NAME:应用的名称。
  • SPRING_CONFIG_IMPORT:导入其他配置文件。
  • SPRING_MAIN_BANNER_MODE:启动横幅的显示模式(例如,off)。
日志记录
  • LOGGING_FILE_NAME:日志文件的名称。
  • LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY:Spring Security 的日志级别(例如,DEBUG)。
使用身份验证连接 SSL 加密的集群

本节全面介绍如何使用用户名和密码身份验证连接 SSL 加密的 Druid 集群。

前提条件
  • 启用了 SSL 并提供 HTTPS 端点的 Druid 集群
  • 用于 Druid 身份验证的有效用户名和密码凭据
  • 已正确配置 SSL 证书(或可在测试时跳过验证)
配置方式
方法 1:环境变量(生产环境推荐)

启动 MCP 服务前,设置以下环境变量:

# Druid cluster URL with HTTPS
export DRUID_ROUTER_URL="https://your-druid-cluster.example.com:8888"

# Authentication credentials
export DRUID_AUTH_USERNAME="your-username"
export DRUID_AUTH_PASSWORD="your-password"

# SSL configuration
export DRUID_SSL_ENABLED="true"
export DRUID_SSL_SKIP_VERIFICATION="false"  # Use "true" only for testing

# Start the MCP server
java -jar target/druid-mcp-server-2.0.1.jar
方法 2:运行时系统属性

将配置作为 JVM 系统属性传入:

java -Ddruid.router.url="http://localhost:8888" \
     -Ddruid.auth.username="admin" \
     -Ddruid.auth.password="password" \
     -jar target/druid-mcp-server-2.0.1.jar
SSL 配置选项
生产环境 SSL 设置

对于使用有效 SSL 证书的生产环境:

export DRUID_ROUTER_URL="https://druid-prod.company.com:8888"
export DRUID_SSL_ENABLED="true"
export DRUID_SSL_SKIP_VERIFICATION="false"

服务器将使用系统的默认信任库来验证 SSL 证书。

身份验证方法

MCP 服务支持使用用户名和密码进行 HTTP Basic 身份验证:

  • 用户名:通过 DRUID_AUTH_USERNAME 或 druid.auth.username 设置
  • 密码:通过 DRUID_AUTH_PASSWORD 或 druid.auth.password 设置

凭据会自动使用 Base64 编码,并通过 Authorization: Basic 标头随每个请求发送。

使用 SSL 配置 MCP 客户端

更新 mcp-servers-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:2.0.1"
      ],
      "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"
      }
    }
  }
}

MCP 提示词自定义

服务器通过位于 src/main/resources/ 的 prompts.properties 文件提供丰富的提示词自定义功能。

提示词配置结构

prompts.properties 文件包含:

  1. 全局设置:启用或禁用提示词并设置水印
  2. 功能开关:控制哪些提示词可用
  3. 自定义变量:组织特定信息
  4. 模板定义:各项功能的完整提示词模板
覆盖提示词

你可以使用 -D 标志通过 Java 系统属性覆盖任何提示词模板:

方法 1:系统属性(运行时覆盖)
java -Dprompts.druid-data-exploration.template="Your custom template here" \
     -jar target/druid-mcp-server-2.0.1.jar
方法 2:自定义属性文件
  1. 创建自定义属性文件(例如,custom-prompts.properties):
# Custom prompt template
prompts.druid-data-exploration.template=My custom data exploration prompt:\n\
1. Custom step one\n\
2. Custom step two\n\
{datasource_section}\n\
Environment: {environment}
  1. 在运行时加载:
java -Dspring.config.additional-location=classpath:custom-prompts.properties \
     -jar target/druid-mcp-server-2.0.1.jar
可用的提示词变量

所有提示词模板都支持以下变量:

变量描述示例
{environment}当前环境名称production、staging、dev
{organizationName}组织名称Your Organization
{contactInfo}联系信息[email protected]
{watermark}生成的水印Generated by Druid MCP Server v1.0.0
{datasource}数据源名称(取决于上下文)sales_data
{query}SQL 查询(取决于上下文)SELECT * FROM sales_data
提示词模板示例
自定义数据探索提示词
prompts.druid-data-exploration.template=Welcome to {organizationName} Druid Analysis!\n\n\
Please help me explore our data:\n\
{datasource_section}\n\
Environment: {environment}\n\
Contact: {contactInfo}\n\n\
{watermark}
自定义查询优化提示词
prompts.druid-query-optimization.template=Query Performance Analysis for {organizationName}\n\n\
Query to optimize: {query}\n\n\
Please provide:\n\
1. Performance bottleneck analysis\n\
2. Optimization recommendations\n\
3. Best practices for our {environment} environment\n\n\
{watermark}
禁用特定提示词

你可以将各个提示词的启用标志设为 false 来禁用它们:

mcp.prompts.data-exploration.enabled=false
mcp.prompts.query-optimization.enabled=false

或者全局禁用所有提示词:

mcp.prompts.enabled=false

MCP 集成

此服务器使用 Spring AI 的 MCP Server 框架,同时支持 STDIO 和 SSE 传输。工具、资源和提示词会自动注册,并通过 MCP 协议公开。

传输模式

Druid MCP Server 支持多种符合 MCP 2025-06-18 规范的传输模式:

Streamable HTTP 传输(推荐)

全新的 Streamable HTTP 传输支持多个客户端并发连接,性能和可扩展性更出色:

# Default configuration with Streamable HTTP

java -Dspring.profiles.active=http \
     -jar target/druid-mcp-server-2.0.1.jar
# Server available at http://localhost:8080/mcp (configurable endpoint)

功能:

  • 单一端点:一个 HTTP 端点同时处理 POST 和 GET 请求
  • 多个客户端:支持客户端并发连接
  • 可选的 SSE 流式传输:通过 Server-Sent Events 实时推送更新
  • 增强的安全性:验证 Origin 标头并进行身份验证
  • 向后兼容:自动回退以兼容较旧的 MCP 客户端
  • 保持连接:可配置的连接健康监控

安全性

  • Streamable HTTP 和 SSE 模式默认使用 OAuth 保护。连接时,MCP 客户端必须获取并发送有效的 bearer token。
  • 如需集成企业级 SSO(OpenID Connect、Azure AD、Keycloak 等),请发送咨询邮件至 [email protected],并参阅联系与支持。
STDIO 传输(命令行集成)

非常适合大模型客户端和桌面应用:

java -jar target/druid-mcp-server-2.0.1.jar
旧版 SSE 传输(已弃用)

仍受支持,以保持向后兼容。它不再是默认选项,并可能在未来版本中移除。

注意:SSE 端点默认使用 OAuth 保护。客户端连接时必须携带有效的 bearer token。如需 SSO 集成支持,请参阅联系与支持。

指标收集

为了改进产品并了解使用模式,此服务会收集匿名使用指标。这些数据有助于确定新功能和改进的优先级。将 druid.mcp.metrics.enabled 设置为 false,即可选择退出匿名指标收集。

🐳 开发用 Druid 安装

对于本地开发、测试和学习,可通过 iunera/druid-local-cluster-installer 获取完整的 Docker Compose 配置,用于运行完整的 Apache Druid 集群。

这是推荐的方式,可快速启动 Druid 集群并将其用于此 MCP 服务。

主要功能:

  • **完整的 Druid 集群:**包含所有核心 Druid 服务(Coordinator、Broker、Historical、MiddleManager、Router)。
  • **一键安装:**为 macOS、Linux 和 Windows 提供自动化脚本。
  • **跨平台:**可在任何支持 Docker 的环境中运行。
  • **预配置:**为本地开发设置了合理的默认值。
  • **启用基本安全功能:**预配置管理员用户(admin/password)。
  • **支持 Ypipe:**专为开箱即用地配合 iunera/ypipe 使用而设计。

相关项目

此 Druid MCP 服务是 iunera 开发的综合 Apache Druid 工具和扩展生态系统的一部分。这些互补项目可增强 Druid 集群管理和数据摄取的不同方面:

🔧 Druid 集群配置

用于 Apache Druid 集群的高级配置管理和部署工具。此项目提供:

  • **自动化集群设置:**针对不同部署场景提供精简的配置模板
  • **配置管理:**为生产环境中的 Druid 集群提供最佳实践和模板
  • **部署自动化:**用于一致部署集群的工具和脚本
  • **环境专用配置:**针对开发、预发布和生产环境优化的配置

**与 Druid MCP 服务集成:**此项目提供的集群配置可与 Druid MCP 服务的监控和管理功能无缝配合,实现全面的集群生命周期管理。

📊 代码摄取 Druid 扩展

一个专门用于摄取和分析代码相关数据与指标的 Apache Druid 扩展。此扩展支持:

  • 代码指标摄取:用于代码分析数据和软件指标的专用解析器
  • 开发者分析:用于分析代码质量、复杂度和开发模式的工具
  • CI/CD 集成:与持续集成和部署流水线无缝集成
  • 自定义数据格式:支持各种代码分析工具和格式

与 Druid MCP 服务集成:此扩展扩展了可通过 MCP 服务的摄取管理工具管理的摄取功能,为代码分析用例提供专门支持。

为什么要将它们搭配使用?
  • 完整生态系统:涵盖从集群设置到专用数据摄取和管理的各个环节
  • 一致的架构:所有项目都遵循相似的设计原则和集成模式
  • 增强的功能:每个项目都扩展了 Druid 生态系统的不同方面
  • 可用于生产环境:经过实战验证的配置和扩展,适用于企业部署

路线图

  • Druid 自动压缩:智能自动压缩配置
  • MCP 自动补全:通过 McpComplete 使用采样增强自动补全功能
  • MCP 通知:针对 MCP 操作的实时通知
  • 完善的可观测性:全面的指标和追踪
  • 增强的监控:先进的集群监控和告警功能
  • 高级分析:由机器学习驱动的洞察和建议
  • Kubernetes 支持:在 Kubernetes 上正确部署

关于 iunera

此 Druid MCP 服务由 iunera 开发和维护。iunera 是先进 AI 和数据分析解决方案的领先提供商。

iunera 专注于:

  • AI 驱动的分析:用于数据分析的尖端人工智能解决方案
  • 企业数据平台:可扩展的数据基础设施和分析平台(Druid、Flink、Kubernetes、Kafka、Spring)
  • 模型上下文协议(MCP)解决方案:面向各种数据系统的高级 MCP 服务实现
  • 定制 AI 开发:满足企业需求的定制 AI 解决方案

作为 Apache Druid 领域的资深团队,iunera 已在生产级企业场景中部署和维护了大量基于 Apache Druid 的解决方案。

需要 Apache Druid 专家咨询服务?

通过专业的 Druid 实施和优化服务,最大化您的数据回报。从架构设计到性能调优和 AI 集成,我们的专家将助您应对 Druid 的复杂性,充分释放其潜力。

获取 Druid 专家咨询服务 →

需要企业级 MCP 服务开发咨询?

企业级 AI 集成与定制 MCP(模型上下文协议)服务开发

Iunera 专注于开发可用于生产环境的 AI Agent 和企业级大模型解决方案,帮助企业摆脱通用 AI 聊天机器人的局限。他们以模型上下文协议(MCP)为基础,构建安全、可扩展且面向未来的 AI 基础设施,将专有数据、遗留系统和外部 API 连接到先进的 AI 模型。

获取企业级 MCP 服务开发咨询 →

如需了解有关我们服务和解决方案的更多信息,请访问 www.iunera.com。

联系与支持

需要帮助?请联系


© 2026 iunera。根据 Apache License 2.0 获得许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。