merge_decoration_preset_branches
Semantically merges a decoration preset branch into another, resolves conflicts, records the merged version, and opens an interactive 3D stage to inspect the result.
Instructions
Merge source_branch into target_branch semantically. Opens Kiln's interactive inline 3D stage on the result (orbit/zoom panel in MCP Apps hosts; hosted sessions add a browser stage link).
Needs Kiln Pro.
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>",
"ancestor_preset_version_id": "<ancestor_preset_version_id>"
},
"name": "merge_decoration_preset_branches"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| merged_by | No | Who performs the merge. Omit it to use the caller's own identity: on Kiln's servers the signed-in account (a different name is refused), locally the declared operator or the computer's user name. On a team-owned preset the caller needs push rights, or the merge is refused. | |
| resolutions | No | ``{feature_id: strategy}`` for each conflict; required when there are conflicts (``CONFLICTS_REQUIRE_RESOLUTION``). Here branch A is the TARGET's head and branch B the SOURCE's, so ``prefer_branch_a`` keeps the target's value. Omit it when there are no conflicts. | |
| source_branch_id | Yes | Id of the preset branch being merged in. It must have a head version. | |
| target_branch_id | Yes | Id of the preset branch being merged into; the merged version is added to it. The merge is refused if its head moved while the merge was being recorded (``CONCURRENT_MODIFICATION``). | |
| ancestor_preset_version_id | Yes | Preset version id of the common ancestor the two heads are compared against. |