Skip to main content
Glama

addCamera

Add a camera to a 3D scene with customizable position, target, field of view, and perspective or orthographic projection type for viewing 3D designs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sceneIdYesScene ID
nameNoCamera nameCamera
positionNoCamera position
targetNoCamera target
typeNoCamera typeperspective
fovNoField of view (degrees)

Implementation Reference

  • The core handler function for the 'addCamera' MCP tool. It processes input parameters and returns a mock success response simulating the creation of a camera in a Spline.design scene.
    async ({ sceneId, name, position, target, type, fov }) => { try { // This would normally call the Spline API to create a camera // For now, just return a success message return { content: [ { type: 'text', text: `Camera "${name}" created successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error creating camera: ${error.message}` } ], isError: true }; } }
  • Zod validation schema defining the input parameters for the addCamera tool, including sceneId, camera name, position, target, type, and field of view.
    { sceneId: z.string().min(1).describe('Scene ID'), name: z.string().optional().default('Camera').describe('Camera name'), position: z.object({ x: z.number().default(0).describe('X position'), y: z.number().default(0).describe('Y position'), z: z.number().default(5).describe('Z position'), }).optional().describe('Camera position'), target: z.object({ x: z.number().default(0).describe('X target'), y: z.number().default(0).describe('Y target'), z: z.number().default(0).describe('Z target'), }).optional().describe('Camera target'), type: z.enum(['perspective', 'orthographic']).optional().default('perspective') .describe('Camera type'), fov: z.number().min(1).max(179).optional().default(45).describe('Field of view (degrees)'), }, async ({ sceneId, name, position, target, type, fov }) => {
  • Direct registration of the 'addCamera' tool using server.tool(), including inline schema and handler within the registerLightingCameraTools function.
    server.tool( 'addCamera', { sceneId: z.string().min(1).describe('Scene ID'), name: z.string().optional().default('Camera').describe('Camera name'), position: z.object({ x: z.number().default(0).describe('X position'), y: z.number().default(0).describe('Y position'), z: z.number().default(5).describe('Z position'), }).optional().describe('Camera position'), target: z.object({ x: z.number().default(0).describe('X target'), y: z.number().default(0).describe('Y target'), z: z.number().default(0).describe('Z target'), }).optional().describe('Camera target'), type: z.enum(['perspective', 'orthographic']).optional().default('perspective') .describe('Camera type'), fov: z.number().min(1).max(179).optional().default(45).describe('Field of view (degrees)'), }, async ({ sceneId, name, position, target, type, fov }) => { try { // This would normally call the Spline API to create a camera // For now, just return a success message return { content: [ { type: 'text', text: `Camera "${name}" created successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error creating camera: ${error.message}` } ], isError: true }; } } );
  • src/index.js:98-98 (registration)
    Top-level registration of lighting and camera tools (including addCamera) by calling registerLightingCameraTools on the main MCP server instance.
    registerLightingCameraTools(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