imply-druid-mcp
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
Metadata
Release files for imply-druid-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| imply_druid_mcp-0.2.0.tar.gz | 14.9 kB | Without provenance | Details for imply_druid_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| imply_druid_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for imply_druid_mcp-0.2.0-py3-none-any.whl |
Total release size: 32.6 kB
Release files / imply_druid_mcp-0.2.0.tar.gz
| Download URL | imply_druid_mcp-0.2.0.tar.gz |
|---|---|
| Size | 14.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea211c8cab15c80f63132ea6fc6e08885fd4686a8a3d928fbe20703a2a4483be
|
|
BLAKE2b-256 checksum How to use checksums |
ba42a24725e54ea47ae4084d0a69cc9b52796a2978b2be86585ba69923ec33e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.4
|
Release files / imply_druid_mcp-0.2.0-py3-none-any.whl
| Download URL | imply_druid_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ea46c3f2bb7c431c2b0b575715123b564cd6deeb17e6d18b2c3c6b68793ba041
|
|
BLAKE2b-256 checksum How to use checksums |
80d8acb60a76f186f8985de72f1d7b77af2339862f8c8e8cf12fed7966b2eec9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.4
|
Security for imply-druid-mcp 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.