← WebMCP Directory

Tool tree

shipwright-editor.kevinwhinnery.chatgpt.site

Media & PersonalTools verified
Website
Build, move, and save polygonal spacecraft in a retro holographic editor.
Explore capabilities
    get_editor_stateAnswer

    Get the current ship design, selected part, camera, and save state in the Shipwright editor.

    View tool JSON
    {
      "name": "get_editor_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the current ship design, selected part, camera, and save state in the Shipwright editor.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    add_ship_partAction

    Add one polygonal part to the visible ship design and select it.

    View tool JSON
    {
      "name": "add_ship_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Add one polygonal part to the visible ship design and select it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "box",
              "wedge",
              "ramp",
              "trapezoid",
              "tapered-block",
              "cylinder",
              "sphere",
              "cone"
            ]
          },
          "position": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 3,
            "maxItems": 3
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      }
    }
    update_ship_partAction

    Move, rotate, scale, recolor, texture, rename, or change supported shape features on an existing ship part. Transform values are absolute.

    View tool JSON
    {
      "name": "update_ship_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Move, rotate, scale, recolor, texture, rename, or change supported shape features on an existing ship part. Transform values are absolute.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "texture": {
            "type": "string",
            "enum": [
              "smooth",
              "brushed",
              "plated",
              "composite"
            ]
          },
          "features": {
            "type": "object",
            "description": "Shape-specific toggles. Use chamfered for boxes, hollow for cylinders, and truncated for cones.",
            "properties": {
              "chamfered": {
                "type": "boolean",
                "description": "Chamfer the edges of a box."
              },
              "hollow": {
                "type": "boolean",
                "description": "Turn a cylinder into a hollow tube."
              },
              "truncated": {
                "type": "boolean",
                "description": "Turn a cone into a conical frustum."
              }
            },
            "additionalProperties": false
          },
          "position": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 3,
            "maxItems": 3
          },
          "rotation": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 3,
            "maxItems": 3
          },
          "scale": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 3,
            "maxItems": 3
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    remove_ship_partAction

    Remove one part from the visible ship design by its ID.

    View tool JSON
    {
      "name": "remove_ship_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one part from the visible ship design by its ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    copy_selected_ship_partAction

    Copy the selected ship part to the editor clipboard.

    View tool JSON
    {
      "name": "copy_selected_ship_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Copy the selected ship part to the editor clipboard.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    paste_ship_partAction

    Paste the copied ship part with a new ID and a small position offset.

    View tool JSON
    {
      "name": "paste_ship_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Paste the copied ship part with a new ID and a small position offset.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    undo_ship_editAction

    Undo the most recent component change.

    View tool JSON
    {
      "name": "undo_ship_edit",
      "kind": "act",
      "impl": "imperative",
      "description": "Undo the most recent component change.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    select_ship_partAction

    Select a ship part by ID so its transform controls and inspector are visible. Use null to clear selection.

    View tool JSON
    {
      "name": "select_ship_part",
      "kind": "act",
      "impl": "imperative",
      "description": "Select a ship part by ID so its transform controls and inspector are visible. Use null to clear selection.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    set_editor_cameraAction

    Set the 3D camera position and orbit target for the visible editing canvas.

    View tool JSON
    {
      "name": "set_editor_camera",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the 3D camera position and orbit target for the visible editing canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "position": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 3,
            "maxItems": 3
          },
          "target": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 3,
            "maxItems": 3
          }
        },
        "required": [
          "position",
          "target"
        ],
        "additionalProperties": false
      }
    }
    set_canvas_backgroundAction

    Set the background and fog color of the visible editing canvas.

    View tool JSON
    {
      "name": "set_canvas_background",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the background and fog color of the visible editing canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          }
        },
        "required": [
          "color"
        ],
        "additionalProperties": false
      }
    }
    new_ship_designAction

    Start a new empty ship design in the visible editor.

    View tool JSON
    {
      "name": "new_ship_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Start a new empty ship design in the visible editor.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 80
          }
        },
        "additionalProperties": false
      }
    }
    save_ship_designAction

    Save the current ship design to the authenticated user's D1-backed collection.

    View tool JSON
    {
      "name": "save_ship_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Save the current ship design to the authenticated user's D1-backed collection.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 80
          }
        },
        "additionalProperties": false
      }
    }
    list_ship_designsAnswer

    List saved ship designs owned by the authenticated user.

    View tool JSON
    {
      "name": "list_ship_designs",
      "kind": "answer",
      "impl": "imperative",
      "description": "List saved ship designs owned by the authenticated user.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    load_ship_designAction

    Load one saved ship design into the visible editor by its ID.

    View tool JSON
    {
      "name": "load_ship_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Load one saved ship design into the visible editor by its ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    export_ship_designAction

    Export the visible ship as a portable, versioned Shipwright design object for sharing.

    View tool JSON
    {
      "name": "export_ship_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Export the visible ship as a portable, versioned Shipwright design object for sharing.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    import_ship_designAction

    Replace the visible editor contents with a portable Shipwright design. The imported design remains unsaved until it is saved explicitly.

    View tool JSON
    {
      "name": "import_ship_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the visible editor contents with a portable Shipwright design. The imported design remains unsaved until it is saved explicitly.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "shipwright-design"
            ]
          },
          "formatVersion": {
            "type": "number",
            "enum": [
              1
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "data": {
            "type": "object",
            "properties": {
              "version": {
                "type": "number",
                "enum": [
                  1
                ]
              },
              "parts": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "box"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "features": {
                          "type": "object",
                          "properties": {
                            "chamfered": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "wedge"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "ramp"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "trapezoid"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "tapered-block"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "cylinder"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "features": {
                          "type": "object",
                          "properties": {
                            "hollow": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "sphere"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "cone"
                          ]
                        },
                        "color": {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "smooth",
                            "brushed",
                            "plated",
                            "composite"
                          ]
                        },
                        "features": {
                          "type": "object",
                          "properties": {
                            "truncated": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "position": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -1000,
                            "maximum": 1000
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "rotation": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": -314.1592653589793,
                            "maximum": 314.1592653589793
                          },
                          "minItems": 3,
                          "maxItems": 3
                        },
                        "scale": {
                          "type": "array",
                          "items": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100
                          },
                          "minItems": 3,
                          "maxItems": 3
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "type",
                        "color",
                        "position",
                        "rotation",
                        "scale"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "maxItems": 100
              },
              "camera": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": -1000,
                      "maximum": 1000
                    },
                    "minItems": 3,
                    "maxItems": 3
                  },
                  "target": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": -1000,
                      "maximum": 1000
                    },
                    "minItems": 3,
                    "maxItems": 3
                  }
                },
                "required": [
                  "position",
                  "target"
                ],
                "additionalProperties": false
              },
              "backgroundColor": {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              }
            },
            "required": [
              "version",
              "parts",
              "camera"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "format",
          "formatVersion",
          "name",
          "data"
        ],
        "additionalProperties": false
      }
    }