Generated from the server's own catalogue

The MCP tools: everything an agent can do against your databases

61 tools over Streamable HTTP, 27 of them writes, every one gated by a permission the key's role must hold. The list below is rendered from the same catalogue the server registers at startup, so it cannot drift from what your agent sees in tools/list. What is not here is as deliberate as what is: there is no release tool, no promote tool, and no tool that returns a credential.

By family

Read what it may, write only drafts

Names are <family>_<verb>. Every tool declares one permission, and your key holds the permissions of the role chosen when it was created, never more than its creator's own. A viewer reads and runs pipelines; an author also creates and changes drafts, registers lake tables and probes a SELECT. Previewing rows and probing SQL are an author's rather than a viewer's, because a schema is metadata and a row is your customer's; catalogue statistics stay a viewer's, because a count the engine already stored is shape, not data.

The three semantics_* tools record what an agent learned about your data, like a unit, a time zone, a grain or what a code means, so the next session reads it beside the columns. The learned semantic layer →

Pipelines: author, run, inspect

  • pipelines_list pipeline.read
  • pipelines_get pipeline.read
  • pipelines_execute pipeline.execute writes
  • pipelines_execute_node pipeline.execute_node writes
  • pipelines_create pipeline.create writes
  • pipelines_update pipeline.update writes
  • pipelines_run_checks pipeline.run_checks writes

Templates: the SQL an agent writes

  • templates_list template.read
  • templates_get template.read
  • templates_used_by template.read
  • templates_create template.create writes
  • templates_update template.update writes
  • templates_render template.render
  • templates_evaluate template.evaluate
  • templates_purge_draft template.version.manage writes

Datasources: what the agent may see

  • datasources_list datasource.read
  • datasources_get datasource.read
  • datasources_test datasource.test
  • datasources_get_schemas datasource.introspect
  • datasources_get_tables datasource.introspect
  • datasources_get_columns datasource.introspect
  • datasources_get_table_stats datasource.read
  • datasources_preview_rows datasource.preview_rows

dp-lake: tables over your bucket

  • lake_tables_register lake_table.manage writes
  • lake_tables_import lake_table.manage writes
  • lake_tables_unregister lake_table.manage writes

The SQL probe

  • sql_probe datasource.sql_probe

Executions: results and cancellation

  • executions_list execution.read
  • executions_get execution.read
  • executions_get_result execution.result.read
  • executions_cancel execution.cancel writes

Published endpoints

  • endpoints_create endpoint.publish writes
  • endpoints_list endpoint.read
  • endpoints_get endpoint.read
  • endpoints_delete endpoint.unpublish writes

Calculators

  • calculators_list calculator.read
  • calculators_get calculator.read

dashboards

  • dashboards_list dashboard.read
  • dashboards_get dashboard.read
  • dashboards_create dashboard.create writes
  • dashboards_update dashboard.update writes
  • dashboards_purge_draft dashboard.version.manage writes
  • dashboards_validate dashboard.update

docs

  • docs_list docs.read
  • docs_get docs.read

parameter

  • parameter_sets_list parameter_set.read
  • parameter_sets_get parameter_set.read
  • parameter_sets_create parameter_set.create writes
  • parameter_sets_update parameter_set.update writes
  • parameter_sets_evaluate parameter_set.evaluate
  • parameter_sets_purge_draft parameter_set.version.manage writes

semantics

  • semantics_record semantic.record writes
  • semantics_list semantic.read
  • semantics_retire semantic.retire writes

visualizations

  • visualizations_list visualization.read
  • visualizations_get visualization.read
  • visualizations_create visualization.create writes
  • visualizations_update visualization.update writes
  • visualizations_purge_draft visualization.version.manage writes
  • visualizations_test_start visualization.update writes
  • visualizations_test_submit visualization.update writes

The two probes

Statistics before the predicate, a plan before the timeout

datasources_get_table_stats

Row estimates, indexes and per-column distinct counts, null fractions and ranges, from the engine's catalogue and never a scan. An agent reads them before it writes a WHERE, and suggests the index that would help when none does.

sql_probe

One classified SELECT, named typed parameters, a row cap and a time box; the EXPLAIN is captured before the run so the plan survives a timeout. On dp-lake it reports how many partitions the predicate touched.

What is missing on purpose

No pipelines_release, no promote, no datasources_create with credentials. An agent leaves a draft; a person releases; an operator registers datasources. The absence is the design.

Give your agent the skill, not just the tools

The server also ships a skill, the rules an agent follows to author a pipeline well: filter lake tables on their partition column, pre-aggregate before staging, never divide decimals in the scratch engine, leave the release to a person. It is served at /skill.md, exposed as an MCP resource, and packaged as a Claude Code plugin.