configureGlassLayer
Configure glass material properties in 3D scenes by setting tint color, index of refraction, roughness, and thickness parameters for realistic glass rendering.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sceneId | Yes | Scene ID | |
| materialId | Yes | Material ID | |
| layerId | Yes | Layer ID | |
| tint | No | Glass tint color (hex, rgb, or rgba) | |
| ior | No | Index of refraction | |
| roughness | No | Glass roughness | |
| thickness | No | Glass thickness |
Implementation Reference
- The main handler function for the 'configureGlassLayer' tool. It constructs layer parameters from inputs and sends a PUT request to the Spline API to update the glass layer on the specified material.async ({ sceneId, materialId, layerId, tint, ior, roughness, thickness }) => { try { const layerParams = { ...(tint && { tint }), ...(ior !== undefined && { ior }), ...(roughness !== undefined && { roughness }), ...(thickness !== undefined && { thickness }), }; await apiClient.request('PUT', `/scenes/${sceneId}/materials/${materialId}/layers/${layerId}`, { params: layerParams }); return { content: [ { type: 'text', text: `Glass layer ${layerId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring glass layer: ${error.message}` } ], isError: true }; } }
- Zod input schema validating parameters for configuring a glass layer: sceneId, materialId, layerId, tint, ior, roughness, thickness.sceneId: z.string().min(1).describe('Scene ID'), materialId: z.string().min(1).describe('Material ID'), layerId: z.string().min(1).describe('Layer ID'), tint: z.string().optional().describe('Glass tint color (hex, rgb, or rgba)'), ior: z.number().min(1).optional().default(1.5).describe('Index of refraction'), roughness: z.number().min(0).max(1).optional().default(0).describe('Glass roughness'), thickness: z.number().min(0).optional().default(0.1).describe('Glass thickness'), },
- src/tools/advanced-material-tools.js:395-439 (registration)Direct registration of the 'configureGlassLayer' tool on the MCP server using server.tool(), including inline schema and handler.server.tool( 'configureGlassLayer', { sceneId: z.string().min(1).describe('Scene ID'), materialId: z.string().min(1).describe('Material ID'), layerId: z.string().min(1).describe('Layer ID'), tint: z.string().optional().describe('Glass tint color (hex, rgb, or rgba)'), ior: z.number().min(1).optional().default(1.5).describe('Index of refraction'), roughness: z.number().min(0).max(1).optional().default(0).describe('Glass roughness'), thickness: z.number().min(0).optional().default(0.1).describe('Glass thickness'), }, async ({ sceneId, materialId, layerId, tint, ior, roughness, thickness }) => { try { const layerParams = { ...(tint && { tint }), ...(ior !== undefined && { ior }), ...(roughness !== undefined && { roughness }), ...(thickness !== undefined && { thickness }), }; await apiClient.request('PUT', `/scenes/${sceneId}/materials/${materialId}/layers/${layerId}`, { params: layerParams }); return { content: [ { type: 'text', text: `Glass layer ${layerId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring glass layer: ${error.message}` } ], isError: true }; } } );
- src/index.js:97-97 (registration)Top-level registration call that invokes the advanced material tools module (containing configureGlassLayer) on the main MCP server instance.registerAdvancedMaterialTools(server);