Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WS_PORT | No | WebSocket server port (default: 3001) | 3001 |
| MCP_PORT | No | MCP server port (default: 3000) | 3000 |
| BROWSER_URL | No | Browser URL for the 3D app frontend. Used when generating connection URLs for MCP clients. Default: http://localhost:5173 | http://localhost:5173 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| change_model_color | Change the color of the 3D model in the scene |
| change_model_size | Change the uniform size of the 3D model |
| scale_model | Scale the 3D model independently in each dimension (x, y, z) |
| change_background_color | Change the background color of the 3D scene |
| get_background_color | Get the current scene background color as a hex color code (e.g., "#000000"). Query this before relative color changes to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| set_key_light_intensity | Set the intensity of the key light (main light source) |
| set_key_light_color | Set the color of the key light |
| swing_key_light_up | Rotate the key light upward in an arc around the center of the model |
| swing_key_light_down | Rotate the key light downward in an arc around the center of the model |
| swing_key_light_left | Rotate the key light leftward in an arc around the center of the model |
| swing_key_light_right | Rotate the key light rightward in an arc around the center of the model |
| set_fill_light_intensity | Set the intensity of the fill light (shadow-filling light) |
| set_fill_light_color | Set the color of the fill light |
| swing_fill_light_up | Rotate the fill light upward in an arc around the center of the model |
| swing_fill_light_down | Rotate the fill light downward in an arc around the center of the model |
| swing_fill_light_left | Rotate the fill light leftward in an arc around the center of the model |
| swing_fill_light_right | Rotate the fill light rightward in an arc around the center of the model |
| walk_key_light_in | Move the key light closer to the center of the model along the axis from the model origin |
| walk_key_light_out | Move the key light farther from the center of the model along the axis from the model origin |
| walk_fill_light_in | Move the fill light closer to the center of the model along the axis from the model origin |
| walk_fill_light_out | Move the fill light farther from the center of the model along the axis from the model origin |
| set_key_light_position_spherical | Set the key light position using camera-centric spherical coordinates. Preserves current distance - only changes azimuth and elevation. Azimuth: 0° = camera forward (North), 90° = camera right (East), 180° = behind camera (South), 270° = camera left (West). Elevation: 0° = horizon, 90° = overhead. Azimuth can be a number (0-360) or a direction name. Available direction names: north, east, south, west, northeast, northwest, southeast, southwest, ne, nw, se, sw, nne, ene, ese, sse, ssw, wsw, wnw, nnw. Examples: "north" (0°), "east" (90°), "northwest" (315°), "southeast" (135°). |
| get_key_light_position_spherical | Get the current key light position in camera-centric spherical coordinates. Query this before relative position changes (e.g., "rotate light 10 degrees") to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_key_light_intensity | Get the current key light intensity value (0.0 or higher). Query this before relative intensity changes (e.g., "increase by 0.5") to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_key_light_color | Get the current key light color as a hex color code (e.g., "#ffffff"). Query this before relative color changes to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_key_light_size | Get the current key light area size (width and height in units). Query this before relative size changes to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| set_fill_light_position_spherical | Set the fill light position using camera-centric spherical coordinates. Preserves current distance - only changes azimuth and elevation. Azimuth: 0° = camera forward (North), 90° = camera right (East), 180° = behind camera (South), 270° = camera left (West). Elevation: 0° = horizon, 90° = overhead. Azimuth can be a number (0-360) or a direction name. Available direction names: north, east, south, west, northeast, northwest, southeast, southwest, ne, nw, se, sw, nne, ene, ese, sse, ssw, wsw, wnw, nnw. Examples: "north" (0°), "east" (90°), "northwest" (315°), "southeast" (135°). |
| get_fill_light_position_spherical | Get the current fill light position in camera-centric spherical coordinates. Query this before relative position changes (e.g., "rotate light 10 degrees") to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_fill_light_intensity | Get the current fill light intensity value (0.0 or higher). Query this before relative intensity changes (e.g., "increase by 0.5") to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_fill_light_color | Get the current fill light color as a hex color code (e.g., "#ffffff"). Query this before relative color changes to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_fill_light_size | Get the current fill light area size (width and height in units). Query this before relative size changes to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| dolly_camera | Set the camera distance from the origin (dollying). Moves the camera closer or farther from the subject. |
| dolly_camera_in | Move the camera closer to the subject (dolly in) |
| dolly_camera_out | Move the camera farther from the subject (dolly out) |
| set_camera_fov | Set the camera field of view (FOV). Lower values = wider angle (more of scene visible), higher values = narrower angle (more zoomed in). |
| increase_camera_fov | Increase the camera field of view (wider angle, see more of the scene) |
| decrease_camera_fov | Decrease the camera field of view (narrower angle, more zoomed in) |
| get_camera_distance | Get the current camera distance from origin (dolly position). Query this before relative distance changes to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_camera_fov | Get the current camera field of view (FOV) value. Query this before relative FOV changes to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_model_rotation | Get the current model rotation as Euler angles in degrees (XYZ order). Returns pitch (x), yaw (y), and roll (z) angles. Query this before relative rotation changes (e.g., "rotate 10 degrees") to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_model_color | Get the current model color as a hex color code (e.g., "#ff0000"). Query this before relative color changes (e.g., "darken by 10%") to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| get_model_scale | Get the current model scale in each dimension (x, y, z) as scale factors. Query this before relative scale changes (e.g., "scale by 1.5x") to ensure accuracy. For absolute changes, you may use recently queried state from context if no manual interactions occurred. |
| set_model_rotation | Set the model rotation using Euler angles in degrees (XYZ order). X = pitch (rotation around X axis), Y = yaw (rotation around Y axis), Z = roll (rotation around Z axis). |
| rotate_model_clockwise | Rotate the model clockwise around Y axis (yaw) relative to current rotation. This tool automatically queries fresh state before performing the rotation to ensure accuracy, even if the user has manually interacted with the model. |
| rotate_model_counterclockwise | Rotate the model counterclockwise around Y axis (yaw) relative to current rotation. This tool automatically queries fresh state before performing the rotation to ensure accuracy, even if the user has manually interacted with the model. |
| nudge_model_pitch_up | Adjust the model pitch (X axis rotation) upward relative to current rotation. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually interacted with the model. |
| nudge_model_pitch_down | Adjust the model pitch (X axis rotation) downward relative to current rotation. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually interacted with the model. |
| nudge_model_roll | Adjust the model roll (Z axis rotation) relative to current rotation. Positive values rotate clockwise. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually interacted with the model. |
| rotate_key_light_clockwise | Rotate the key light clockwise (decreases azimuth) relative to current position. This tool automatically queries fresh state before performing the rotation to ensure accuracy, even if the user has manually moved the light. |
| rotate_key_light_counterclockwise | Rotate the key light counterclockwise (increases azimuth) relative to current position. This tool automatically queries fresh state before performing the rotation to ensure accuracy, even if the user has manually moved the light. |
| nudge_key_light_elevation_up | Adjust the key light elevation upward relative to current position. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually moved the light. |
| nudge_key_light_elevation_down | Adjust the key light elevation downward relative to current position. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually moved the light. |
| move_key_light_toward_direction | Move the key light toward a specific direction relative to current position. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually moved the light. Available directions: north, east, south, west, northeast, northwest, southeast, southwest, ne, nw, se, sw, nne, ene, ese, sse, ssw, wsw, wnw, nnw. |
| rotate_fill_light_clockwise | Rotate the fill light clockwise (decreases azimuth) relative to current position. This tool automatically queries fresh state before performing the rotation to ensure accuracy, even if the user has manually moved the light. |
| rotate_fill_light_counterclockwise | Rotate the fill light counterclockwise (increases azimuth) relative to current position. This tool automatically queries fresh state before performing the rotation to ensure accuracy, even if the user has manually moved the light. |
| nudge_fill_light_elevation_up | Adjust the fill light elevation upward relative to current position. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually moved the light. |
| nudge_fill_light_elevation_down | Adjust the fill light elevation downward relative to current position. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually moved the light. |
| move_fill_light_toward_direction | Move the fill light toward a specific direction relative to current position. This tool automatically queries fresh state before performing the adjustment to ensure accuracy, even if the user has manually moved the light. Available directions: north, east, south, west, northeast, northwest, southeast, southwest, ne, nw, se, sw, nne, ene, ese, sse, ssw, wsw, wnw, nnw. |
| set_key_light_distance | Set the distance of the key light from the model origin. Preserves current azimuth and elevation angles. |
| set_fill_light_distance | Set the distance of the fill light from the model origin. Preserves current azimuth and elevation angles. |
| get_browser_connection_url | Get the URL to open in your browser to connect the 3D visualization app. Use this when users ask how to connect or how to open the 3D app. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |