| name | definite |
| description | Query data, build dashboards, and run automations on Definite via the Definite MCP server. Use whenever the user asks to query their data warehouse, run SQL or Cube queries, create/edit a dashboard or report, set up a data integration or sync, author a semantic model, build a data app, or schedule a Python pipeline. Triggers include "definite", "query my data", "our data warehouse", "dashboard", "run sql", "cube query", "semantic model", "data app", "pipeline", "set up a sync", "connect <source>". |
Definite
The Definite MCP server is connected. For any data, analytics, dashboard, or
pipeline request, use the Definite MCP tools directly — do not ask the user to
"use the connector," just use it.
Querying data
run_sql_query — row-level detail, ad-hoc joins, schema discovery.
- DuckLake catalog is uppercase:
WHERE table_catalog = 'LAKE'.
- Three-part table names:
LAKE.SCHEMA.table.
- Always include a
LIMIT (100–2000).
- Discover schema with
information_schema, not SHOW TABLES.
- JSON:
-> returns JSON, ->> returns VARCHAR; cast for math: (d ->> 'price')::DOUBLE.
run_cube_query — aggregated KPIs and time series when a semantic model exists.
- Field names are camelCase:
timeDimensions, not time_dimensions.
order must be a list of [name, direction] pairs, not a dict.
Right: "order": [["sales.revenue", "desc"]].
Wrong: "order": {"sales.revenue": "desc"} — this fails Pydantic validation.
- Always set a
limit.
- Worked example:
{
"measures": ["sales.revenue"],
"dimensions": ["sales.region"],
"timeDimensions": [{"dimension": "sales.order_date", "dateRange": "last 90 days", "granularity": "month"}],
"order": [["sales.revenue", "desc"]],
"limit": 1000
}
search_cube_schema — discover available cubes, dimensions, and measures first.
- Always call this before
run_cube_query. Cube description text can be
misleading (e.g. a description that says "use Order Date" when the actual
dimension is created_at). Trust the schema, not the prose.
Dashboards, reports, pipelines
- Call
get_doc_schema before creating or editing a doc — it returns the full
doc.yaml spec. Do not guess the schema.
create_doc — the whole doc.yaml goes in the raw_yaml string parameter.
update_doc / update_doc_dataset — edit an existing doc. Use
update_doc_dataset to change one dataset without resending the whole YAML.
list_docs / get_doc / execute_doc — browse, inspect, run.
Integrations & syncs
collect_secrets (or oauth_connect if it says OAuth is required) →
poll with check_credential_session → create_integration.
Never ask for secrets in plain chat.
list_integrations to find sources and the DuckLake destination.
get_database_schema → configure_sync to set up a scheduled sync.
list_sync_runs / get_sync_logs to debug a sync.
When stuck
Tool index
Querying: run_sql_query, run_cube_query, search_cube_schema
Integrations: collect_secrets, oauth_connect, check_credential_session,
create_integration, list_integrations, get_integration, get_database_schema
Syncs: configure_sync, list_sync_runs, get_sync_logs
Docs: get_doc_schema, list_docs, get_doc, create_doc, update_doc,
update_doc_dataset, delete_doc, execute_doc, get_doc_execution_status,
get_doc_execution_logs, capture_doc_image
Cube models: list_cube_models, get_cube_model, save_cube_model, delete_cube_model
Drive: list_drive_files, read_drive_file, write_drive_file, create_drive_folder,
delete_drive_file, get_drive_download_url, get_drive_upload_url,
list_drive_file_versions, restore_drive_file
Docs search: search_docs