agentic3d-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENAI_API_KEY | Yes | OpenAI API key used by the agent and evaluation code (read from .env at repository root) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| load_sceneA | Load a scene mesh (.glb/.obj/.ply). Creates an uneditable scene shell; call segment_scene next to make objects editable. Returns face count, bounds, and floor height. |
| segment_sceneC | Segment the loaded mesh into editable objects for the given names (e.g. ['chair', 'table']). Rebuilds the scene graph. Returns the scene info: object ids, labels, world centers and sizes, floor_z, room_bounds. |
| get_scene_infoA | Return the current scene info: object ids, labels, world centers and sizes, base heights, collisions, floor_z, and room_bounds. |
| add_objectA | Retrieve a 3D asset from Objaverse by text query and place it on the floor at world (x, y) with the given yaw in degrees. label names the new object; category is an optional single noun to steer retrieval. |
| remove_objectA | Remove an object by id. The floor and walls under it are filled in. |
| move_objectA | Move an object by id to world position (x, y). It stays on the floor and inside the room; the returned report notes any unresolved collision. |
| rotate_objectA | Rotate an object by id about the vertical axis by yaw_deg degrees. |
| scale_objectA | Scale an object by id by a multiplicative factor (>1 larger, <1 smaller). The base stays on the floor and the size is clamped to the room. |
| replace_objectA | Replace an object by id with a freshly retrieved Objaverse asset, keeping its footprint position. category is an optional single noun for retrieval. |
| undoB | Undo the last edit. |
| render_sceneA | Render the current scene from one orbiting camera and return the image. azimuth_deg orbits around the vertical axis, elevation_deg tilts up. |
| save_sceneB | Write the current composed scene to a .glb file at path. |
| edit_with_agentA | Run the full editing agent on one instruction with an internal model: it picks the objects to segment, plans and applies the edits, verifies the result from renders, and revises. Pass scene_path to load and segment a fresh scene, or omit it to act on the scene already loaded. Returns a summary of what the agent did and a render. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| edit_scene | Walk through editing a scene mesh to satisfy an instruction: load it, segment the objects the instruction names, apply the edit tools, then render and save. |
| describe_scene | Load a scene mesh and describe what is in it from a few rendered views. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool maps to a distinct action in the 3D scene editing workflow: loading, segmenting, querying, adding/removing, transforming, undo, rendering, saving, and high-level editing. Even load_scene and segment_scene are clearly separated by their roles despite both returning scene info. No two tools appear to perform the same operation.
Tool names consistently follow a snake_case verb_noun pattern (load_scene, add_object, render_scene). Minor deviations like get_scene_info and edit_with_agent are still verb-first and fit the broader convention. The naming is predictable and easy to scan.
13 tools is well-scoped for a 3D scene composition server. Each tool covers a core lifecycle or editing operation without unnecessary redundancy. The count feels appropriate for the domain.
The server provides full coverage of the scene editing workflow: load, segment, inspect, add/remove, transform, replace, undo, render, and save. Object manipulation covers the essential operations agents need, and edit_with_agent offers a high-level fallback for complex changes. No obvious dead ends or critical missing operations.