Analytics & reporting

Answers first. Dashboards when they're worth it.

Ask Claude and get a chart you can share in minutes. Build the dashboards that last in Superset. Feed your apps through Python, .NET and JDBC. Every report reads every source, live, under the same access rules.

Start with a question. End with a page you can share.

Before anyone builds a dashboard, ask. Claude Code finds the right tables over MCP, writes and runs the SQL within your access and budget, and turns the answer into an artifact: a chart or a small report page your team can open in the browser. If the question keeps coming back, that's when it earns a dashboard.

  • Plain-English questions over every catalog, joined in one query
  • The answer as a shareable artifact, not a screenshot in a chat
  • Every query it ran is in your history, with its SQL and cost

Superset on every source, through one connection.

Add Thunderduck to Apache Superset once and every catalog shows up as a schema: Iceberg on Glue, PostgreSQL, BigQuery, files in your buckets. Charts and SQL Lab queries can join them directly, so a dashboard no longer waits for the data to be copied into one warehouse.

  • One SQLAlchemy URL with an API token, no driver to compile
  • Cross-source joins in SQL Lab and in chart datasets
  • Cancel in Superset and the query is really stopped
Your tools

Reports in the stack you already have.

The SQLAlchemy dialect reaches Superset, pandas and Streamlit. The .NET provider works with .NET 8 and Dapper. The JDBC driver opens DataGrip, DBeaver and the rest of the JVM world.

MCP server

Give your AI assistant a safe way in.

A remote Model Context Protocol server lets Claude, Cursor and your own agents browse catalogs, describe tables and run SQL. Calls sign in with OAuth, stay scoped to your workspace, and are read-only unless you grant more — and every query clears a cost gate before it executes, so an agent can explore without running up the bill.

mcp client config
{
  "mcpServers": {
    "thunderduck": {
      "url": "https://mcp.thunderduck.ai/mcp"
    }
  }
}
Governed by default

Every report on the same guardrails.

One set of rules

A dashboard, a notebook and an agent see the catalogs their user can see, with read or write access per role. Nothing extra to configure per tool.

Priced before it runs

Every query is planned and cost-checked first, so a dashboard refresh can't quietly scan the whole lake.

Reports on a schedule

Schedule a query and export it to your bucket as CSV, Parquet or Excel every morning, in your own timezone.

Cost per report

Query history shows every refresh by user, tool and token, with its run time, CPU and memory.

Ask the question before you build the dashboard.