Skip to content

create_dashboard

Create or update a saved dashboard for a Bridge Town model. Two modes, selected by source_kind (default ‘model_run_output’): source_kind=‘model_run_output’ (default): generates chart HTML from a completed model run output, stores it in S3, and persists a Dashboard record. Requires chart_type, model_run_id, and output_key. output_key selects a key from the run’s outputs dict — the same dict your model writes to /outputs/.

NameTypeRequiredDefaultDescription
model_nameAnnotated[str, Field(description='Name of the Bridge Town model.')]Yes
dashboard_nameAnnotated[str, Field(description='Unique name for this dashboard within the model.')]Yes
chart_typeAnnotated[str, Field(description="Type of chart to render — see this tool's description, or the bridge-town://dashboards/chart-types resource, for all available types and their required data schemas. Required when source_kind='model_run_output'; ignored otherwise.")]No''
model_run_idAnnotated[str, Field(description="UUID of the successful model run whose output to render. Required when source_kind='model_run_output'; ignored otherwise.")]No''
output_keyAnnotated[str, Field(description="Key in the model run's outputs dict to visualize (e.g. 'revenue_forecast'). Required when source_kind='model_run_output'; ignored otherwise.")]No''
description`Annotated[strNone, Field(description=‘Optional description displayed below the dashboard title.’)]`NoNone
subtitleAnnotated[str, Field(description='Optional subtitle displayed below the dashboard title.')]No''
currencyAnnotated[str, Field(description="Optional ISO 4217 currency code for formatting values (e.g. 'USD', 'EUR'). For data_grid dashboards, applies to columns explicitly typed as 'currency'; plain 'number' columns are not currency-formatted.")]No'USD'
source_kindAnnotated[Literal['model_run_output', 'repo_file'], Field(description="'model_run_output' (default) renders chart_type/model_run_id/output_key. 'repo_file' registers a repo-authored standalone HTML dashboard (path) as a new versioned package revision.")]No'model_run_output'
path`Annotated[strNone, Field(description=“source_kind=‘repo_file’ only: repo path to the HTML entrypoint (e.g. ‘dashboards/gross-margin/index.html’).”)]`NoNone
branch`Annotated[strNone, Field(description=“source_kind=‘repo_file’ only: branch to read path/manifest_path/data_paths from. Defaults to the model’s default branch when omitted or null.”)]`NoNone
manifest_path`Annotated[strNone, Field(description=“source_kind=‘repo_file’ only: optional repo path to a JSON manifest merged into the stored package manifest (source_refs and design_skill_id are always tool-controlled and override any value in this file).”)]`NoNone
data_paths`Annotated[list[str]None, Field(description=“source_kind=‘repo_file’ only: optional repo paths to related data-snapshot files, recorded as provenance and embedded in the stored data-snapshot (parsed as JSON when possible, otherwise embedded as raw text).”)]`NoNone
design_skill_id`Annotated[strNone, Field(description=“source_kind=‘repo_file’ only: UUID of a Skill containing dashboard design standards to honor. Must be public or owned by the caller. Its body is snapshotted into the manifest as design_guidance for reproducibility.”)]`NoNone
publishAnnotated[bool, Field(description="source_kind='repo_file' only: publish this revision immediately (default false saves it as an unpublished draft revision). Cannot be combined with dry_run=true.")]NoFalse
dry_runAnnotated[bool, Field(description="source_kind='repo_file' only: preflight the same validation pipeline as publish with no writes (see tool description for the sandbox policy). Unlike publish, a blocking finding is returned as validation_status='failed' rather than raised. Not supported for source_kind='model_run_output'.")]NoFalse
workspace_id`Annotated[strNone, Field(description=WORKSPACE_ID_FIELD_DESCRIPTION)]`NoNone

Returns a structured object. Top-level fields:

  • dashboard_id (string)
  • dashboard_name (string)
  • model (string)
  • chart_type (string)
  • model_run_id (string)
  • has_html (boolean)
  • created (boolean)
  • created_at (string)
  • updated_at (string)

See the response example below for the full payload shape.

{
"name": "create_dashboard",
"arguments": {
"model_name": "forecasts",
"dashboard_name": "Q4 Revenue",
"chart_type": "bar",
"model_run_id": "66666666-6666-6666-6666-666666666666",
"output_key": "quarterly_revenue.json",
"description": "Quarterly revenue breakdown",
"subtitle": "FY2026",
"currency": "USD"
}
}
{
"dashboard_id": "77777777-7777-7777-7777-777777777777",
"dashboard_name": "Q4 Revenue",
"model": "forecasts",
"chart_type": "bar",
"model_run_id": "66666666-6666-6666-6666-666666666666",
"has_html": true,
"created": true,
"created_at": "2026-04-28T10:00:00+00:00",
"updated_at": "2026-04-28T10:00:00+00:00"
}
  • Module: Dashboards
  • Requires authentication via API token or Auth0 JWT.