Discovery
list_teams
data:schema — no parameters.
The teams you belong to, with your role and how many databases each has. A team’s id is
the teamId every other tool wants.
list_datasources
data:schema — teamId?
The databases you may query, with type, status, and exposed table count. Omit teamId to
list across every team.
describe_datasource
data:schema — teamId, dataSourceId
The tables and columns you may read on one database, with types, keys, row estimates, and
the team’s published documentation. Vocabulary matches the source: schema/table for
PostgreSQL, database/collection for MongoDB, dataset/table for BigQuery.
Call this before writing a query. It carries the context column names don’t.
search_docs
data:schema — teamId, dataSourceId, query
Searches the team’s published documentation — what a value means, which rows are excluded
by default, how tables relate. Use it when a table’s purpose isn’t obvious, rather than
guessing from names.
Reading data
run_query
data:read — teamId, dataSourceId, sql, limit?
A single read-only SELECT against PostgreSQL or BigQuery (GoogleSQL). No
semicolon-separated statements. For MongoDB use run_find or run_aggregate.
run_find
data:read — teamId, dataSourceId, collection, filter?, projection?, sort?, limit?
Documents from an exposed MongoDB collection. The simple case: a filter, optionally a
projection and a sort.
run_aggregate
data:read — teamId, dataSourceId, collection, pipeline, limit?
A read-only MongoDB aggregation — $match, $group, $sort, $lookup and so on. Stages
that write ($out, $merge) or run server-side JavaScript ($where, $function) are
refused, as are unexposed fields.
sample_rows
data:read — teamId, dataSourceId, table, limit?
A few rows from one exposed table or collection, to see its shape without writing a query.
The cheapest way to start on something unfamiliar.
Results say when they were truncated. If they were, narrow the query rather than raising
the limit — the per-team cap applies regardless.
Documentation
See Documentation for how these fit together.document_finding
docs:write — teamId, dataSourceId, schemaName, tableName, statement, column?
Record something you worked out that isn’t obvious from the schema. Saved as a draft for a
human to review; once approved, every agent querying this database is told it.
write_documentation
docs:write — teamId, dataSourceId, schemaName, tableName, section, bodyMarkdown
Replace a table’s summary or examples section. The section becomes pinned — regenerating
the documentation leaves it alone.
publish_documentation
docs:publish — teamId, dataSourceId, schemaName, tableName, published
Publish a table’s documentation, or withdraw it. Other agents act on what you publish.
Artifacts
See Artifacts for the manifest format and rendering model.get_artifact_template
artifacts:write — no parameters.
A starter HTML and manifest scaffold that already handles full-screen sizing and
window.SAMPLE_DATA correctly.
publish_artifact
artifacts:write — teamId, name, html, manifest, status?, visibility?
Publish a dashboard wired to live data. Send queries in the manifest rather than results in
the HTML. Every query is checked against your exposure rules before anything is stored.
Defaults to DRAFT and ONLY_ME.
list_artifacts
data:schema — teamId
The team’s dashboards and the queries each one reads.
get_artifact
data:schema — teamId, artifactId
One artifact’s HTML and manifest, so you can change it and publish the result.
update_artifact
artifacts:write — teamId, artifactId, plus any of html, manifest, name, status, visibility
delete_artifact
artifacts:write — teamId, artifactId
Permanent. The underlying data is untouched — an artifact only ever stored the queries.