Draft a Power BI semantic model (TMDL, nothing created)
semantic_model_draftDrafts the plan as a Power BI semantic model in TMDL (Direct Lake on the source's SQL analytics endpoint): relationships with cardinality and filter direction, one active path per table pair, suggested measures that sum at the right level (validate=true also counts header amounts repeated in a flat table). Requires workspace and source. Returns JSON {path: content} for the definition folder plus README.generated.md listing the decisions to check. Changes nothing; create_semantic_model creates the item, compare_semantic_model checks an existing model. Errors: {error, kind, hint}.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"workspace": "<workspace>",
"source": "<source>"
},
"name": "semantic_model_draft"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keys | No | Primary keys replacing the inferred ones. Default: inferred. Example: {"order_items": ["order_id", "line_no"]}. | |
| name | No | Name of the semantic model in the draft. Default "semantic_model". Example: "shop_model". | semantic_model |
| schema | No | Schema in the source. Default "dbo". | dbo |
| source | Yes | Lakehouse, warehouse or SQL database, name or id. | |
| tables | No | Table names or globs to show. Default all. Example: ["sales_*"]. | |
| validate | No | true runs validate_plan's counting queries and includes the counts; false (default) reads metadata only. | |
| confirmed | No | Relationships the user confirmed, added to the plan. Default none. Example: [{"source": "orders", "source_cols": ["ship_to_id"], "target": "addresses", "target_cols": ["address_id"]}]. | |
| workspace | Yes | Fabric workspace, name or id. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |