imply-druid-mcp
A read-only MCP server for Imply Cloud/Druid databases, enabling AI assistants to execute SQL queries, list tables, and explore dashboards and data cubes.
README
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.