createWebhook
Create webhooks for Spline 3D scenes to map external parameters to scene variables, enabling dynamic content updates and interactive experiences.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sceneId | Yes | Scene ID | |
| name | Yes | Webhook name | |
| parameterMappings | No | Parameter mappings |
Implementation Reference
- src/tools/api-webhook-tools.js:142-182 (registration)Registers the createWebhook MCP tool, including inline Zod schema for inputs (sceneId, name, parameterMappings) and the handler function that constructs webhook data and calls apiClient.createWebhookserver.tool( 'createWebhook', { sceneId: z.string().min(1).describe('Scene ID'), name: z.string().min(1).describe('Webhook name'), parameterMappings: z.array(z.object({ paramName: z.string().describe('Parameter name in webhook'), variableName: z.string().describe('Spline variable name'), variableType: z.enum(['string', 'number', 'boolean']).describe('Variable type'), })).optional().describe('Parameter mappings'), }, async ({ sceneId, name, parameterMappings }) => { try { const webhookData = { name, ...(parameterMappings && { parameterMappings }), }; const result = await apiClient.createWebhook(sceneId, webhookData); return { content: [ { type: 'text', text: `Webhook created successfully with ID: ${result.id} and URL: ${result.url}` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error creating webhook: ${error.message}` } ], isError: true }; } } );
- src/tools/api-webhook-tools.js:153-180 (handler)Handler function for the createWebhook tool. Prepares the webhookData object from the input parameters and invokes apiClient.createWebhook to interact with the Spline API.async ({ sceneId, name, parameterMappings }) => { try { const webhookData = { name, ...(parameterMappings && { parameterMappings }), }; const result = await apiClient.createWebhook(sceneId, webhookData); return { content: [ { type: 'text', text: `Webhook created successfully with ID: ${result.id} and URL: ${result.url}` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error creating webhook: ${error.message}` } ], isError: true }; }
- Zod input schema for the createWebhook tool defining required sceneId and name, optional parameterMappings array.{ sceneId: z.string().min(1).describe('Scene ID'), name: z.string().min(1).describe('Webhook name'), parameterMappings: z.array(z.object({ paramName: z.string().describe('Parameter name in webhook'), variableName: z.string().describe('Spline variable name'), variableType: z.enum(['string', 'number', 'boolean']).describe('Variable type'), })).optional().describe('Parameter mappings'), },
- src/utils/api-client.js:203-205 (helper)Helper method in SplineApiClient that performs the actual API call to create a webhook by POSTing to /scenes/{sceneId}/webhooksasync createWebhook(sceneId, webhookData) { return this.request('POST', `/scenes/${sceneId}/webhooks`, webhookData); }
- src/index.js:91-91 (registration)Top-level registration call to registerApiWebhookTools on the MCP server instance, which includes the createWebhook tool.registerApiWebhookTools(server);