Skip to main content
Glama

generateVariableCode

Generate code to create and set variables in Spline 3D scenes, enabling dynamic control of scene parameters and values for interactive 3D designs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sceneIdYesScene ID
variableNameYesVariable name
valueNoVariable value

Implementation Reference

  • MCP tool registration for 'generateVariableCode', including input schema (Zod) and handler function that calls runtimeManager to generate code and returns it as text content.
    server.tool( 'generateVariableCode', { sceneId: z.string().min(1).describe('Scene ID'), variableName: z.string().min(1).describe('Variable name'), value: z.any().describe('Variable value'), }, async ({ sceneId, variableName, value }) => { try { const code = runtimeManager.generateVariableCode(sceneId, variableName, value); return { content: [ { type: 'text', text: code } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error generating code: ${error.message}` } ], isError: true }; } } );
  • The core handler function in RuntimeManager class that generates the JavaScript code snippet for loading a Spline scene and manipulating the specified variable (setting value, getting, listening, and example animation).
    generateVariableCode(sceneId, variableName, value) { const sceneUrl = `https://prod.spline.design/${sceneId}/scene.splinecode`; return ` import { Application } from '@splinetool/runtime'; // Create a new Application instance const canvas = document.getElementById('canvas3d'); const spline = new Application(canvas); // Load the scene spline.load('${sceneUrl}').then(() => { console.log('Scene loaded successfully'); // Set variable value spline.setVariable('${variableName}', ${JSON.stringify(value)}); // Get variable value const currentValue = spline.getVariable('${variableName}'); console.log('Current value:', currentValue); // Listen for variable changes spline.addEventListener('variableChanged', (e) => { if (e.variableName === '${variableName}') { console.log('Variable changed:', e.variableName, e.value); // React to variable change } }); // Example: Change variable over time let count = 0; const interval = setInterval(() => { count++; spline.setVariable('${variableName}', count); if (count >= 10) { clearInterval(interval); } }, 1000); }); `; }

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