Skip to main content
Glama

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
NameRequiredDescriptionDefault
sceneIdYesScene ID
typeYesObject type
nameYesObject name
positionNoObject position
parametersNoShape-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);
  • 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'), },
  • 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 }; } }
  • 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 }; } } );

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