Skip to main content
Glama

configureEventParameters

Configure event parameters for 3D scenes by setting event types, trigger areas, key codes, collision groups, and custom properties to define interactive behaviors in Spline.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sceneIdYesScene ID
eventIdYesEvent ID
eventTypeYesEvent type
keyCodeNoKey code for keyboard events
distanceNoDistance for spatial events
targetObjectIdNoTarget object for lookAt/follow events
variableNameNoVariable name for variableChange events
collisionGroupNoCollision group for physics events
triggerAreaNoTrigger area dimensions
aiPromptNoPrompt for AI assistant events
customParametersNoAny additional custom parameters

Implementation Reference

  • The handler function that takes event configuration parameters, constructs event-specific parameters using a switch on eventType, and updates the event parameters via API.
    async ({ sceneId, eventId, eventType, keyCode, distance, targetObjectId, variableName, collisionGroup, triggerArea, aiPrompt, customParameters }) => { try { // Construct parameters based on event type let parameters = {}; switch (eventType) { case 'keyUp': case 'keyDown': case 'keyPress': parameters = { keyCode }; break; case 'distance': parameters = { distance, targetObjectId }; break; case 'lookAt': case 'follow': parameters = { targetObjectId }; break; case 'variableChange': parameters = { variableName }; break; case 'collision': parameters = { collisionGroup }; break; case 'triggerArea': parameters = { triggerArea }; break; case 'aiAssistantListener': case 'aiAssistantTrigger': parameters = { aiPrompt }; break; default: // For other events, use custom parameters parameters = customParameters || {}; } // Update the event with the configured parameters await apiClient.request('PUT', `/scenes/${sceneId}/events/${eventId}/parameters`, parameters); return { content: [ { type: 'text', text: `Parameters for event ${eventId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring event parameters: ${error.message}` } ], isError: true }; } } );
  • Zod schema defining the input parameters for the configureEventParameters tool, including sceneId, eventId, eventType, and various optional type-specific parameters.
    sceneId: z.string().min(1).describe('Scene ID'), eventId: z.string().min(1).describe('Event ID'), eventType: z.string().min(1).describe('Event type'), // Dynamic parameters based on event type keyCode: z.string().optional().describe('Key code for keyboard events'), distance: z.number().optional().describe('Distance for spatial events'), targetObjectId: z.string().optional().describe('Target object for lookAt/follow events'), variableName: z.string().optional().describe('Variable name for variableChange events'), collisionGroup: z.string().optional().describe('Collision group for physics events'), triggerArea: z.object({ position: z.object({ x: z.number(), y: z.number(), z: z.number(), }), size: z.object({ x: z.number(), y: z.number(), z: z.number(), }), }).optional().describe('Trigger area dimensions'), aiPrompt: z.string().optional().describe('Prompt for AI assistant events'), customParameters: z.record(z.any()).optional().describe('Any additional custom parameters') },
  • The server.tool call that registers the 'configureEventParameters' tool with its schema and handler function.
    server.tool( 'configureEventParameters', { sceneId: z.string().min(1).describe('Scene ID'), eventId: z.string().min(1).describe('Event ID'), eventType: z.string().min(1).describe('Event type'), // Dynamic parameters based on event type keyCode: z.string().optional().describe('Key code for keyboard events'), distance: z.number().optional().describe('Distance for spatial events'), targetObjectId: z.string().optional().describe('Target object for lookAt/follow events'), variableName: z.string().optional().describe('Variable name for variableChange events'), collisionGroup: z.string().optional().describe('Collision group for physics events'), triggerArea: z.object({ position: z.object({ x: z.number(), y: z.number(), z: z.number(), }), size: z.object({ x: z.number(), y: z.number(), z: z.number(), }), }).optional().describe('Trigger area dimensions'), aiPrompt: z.string().optional().describe('Prompt for AI assistant events'), customParameters: z.record(z.any()).optional().describe('Any additional custom parameters') }, async ({ sceneId, eventId, eventType, keyCode, distance, targetObjectId, variableName, collisionGroup, triggerArea, aiPrompt, customParameters }) => { try { // Construct parameters based on event type let parameters = {}; switch (eventType) { case 'keyUp': case 'keyDown': case 'keyPress': parameters = { keyCode }; break; case 'distance': parameters = { distance, targetObjectId }; break; case 'lookAt': case 'follow': parameters = { targetObjectId }; break; case 'variableChange': parameters = { variableName }; break; case 'collision': parameters = { collisionGroup }; break; case 'triggerArea': parameters = { triggerArea }; break; case 'aiAssistantListener': case 'aiAssistantTrigger': parameters = { aiPrompt }; break; default: // For other events, use custom parameters parameters = customParameters || {}; } // Update the event with the configured parameters await apiClient.request('PUT', `/scenes/${sceneId}/events/${eventId}/parameters`, parameters); return { content: [ { type: 'text', text: `Parameters for event ${eventId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring event parameters: ${error.message}` } ], isError: true }; } } );
  • src/index.js:96-96 (registration)
    Top-level call to registerCompleteEventTools(server) which includes the registration of configureEventParameters.
    registerCompleteEventTools(server);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aydinfer/spline-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server