createParametricObject
Create 3D objects like cubes, spheres, and cylinders in Spline scenes with customizable positioning and shape parameters for 3D design projects.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sceneId | Yes | Scene ID | |
| type | Yes | Object type | |
| name | Yes | Object name | |
| position | No | Object position | |
| parameters | No | Shape-specific parameters |
Implementation Reference
- src/index.js:24-24 (registration)Imports the registerDesignTools function which registers the createParametricObject tool.import { registerDesignTools } from './tools/design-tools.js';
- src/index.js:101-101 (registration)Calls registerDesignTools to register the createParametricObject tool on the MCP server.registerDesignTools(server);
- src/tools/design-tools.js:11-24 (schema)Zod input schema for the createParametricObject tool defining sceneId, type, name, position, and parameters.{ sceneId: z.string().min(1).describe('Scene ID'), type: z.enum([ 'cube', 'sphere', 'cylinder', 'cone', 'torus', 'plane', 'circle', 'polygon', 'star', 'ring' ]).describe('Object type'), name: z.string().min(1).describe('Object name'), position: z.object({ x: z.number().default(0).describe('X position'), y: z.number().default(0).describe('Y position'), z: z.number().default(0).describe('Z position'), }).optional().describe('Object position'), parameters: z.record(z.any()).optional().describe('Shape-specific parameters'), },
- src/tools/design-tools.js:25-48 (handler)Handler function that simulates creating a parametric object by returning a success message (mock implementation).async ({ sceneId, type, name, position, parameters }) => { try { // This would normally call the Spline API to create a parametric object // For now, just return a success message return { content: [ { type: 'text', text: `Parametric object "${name}" of type "${type}" created successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error creating parametric object: ${error.message}` } ], isError: true }; } }
- src/tools/design-tools.js:10-49 (registration)The server.tool call that registers the createParametricObject tool with its schema and handler.'createParametricObject', { sceneId: z.string().min(1).describe('Scene ID'), type: z.enum([ 'cube', 'sphere', 'cylinder', 'cone', 'torus', 'plane', 'circle', 'polygon', 'star', 'ring' ]).describe('Object type'), name: z.string().min(1).describe('Object name'), position: z.object({ x: z.number().default(0).describe('X position'), y: z.number().default(0).describe('Y position'), z: z.number().default(0).describe('Z position'), }).optional().describe('Object position'), parameters: z.record(z.any()).optional().describe('Shape-specific parameters'), }, async ({ sceneId, type, name, position, parameters }) => { try { // This would normally call the Spline API to create a parametric object // For now, just return a success message return { content: [ { type: 'text', text: `Parametric object "${name}" of type "${type}" created successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error creating parametric object: ${error.message}` } ], isError: true }; } } );