merge_design_branches
Merge a source design branch into a target, record conflict resolutions, and open an interactive 3D stage to inspect the merged result.
Instructions
Record a merge of source into target with conflict resolution. Opens Kiln's interactive inline 3D stage on the result (orbit/zoom panel in MCP Apps hosts; hosted sessions add a browser stage link).
Free door, tiered answer — Free: Branch · merge · cherry-pick · undo, on the designs you keep · Pro: Branch · merge · cherry-pick · undo, on every design · Business: ✓ · Enterprise: ✓.
INLINE 3D STAGE: on success this tool opens Kiln's interactive 3D stage — an inline viewer panel the user can orbit, zoom, and turn over — in hosts that render MCP Apps panels (Kiln's hosted connection attaches a browser stage link for hosts that don't). Oversized meshes are decimated automatically for the stage; the PNG preview is the floor, not the whole experience.
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": {
"source_branch_id": "<source_branch_id>",
"target_branch_id": "<target_branch_id>"
},
"name": "merge_design_branches"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pr_id | No | Optional explicit pull-request id to satisfy the gate with. Omitted → the open/approved PR on this exact source→target pair is used. | |
| merged_by | No | User identifier for audit (server-verified against the authenticated session; derived from JWT). | |
| resolutions | No | Answers to the merge's open questions, ``{item_id: choice}``, where a choice is ``prefer_branch_a`` (the source), ``prefer_branch_b`` (the target), ``apply_neither``, a branch's name or ``original``; ``{"*": choice}`` answers every item not named. Omit it when ``detect_merge_conflicts`` reported ``ready``. | |
| merge_strategy | No | How the merged version was composed, recorded on the merge: ``semantic`` (the default), ``source``, ``mesh_boolean``, ``source_with_conflicts``, ``user_curated`` or ``sketch``. Any other value, the empty string included, is refused. A sketch-built part records ``sketch`` whatever is passed. Default: "semantic". | |
| source_branch_id | Yes | Branch supplying the changes. | |
| target_branch_id | Yes | Branch receiving the merge. | |
| merged_version_id | No | The composed result. Omit it for a sketch-built part and Kiln builds it; required otherwise. | |
| ancestor_version_id | No | Common ancestor for the mesh path (without it, mesh conflict detection is skipped). A sketch merge always reads from the true split point. |