← WebMCP Directory

Tool tree

webroom.openai.chatgpt.site

demoMedia & Personal
https://webroom.openai.chatgpt.site/
A private, browser-based photo editor with precise manual controls and agent-ready WebMCP tools.
Explore capabilities
get_document_infoAnswer

Get safe metadata for the active Webroom image, including source and current output pixel dimensions, revision, dirty state, and history counts.

View tool JSON
{
  "name": "get_document_info",
  "kind": "answer",
  "impl": "imperative",
  "description": "Get safe metadata for the active Webroom image, including source and current output pixel dimensions, revision, dirty state, and history counts.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  }
}
get_edit_stateAnswer

Get every manual adjustment, non-destructive geometry value, independently selected filter, and revision for the active image. Manual values are applied on top of the filter.

View tool JSON
{
  "name": "get_edit_state",
  "kind": "answer",
  "impl": "imperative",
  "description": "Get every manual adjustment, non-destructive geometry value, independently selected filter, and revision for the active image. Manual values are applied on top of the filter.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  }
}
get_edit_historyAnswer

Get concise ordered edit history and redo entries. Returns command summaries and sources without pixel data.

View tool JSON
{
  "name": "get_edit_history",
  "kind": "answer",
  "impl": "imperative",
  "description": "Get concise ordered edit history and redo entries. Returns command summaries and sources without pixel data.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  }
}
get_image_previewAnswer

Return an original or edited image preview as a bounded data URL. maxDimension is 64–2048 pixels and quality is 1–100.

View tool JSON
{
  "name": "get_image_preview",
  "kind": "answer",
  "impl": "imperative",
  "description": "Return an original or edited image preview as a bounded data URL. maxDimension is 64–2048 pixels and quality is 1–100.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "variant": {
        "type": "string",
        "enum": [
          "original",
          "edited"
        ],
        "default": "edited",
        "description": "Whether to render the untouched source or current edit."
      },
      "format": {
        "type": "string",
        "enum": [
          "jpeg",
          "png",
          "webp"
        ],
        "default": "jpeg"
      },
      "maxDimension": {
        "type": "integer",
        "minimum": 64,
        "maximum": 2048,
        "default": 1024
      },
      "quality": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100,
        "default": 85
      }
    },
    "additionalProperties": false
  }
}
open_image_from_urlAction

Open a JPEG, PNG, or WebP from an HTTPS URL using a CORS request without credentials. Set replace true only to discard unexported edits.

View tool JSON
{
  "name": "open_image_from_url",
  "kind": "act",
  "impl": "imperative",
  "description": "Open a JPEG, PNG, or WebP from an HTTPS URL using a CORS request without credentials. Set replace true only to discard unexported edits.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "url": {
        "type": "string",
        "description": "Required HTTPS image URL."
      },
      "filename": {
        "type": "string",
        "description": "Optional safe display filename."
      },
      "replace": {
        "type": "boolean",
        "default": false
      }
    },
    "required": [
      "url"
    ],
    "additionalProperties": false
  }
}
open_image_from_data_urlAction

Open a JPEG, PNG, or WebP data URL up to 12 MiB encoded length. Set replace true only to discard unexported edits.

View tool JSON
{
  "name": "open_image_from_data_url",
  "kind": "act",
  "impl": "imperative",
  "description": "Open a JPEG, PNG, or WebP data URL up to 12 MiB encoded length. Set replace true only to discard unexported edits.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "dataUrl": {
        "type": "string",
        "description": "Required supported image data URL."
      },
      "filename": {
        "type": "string",
        "description": "Optional safe display filename."
      },
      "replace": {
        "type": "boolean",
        "default": false
      }
    },
    "required": [
      "dataUrl"
    ],
    "additionalProperties": false
  }
}
set_exposureAction

Set the manual exposure layer to an absolute value from -5 through 5. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_exposure",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual exposure layer to an absolute value from -5 through 5. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -5,
        "maximum": 5,
        "description": "Absolute exposure value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_brightnessAction

Set the manual brightness layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_brightness",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual brightness layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute brightness value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_contrastAction

Set the manual contrast layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_contrast",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual contrast layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute contrast value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_highlightsAction

Set the manual highlights layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_highlights",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual highlights layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute highlights value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_shadowsAction

Set the manual shadows layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_shadows",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual shadows layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute shadows value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_whitesAction

Set the manual whites layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_whites",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual whites layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute whites value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_blacksAction

Set the manual blacks layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_blacks",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual blacks layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute blacks value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_temperatureAction

Set the manual temperature layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_temperature",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual temperature layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute temperature value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_tintAction

Set the manual tint layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_tint",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual tint layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute tint value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_saturationAction

Set the manual saturation layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_saturation",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual saturation layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute saturation value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_vibranceAction

Set the manual vibrance layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_vibrance",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual vibrance layer to an absolute value from -100 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": -100,
        "maximum": 100,
        "description": "Absolute vibrance value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_sharpeningAction

