configureConditionalAction
Set up conditional logic in 3D scenes to trigger specific actions based on variable comparisons, enabling dynamic behavior in Spline designs.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sceneId | Yes | Scene ID | |
| actionId | Yes | Action ID | |
| variableName | Yes | Variable name to check | |
| condition | Yes | Condition to check | |
| value | No | Value to compare against | |
| trueActionIds | Yes | Actions to trigger if condition is true | |
| falseActionIds | No | Actions to trigger if condition is false |
Implementation Reference
- src/tools/action-tools.js:264-297 (handler)Handler function that implements the configureConditionalAction tool logic: updates the action parameters for a conditional action type via API PUT request.async ({ sceneId, actionId, variableName, condition, value, trueActionIds, falseActionIds }) => { try { const parameters = { variableName, condition, value, trueActions: trueActionIds, ...(falseActionIds && { falseActions: falseActionIds }), }; await apiClient.request('PUT', `/scenes/${sceneId}/actions/${actionId}`, { type: 'conditional', parameters }); return { content: [ { type: 'text', text: `Conditional action ${actionId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring conditional action: ${error.message}` } ], isError: true }; }
- src/tools/action-tools.js:254-263 (schema)Zod input schema defining parameters for the configureConditionalAction tool.{ sceneId: z.string().min(1).describe('Scene ID'), actionId: z.string().min(1).describe('Action ID'), variableName: z.string().min(1).describe('Variable name to check'), condition: z.enum(['equals', 'notEquals', 'greaterThan', 'lessThan', 'contains']) .describe('Condition to check'), value: z.any().describe('Value to compare against'), trueActionIds: z.array(z.string()).describe('Actions to trigger if condition is true'), falseActionIds: z.array(z.string()).optional().describe('Actions to trigger if condition is false'), },
- src/tools/action-tools.js:252-299 (registration)Registration of the configureConditionalAction MCP tool within the registerActionTools function using server.tool().server.tool( 'configureConditionalAction', { sceneId: z.string().min(1).describe('Scene ID'), actionId: z.string().min(1).describe('Action ID'), variableName: z.string().min(1).describe('Variable name to check'), condition: z.enum(['equals', 'notEquals', 'greaterThan', 'lessThan', 'contains']) .describe('Condition to check'), value: z.any().describe('Value to compare against'), trueActionIds: z.array(z.string()).describe('Actions to trigger if condition is true'), falseActionIds: z.array(z.string()).optional().describe('Actions to trigger if condition is false'), }, async ({ sceneId, actionId, variableName, condition, value, trueActionIds, falseActionIds }) => { try { const parameters = { variableName, condition, value, trueActions: trueActionIds, ...(falseActionIds && { falseActions: falseActionIds }), }; await apiClient.request('PUT', `/scenes/${sceneId}/actions/${actionId}`, { type: 'conditional', parameters }); return { content: [ { type: 'text', text: `Conditional action ${actionId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring conditional action: ${error.message}` } ], isError: true }; } } );