Druid查询服务

一个针对Imply Cloud/Druid数据库的只读MCP服务器,通过Claude等AI助手查询和探索Druid数据。

  • by yeongbin-hwang
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 yeongbin-hwang/imply-druid-mcp

使用说明

暗示德鲁伊mcp

用于Imply Cloud/Druid数据库的只读MCP(模型上下文协议)服务器。通过Claude和其他人工智能助手查询和探索您的德鲁伊数据。

特性

支持✅

  • SQL查询执行
    • 同步查询执行
    • 异步查询执行(适用于大型数据集)
  • 查询管理
    • 检查查询状态
    • 检索查询结果
    • 取消正在运行的查询
  • 表操作
    • 列出项目中的所有表
    • 获取表架构详细信息
  • 仪表板操作
    • 列出所有仪表板
    • 获取仪表板详细信息
  • 数据立方体操作
    • 列出所有数据立方体
    • 获取数据立方体详细信息
    • 执行Pivot SQL查询

不支持❌

  • 数据摄入
  • 表/模式创建或修改
  • 用户/权限管理
  • 主管管理

工具

查询工具

工具 说明
execute_sql_query 同步执行SQL查询并立即返回结果
execute_async_query 对大型数据集异步执行SQL查询。返回查询ID
get_query_results 使用查询ID从异步查询中检索结果
get_query_status 检查异步查询的执行状态
cancel_query 取消正在运行的异步查询

表格工具

工具 说明
list_tables 列出Druid项目中的所有表(数据源)
get_table_schema 获取特定表的详细架构信息

仪表板工具

工具 说明
list_dashboards 列出Imply项目中的所有仪表板
get_dashboard 获取特定仪表板的详细信息

数据立方体工具

工具 说明
list_data_cubes 列出Imply项目中的所有数据立方体
get_data_cube 获取详细的数据立方体信息,包括维度和度量值
query_data_cube 对数据多维数据集执行Pivot SQL查询

API映射

此MCP服务器映射到 隐含北极星API:

MCP工具 隐含API端点
execute_sql_query POST /v1/projects/{projectId}/query/sql
execute_async_query POST /v1/projects/{projectId}/query/sql/statements
get_query_results GET /v1/projects/{projectId}/query/sql/statements/{queryId}/results
get_query_status GET /v1/projects/{projectId}/query/sql/statements/{queryId}
cancel_query DELETE /v1/projects/{projectId}/query/sql/statements/{queryId}
list_tables GET /v1/projects/{projectId}/tables
get_table_schema GET /v1/projects/{projectId}/tables/{tableName}
list_dashboards GET /v1/projects/{projectId}/dashboards
get_dashboard GET /v1/projects/{projectId}/dashboards/{dashboardId}
list_data_cubes GET /v1/projects/{projectId}/data-cubes
get_data_cube GET /v1/projects/{projectId}/data-cubes/{cubeName}
query_data_cube POST /v0/projects/{projectId}/pivot/data-cube-sql/query

安装

使用uvx(推荐)

uvx imply-druid-mcp

使用pip

pip install imply-druid-mcp
imply-druid-mcp

使用pipx

pipx install imply-druid-mcp
imply-druid-mcp

配置

环境变量 必填 默认 描述
IMPLY_ORGANIZATION 是 - 隐含云组织名称
IMPLY_REGION 是 - 地区(例如。, us-east-1)
IMPLY_CLOUD_PROVIDER 是 - 云提供商: aws, gcp,或 azure
IMPLY_PROJECT_ID 是 - 表示项目ID
IMPLY_API_KEY 是* - 隐含API密钥
IMPLY_ACCESS_TOKEN 是* - OAuth访问令牌(可选)
LOG_LEVEL 没有 INFO 日志记录级别
DEFAULT_QUERY_TIMEOUT_MS 没有 30000 默认查询超时(ms)
MAX_QUERY_LENGTH 没有 10000 最大SQL查询长度

*要么 IMPLY_API_KEY 或 IMPLY_ACCESS_TOKEN 是必需的。

Claude桌面设置

添加到您的Claude Desktop配置文件中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "imply-druid": {
      "command": "uvx",
      "args": ["imply-druid-mcp"],
      "env": {
        "IMPLY_ORGANIZATION": "your-org",
        "IMPLY_REGION": "us-east-1",
        "IMPLY_CLOUD_PROVIDER": "aws",
        "IMPLY_PROJECT_ID": "your-project-id",
        "IMPLY_API_KEY": "your-api-key"
      }
    }
  }
}

使用示例

User: Show me all tables in my Druid project

Claude: [Uses list_tables]
- wikipedia (datasource)
- events (datasource)
- metrics (datasource)
User: Query the top 10 records from wikipedia table

Claude: [Uses execute_sql_query with "SELECT * FROM wikipedia LIMIT 10"]
[Results displayed]
User: Show me all data cubes

Claude: [Uses list_data_cubes]
- sales_cube: Sales Analytics (source: sales_table)
- events_cube: Events Tracking (source: events)
User: Query the sales data cube for top cities

Claude: [Uses query_data_cube with Pivot SQL syntax]
SELECT "DIM:city" AS "City", MEASURE_BY_ID('total_sales') AS "Sales"
FROM "datacube"."sales_cube"
ORDER BY 2 DESC
LIMIT 10

发展

git clone https://github.com/yeongbin-hwang/imply-druid-mcp.git
cd imply-druid-mcp
pip install -e ".[dev]"

许可证

MIT许可证-请参阅 许可证 了解详情。

资源