Skip to main content

MCP server for Imply Cloud/Druid - query and manage data through AI assistants

Project description

imply-druid-mcp

PyPI version Python 3.10+ License: MIT

A read-only MCP (Model Context Protocol) server for Imply Cloud/Druid databases. Query and explore your Druid data through Claude and other AI assistants.

Features

Supported ✅

  • SQL Query Execution
    • Synchronous query execution
    • Asynchronous query execution (for large datasets)
  • Query Management
    • Check query status
    • Retrieve query results
    • Cancel running queries
  • Table Operations
    • List all tables in project
    • Get table schema details
  • Dashboard Operations
    • List all dashboards
    • Get dashboard details
  • Data Cube Operations
    • List all data cubes
    • Get data cube details
    • Execute Pivot SQL queries

Not Supported ❌

  • Data Ingestion
  • Table/Schema Creation or Modification
  • User/Permission Management
  • Supervisor Management

Tools

Query Tools

Tool Description
execute_sql_query Execute a SQL query synchronously and return results immediately
execute_async_query Execute a SQL query asynchronously for large datasets. Returns a query ID
get_query_results Retrieve results from an async query using query ID
get_query_status Check the execution status of an async query
cancel_query Cancel a running async query

Table Tools

Tool Description
list_tables List all tables (datasources) in the Druid project
get_table_schema Get detailed schema information for a specific table

Dashboard Tools

Tool Description
list_dashboards List all dashboards in the Imply project
get_dashboard Get detailed information about a specific dashboard

Data Cube Tools

Tool Description
list_data_cubes List all data cubes in the Imply project
get_data_cube Get detailed data cube information including dimensions and measures
query_data_cube Execute Pivot SQL query against a data cube

API Mapping

This MCP server maps to the Imply Polaris API:

MCP Tool Imply API Endpoint
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

Installation

Using uvx (Recommended)

uvx imply-druid-mcp

Using pip

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

Using pipx

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

Configuration

Environment Variable Required Default Description
IMPLY_ORGANIZATION Yes - Imply Cloud organization name
IMPLY_REGION Yes - Region (e.g., us-east-1)
IMPLY_CLOUD_PROVIDER Yes - Cloud provider: aws, gcp, or azure
IMPLY_PROJECT_ID Yes - Imply project ID
IMPLY_API_KEY Yes* - Imply API key
IMPLY_ACCESS_TOKEN Yes* - OAuth access token (alternative)
LOG_LEVEL No INFO Logging level
DEFAULT_QUERY_TIMEOUT_MS No 30000 Default query timeout (ms)
MAX_QUERY_LENGTH No 10000 Maximum SQL query length

*Either IMPLY_API_KEY or IMPLY_ACCESS_TOKEN is required.

Claude Desktop Setup

Add to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %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"
      }
    }
  }
}

Usage Examples

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

Development

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

License

MIT License - see LICENSE for details.

Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imply_druid_mcp-0.2.0.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imply_druid_mcp-0.2.0-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file imply_druid_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: imply_druid_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for imply_druid_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ea211c8cab15c80f63132ea6fc6e08885fd4686a8a3d928fbe20703a2a4483be
MD5 f0a98e5929e2fe9b0409c787dbfc83af
BLAKE2b-256 ba42a24725e54ea47ae4084d0a69cc9b52796a2978b2be86585ba69923ec33e1

See more details on using hashes here.

File details

Details for the file imply_druid_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for imply_druid_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ea46c3f2bb7c431c2b0b575715123b564cd6deeb17e6d18b2c3c6b68793ba041
MD5 98530342a32d1b2301ba3a0d0dca2c46
BLAKE2b-256 80d8acb60a76f186f8985de72f1d7b77af2339862f8c8e8cf12fed7966b2eec9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page