← WebMCP Directory

Tool tree

gosx3d.m31labs.dev

Developer ToolsTools verified
Website
Agent-native 3D scene workbench where people and browser agents inspect, focus, and stage revision-safe changes while humans keep commit authority.
Explore capabilities

    page: Every page

    scene_get_stateAnswer

    Read a concise canonical SceneDoc overview: revision, object/component counts, roots, materials, camera, environment, and current selection. Call this before preparing revision-safe actions.

    View tool JSON
    {
      "name": "scene_get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read a concise canonical SceneDoc overview: revision, object/component counts, roots, materials, camera, environment, and current selection. Call this before preparing revision-safe actions.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {}
      },
      "page": "/"
    }
    scene_find_objectsAnswer

    Search canonical SceneDoc objects by stable ID or human name, optionally filtering by component type and visibility. Returns concise object records with transforms for planning actions.

    View tool JSON
    {
      "name": "scene_find_objects",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search canonical SceneDoc objects by stable ID or human name, optionally filtering by component type and visibility. Returns concise object records with transforms for planning actions.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "query": {
            "type": "string",
            "maxLength": 120,
            "description": "Case-insensitive substring of object name or stable ID. Empty returns all objects up to limit."
          },
          "types": {
            "type": "array",
            "maxItems": 6,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "group",
                "mesh",
                "light",
                "model",
                "prefab",
                "physics"
              ]
            }
          },
          "visibleOnly": {
            "type": "boolean",
            "default": false
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 20
          }
        }
      },
      "page": "/"
    }
    scene_focus_objectAction

    Request that the visible Studio UI focus and select one canonical object by stable ID so the viewport and Inspector converge. This only changes ephemeral UI state; it never mutates the canonical SceneDoc or commits an edit.

    View tool JSON
    {
      "name": "scene_focus_object",
      "kind": "act",
      "impl": "imperative",
      "description": "Request that the visible Studio UI focus and select one canonical object by stable ID so the viewport and Inspector converge. This only changes ephemeral UI state; it never mutates the canonical SceneDoc or commits an edit.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "objectId"
        ],
        "properties": {
          "objectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Stable SceneDoc object or material ID."
          }
        }
      },
      "page": "/"
    }
    scene_preview_actionsAction

    Validate and visibly stage 1-12 reversible scene actions against an exact canonical revision. This never commits: a human must review and explicitly commit the opaque proposal in the Studio UI. Use scene_get_state and scene_find_objects first.

    View tool JSON
    {
      "name": "scene_preview_actions",
      "kind": "act",
      "impl": "imperative",
      "description": "Validate and visibly stage 1-12 reversible scene actions against an exact canonical revision. This never commits: a human must review and explicitly commit the opaque proposal in the Studio UI. Use scene_get_state and scene_find_objects first.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "expectedRevision",
          "title",
          "operations"
        ],
        "properties": {
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "description": "Exact canonical revision returned by scene_get_state."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "Short human-facing proposal title."
          },
          "rationale": {
            "type": "string",
            "maxLength": 400,
            "description": "Why these actions help the user's stated goal."
          },
          "operations": {
            "type": "array",
            "minItems": 1,
            "maxItems": 12,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "kind",
                    "target",
                    "name"
                  ],
                  "properties": {
                    "kind": {
                      "const": "rename-entity"
                    },
                    "target": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160,
                      "description": "Stable SceneDoc object or material ID."
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    }
                  }
                },
                {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "kind",
                    "target",
                    "transform"
                  ],
                  "properties": {
                    "kind": {
                      "const": "set-transform"
                    },
                    "target": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160,
                      "description": "Stable SceneDoc object or material ID."
                    },
                    "transform": {
                      "type": "object",
                      "additionalProperties": false,
                      "minProperties": 1,
                      "description": "Only include transform fields to change. Rotation is XYZ Euler radians.",
                      "properties": {
                        "position": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "x",
                            "y",
                            "z"
                          ],
                          "properties": {
                            "x": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            },
                            "y": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            },
                            "z": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            }
                          }
                        },
                        "rotation": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "x",
                            "y",
                            "z"
                          ],
                          "properties": {
                            "x": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            },
                            "y": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            },
                            "z": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            }
                          }
                        },
                        "scale": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "x",
                            "y",
                            "z"
                          ],
                          "properties": {
                            "x": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            },
                            "y": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            },
                            "z": {
                              "type": "number",
                              "minimum": -1000000,
                              "maximum": 1000000
                            }
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "kind",
                    "target",
                    "material"
                  ],
                  "properties": {
                    "kind": {
                      "const": "assign-material"
                    },
                    "target": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160,
                      "description": "Stable SceneDoc object or material ID."
                    },
                    "material": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160,
                      "description": "Stable SceneDoc object or material ID."
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "page": "/"
    }