list_data_sources
Use list_data_sources before query_data so table and column names are grounded in the live model catalog. Schema dtype values are semantic ‘text’ or ‘number’, not storage types; use CAST/TRY_CAST in query_data when a physical type is needed. Provides view: query-data-grid (ui://apps/query-data-grid) renders this tool’s result when MCP Apps are available.
read-only · idempotent
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
model_name | Annotated[str, Field(description='Name of the Bridge Town model whose data sources to list.')] | Yes | — | |
data_source_id | Annotated[str, Field(description='Optional data source ID (as returned by this tool) to scope the listing to one source. Required when include_snapshots is true.')] | No | '' | |
include_snapshots | Annotated[bool, Field(description="When true (requires data_source_id), also return that one source's full snapshot generation inventory -- current/historical/detached/reclaimed, covering both file-upload and Google Sheet layouts -- under the 'snapshots' key. Works even after the source has been detached, so retained lineage stays visible. When true, limit/cursor paginate the snapshot list instead of the source list.")] | No | False | |
limit | Annotated[int, Field(ge=1, le=MAX_PAGE_LIMIT, description='Maximum data sources to return (default 50, max 200).')] | No | DEFAULT_PAGE_LIMIT | |
cursor | `Annotated[str | None, Field(description=‘Opaque continuation cursor from a previous list_data_sources response.’)]` | No | None |
workspace_id | `Annotated[str | None, Field(description=_owner.WORKSPACE_ID_FIELD_DESCRIPTION)]` | No | None |
Returns
Section titled “Returns”Returns a structured object. Top-level fields:
model_name(string)sources(array<object>)total_count(integer)truncated(boolean)next_cursor(null)
See the response example below for the full payload shape.
Example
Section titled “Example”Tool Call
Section titled “Tool Call”{ "name": "list_data_sources", "arguments": { "model_name": "forecasts" }}Response
Section titled “Response”{ "model_name": "forecasts", "sources": [ { "source_name": "actuals", "source_type": "parquet", "tables": [ "actuals" ], "snapshot_taken_at": null, "snapshot_age_seconds": null, "schema": { "actuals": [ { "name": "month", "dtype": "text" }, { "name": "revenue", "dtype": "number" } ] }, "data_source_id": null, "source_url": null, "queryable": true, "runnable": true }, { "source_name": "headcount_sheet", "source_type": "google_sheets", "tables": [ "headcount_sheet__roles", "headcount_sheet__hires" ], "snapshot_taken_at": "2026-04-28T10:00:00+00:00", "snapshot_age_seconds": 10800, "schema": { "headcount_sheet__roles": [ { "name": "role", "dtype": "text" } ] }, "data_source_id": "88888888-8888-8888-8888-888888888888", "source_url": "https://docs.google.com/spreadsheets/d/1aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEFG/edit", "queryable": true, "runnable": true }, { "source_name": "vendor_invoices", "source_type": "file_upload", "tables": [], "snapshot_taken_at": null, "snapshot_age_seconds": null, "schema": {}, "data_source_id": "e1e10000-e1e1-e1e1-e1e1-e1e100000001", "source_url": null, "original_filename": "vendor_invoices_2026q1.csv", "file_kind": "csv_file", "columns": [ { "name": "vendor", "inferred_type": "text" }, { "name": "amount", "inferred_type": "number" } ], "row_count": 412, "readiness": "ready", "queryable": false, "runnable": true, "metadata_unavailable": false } ], "total_count": 3, "truncated": false, "next_cursor": null}- Module:
Data - Requires an authenticated Bridge Town session (OAuth) or an API token.