Set the manual sharpening layer to an absolute value from 0 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_sharpening",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual sharpening layer to an absolute value from 0 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": 0,
        "maximum": 100,
        "description": "Absolute sharpening value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
set_blurAction

Set the manual blur layer to an absolute value from 0 through 100. It is applied on top of the selected filter and creates one undoable edit.

View tool JSON
{
  "name": "set_blur",
  "kind": "act",
  "impl": "imperative",
  "description": "Set the manual blur layer to an absolute value from 0 through 100. It is applied on top of the selected filter and creates one undoable edit.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "value": {
        "type": "number",
        "minimum": 0,
        "maximum": 100,
        "description": "Absolute blur value."
      }
    },
    "required": [
      "value"
    ],
    "additionalProperties": false
  }
}
apply_filterAction

Select one canonical Webroom filter as an independent undoable layer. Manual adjustment values are preserved; use none to remove only the filter.

View tool JSON
{
  "name": "apply_filter",
  "kind": "act",
  "impl": "imperative",
  "description": "Select one canonical Webroom filter as an independent undoable layer. Manual adjustment values are preserved; use none to remove only the filter.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "filter": {
        "type": "string",
        "enum": [
          "none",
          "vivid",
          "warm",
          "cool",
          "mono",
          "film",
          "fade"
        ]
      }
    },
    "required": [
      "filter"
    ],
    "additionalProperties": false
  }
}
crop_imageAction

Crop using whole-pixel x, y, width, and height in the current oriented image coordinates returned by get_document_info.

View tool JSON
{
  "name": "crop_image",
  "kind": "act",
  "impl": "imperative",
  "description": "Crop using whole-pixel x, y, width, and height in the current oriented image coordinates returned by get_document_info.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "x": {
        "type": "integer",
        "minimum": 0
      },
      "y": {
        "type": "integer",
        "minimum": 0
      },
      "width": {
        "type": "integer",
        "minimum": 1
      },
      "height": {
        "type": "integer",
        "minimum": 1
      }
    },
    "required": [
      "x",
      "y",
      "width",
      "height"
    ],
    "additionalProperties": false
  }
}
rotate_imageAction

Rotate the active image by -90, 90, or 180 degrees. Positive values rotate clockwise.

View tool JSON
{
  "name": "rotate_image",
  "kind": "act",
  "impl": "imperative",
  "description": "Rotate the active image by -90, 90, or 180 degrees. Positive values rotate clockwise.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "degrees": {
        "type": "integer",
        "enum": [
          -90,
          90,
          180
        ]
      }
    },
    "required": [
      "degrees"
    ],
    "additionalProperties": false
  }
}
flip_imageAction

Flip the active image across its horizontal or vertical axis.

View tool JSON
{
  "name": "flip_image",
  "kind": "act",
  "impl": "imperative",
  "description": "Flip the active image across its horizontal or vertical axis.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "axis": {
        "type": "string",
        "enum": [
          "horizontal",
          "vertical"
        ]
      }
    },
    "required": [
      "axis"
    ],
    "additionalProperties": false
  }
}
resize_imageAction

Resize to positive whole-pixel dimensions. Supply width, height, or both; one omitted dimension preserves aspect ratio.

View tool JSON
{
  "name": "resize_image",
  "kind": "act",
  "impl": "imperative",
  "description": "Resize to positive whole-pixel dimensions. Supply width, height, or both; one omitted dimension preserves aspect ratio.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "width": {
        "type": "integer",
        "minimum": 1
      },
      "height": {
        "type": "integer",
        "minimum": 1
      }
    },
    "additionalProperties": false
  }
}
undo_editAction

Undo one committed human or agent edit in the active Webroom document.

View tool JSON
{
  "name": "undo_edit",
  "kind": "act",
  "impl": "imperative",
  "description": "Undo one committed human or agent edit in the active Webroom document.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  }
}
redo_editAction

Redo one previously undone edit in the active Webroom document.

View tool JSON
{
  "name": "redo_edit",
  "kind": "act",
  "impl": "imperative",
  "description": "Redo one previously undone edit in the active Webroom document.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  }
}
reset_editsAction

Reset all adjustments and geometry to the untouched source as one undoable command.

View tool JSON
{
  "name": "reset_edits",
  "kind": "act",
  "impl": "imperative",
  "description": "Reset all adjustments and geometry to the untouched source as one undoable command.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  }
}
export_imageAction

Export the current full-resolution edit as JPEG, PNG, or WebP. Delivery defaults to a local download; bounded data_url delivery returns image data.

View tool JSON
{
  "name": "export_image",
  "kind": "act",
  "impl": "imperative",
  "description": "Export the current full-resolution edit as JPEG, PNG, or WebP. Delivery defaults to a local download; bounded data_url delivery returns image data.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "format": {
        "type": "string",
        "enum": [
          "jpeg",
          "png",
          "webp"
        ]
      },
      "quality": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100,
        "default": 90
      },
      "delivery": {
        "type": "string",
        "enum": [
          "download",
          "data_url"
        ],
        "default": "download"
      }
    },
    "required": [
      "format"
    ],
    "additionalProperties": false
  }
}