changedInput schema / allOf
Previous value: -[
- {
- "if": {
- "properties": {
- "operation": {
- "const": "browser_tabs"
- }
- },
- "required": [
- "operation"
- ]
- },
- "then": {
- "properties": {
- "parameters": {
- "additionalProperties": false,
- "properties": {
- "endpoint": {
- "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
- "type": "string"
- },
- "target_id": {
- "description": "Page target id returned by browser_tabs.",
- "type": "string"
- },
- "timeout_ms": {
- "description": "Timeout in milliseconds.",
- "type": "number"
- },
- "title": {
- "description": "Choose a page whose title contains this text.",
- "type": "string"
- },
- "url_contains": {
- "description": "Choose a page whose URL contains this text.",
- "type": "string"
- }
- },
- "type": "object"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "operation": {
- "const": "browser_navigate"
- }
- },
- "required": [
- "operation"
- ]
- },
- "then": {
- "properties": {
- "parameters": {
- "additionalProperties": false,
- "allOf": [
- {
- "if": {
- "properties": {
- "action": {
- "enum": [
- "url",
- "new_tab"
- ]
- }
- },
- "required": [
- "action"
- ]
- },
- "then": {
- "required": [
- "url"
- ]
- }
- }
- ],
- "properties": {
- "action": {
- "description": "Default url when url is provided, otherwise reload. new_tab creates the first page target when needed.",
- "enum": [
- "url",
- "new_tab",
- "back",
- "forward",
- "reload"
- ],
- "type": "string"
- },
- "endpoint": {
- "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
- "type": "string"
- },
- "ignore_cache": {
- "description": "Reload without cache when action=reload.",
- "type": "boolean"
- },
- "target_id": {
- "description": "Page target id returned by browser_tabs.",
- "type": "string"
- },
- "timeout_ms": {
- "description": "Timeout in milliseconds.",
- "type": "number"
- },
- "title": {
- "description": "Choose a page whose title contains this text.",
- "type": "string"
- },
- "url": {
- "description": "Destination URL for action=url or action=new_tab.",
- "type": "string"
- },
- "url_contains": {
- "description": "Choose a page whose URL contains this text.",
- "type": "string"
- },
- "wait": {
- "description": "Wait for the page load event; default true.",
- "type": "boolean"
- }
- },
- "type": "object"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "operation": {
- "const": "browser_snapshot"
- }
- },
- "required": [
- "operation"
- ]
- },
- "then": {
- "properties": {
- "parameters": {
- "additionalProperties": false,
- "properties": {
- "endpoint": {
- "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
- "type": "string"
- },
- "include_screenshot": {
- "description": "Attach a real CDP-rendered viewport PNG screenshot; default false.",
- "type": "boolean"
- },
- "max_nodes": {
- "description": "Maximum AX nodes; default 1500.",
- "type": "number"
- },
- "selector": {
- "description": "When include_screenshot=true, center this CSS-selected element before capture and report its viewport bounds.",
- "type": "string"
- },
- "target_id": {
- "description": "Page target id returned by browser_tabs.",
- "type": "string"
- },
- "timeout_ms": {
- "description": "Timeout in milliseconds.",
- "type": "number"
- },
- "title": {
- "description": "Choose a page whose title contains this text.",
- "type": "string"
- },
- "url_contains": {
- "description": "Choose a page whose URL contains this text.",
- "type": "string"
- }
- },
- "type": "object"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "operation": {
- "const": "browser_find"
- }
- },
- "required": [
- "operation"
- ]
- },
- "then": {
- "properties": {
- "parameters": {
- "additionalProperties": false,
- "anyOf": [
- {
- "required": [
- "selector"
- ]
- },
- {
- "required": [
- "text"
- ]
- },
- {
- "required": [
- "role"
- ]
- }
- ],
- "properties": {
- "endpoint": {
- "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
- "type": "string"
- },
- "limit": {
- "description": "Maximum number of results to return.",
- "type": "number"
- },
- "role": {
- "description": "ARIA role.",
- "type": "string"
- },
- "selector": {
- "description": "CSS selector.",
- "type": "string"
- },
- "target_id": {
- "description": "Page target id returned by browser_tabs.",
- "type": "string"
- },
- "text": {
- "description": "Visible text substring.",
- "type": "string"
- },
- "timeout_ms": {
- "description": "Timeout in milliseconds.",
- "type": "number"
- },
- "title": {
- "description": "Choose a page whose title contains this text.",
- "type": "string"
- },
- "url_contains": {
- "description": "Choose a page whose URL contains this text.",
- "type": "string"
- }
- },
- "type": "object"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "operation": {
- "const": "browser_action"
- }
- },
- "required": [
- "operation"
- ]
- },
- "then": {
- "properties": {
- "parameters": {
- "additionalProperties": false,
- "allOf": [
- {
- "if": {
- "properties": {
- "action": {
- "enum": [
- "click",
- "focus",
- "type",
- "set_value",
- "select",
- "scroll_into_view"
- ]
- }
- },
- "required": [
- "action"
- ]
- },
- "then": {
- "anyOf": [
- {
- "required": [
- "selector"
- ]
- },
- {
- "required": [
- "text"
- ]
- }
- ]
- }
- },
- {
- "if": {
- "properties": {
- "action": {
- "const": "upload"
- }
- },
- "required": [
- "action"
- ]
- },
- "then": {
- "anyOf": [
- {
- "required": [
- "path"
- ]
- },
- {
- "required": [
- "paths"
- ]
- }
- ],
- "required": [
- "selector"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "action": {
- "const": "press"
- }
- },
- "required": [
- "action"
- ]
- },
- "then": {
- "required": [
- "key"
- ]
- }
- }
- ],
- "properties": {
- "action": {
- "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
- "enum": [
- "click",
- "focus",
- "type",
- "set_value",
- "select",
- "scroll_into_view",
- "upload",
- "press",
- "set_viewport"
- ],
- "type": "string"
- },
- "device_scale_factor": {
- "description": "Device scale factor for set_viewport; default 1.",
- "type": "number"
- },
- "endpoint": {
- "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
- "type": "string"
- },
- "height": {
- "description": "CSS viewport height for set_viewport.",
- "type": "number"
- },
- "key": {
- "description": "Single key name such as Enter, Escape, Tab or A.",
- "type": "string"
- },
- "mobile": {
- "description": "Enable mobile emulation for set_viewport.",
- "type": "boolean"
- },
- "option": {
- "description": "Option value to select in a browser select element.",
- "type": "string"
- },
- "path": {
- "description": "Permitted local filesystem path.",
- "type": "string"
- },
- "paths": {
- "description": "List of permitted local filesystem paths.",
- "items": {
- "type": "string"
- },
- "minItems": 1,
- "type": "array"
- },
- "selector": {
- "description": "CSS selector for the target element; prefer the reusable selector returned by browser_find.",
- "type": "string"
- },
- "target_id": {
- "description": "Page target id returned by browser_tabs.",
- "type": "string"
- },
- "text": {
- "description": "For action=type, Unicode text to insert. For element actions without selector, visible text may identify the target.",
- "type": "string"
- },
- "text_value": {
- "description": "Compatibility alias for the type/set_value text value.",
- "type": "string"
- },
- "timeout_ms": {
- "description": "Timeout in milliseconds.",
- "type": "number"
- },
- "title": {
- "description": "Choose a page whose title contains this text.",
- "type": "string"
- },
- "url_contains": {
- "description": "Choose a page whose URL contains this text.",
- "type": "string"
- },
- "value": {
- "description": "Value for action=set_value; also accepted as a compatibility fallback for action=type.",
- "type": "string"
- },
- "width": {
- "description": "CSS viewport width for set_viewport.",
- "type": "number"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- }
- },
- "required": [
- "parameters"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "operation": {
- "const": "browser_wait"
- }
- },
- "required": [
- "operation"
- ]
- },
- "then": {
- "properties": {
- "parameters": {
- "additionalProperties": false,
- "allOf": [
- {
- "if": {
- "not": {
- "required": [
- "condition"
- ]
- }
- },
- "then": {
- "required": [
- "selector"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "condition": {
- "const": "selector"
- }
- },
- "required": [
- "condition"
- ]
- },
- "then": {
- "required": [
- "selector"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "condition": {
- "const": "text"
- }
- },
- "required": [
- "condition"
- ]
- },
- "then": {
- "required": [
- "text"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "condition": {
- "const": "url_contains"
- }
- },
- "required": [
- "condition"
- ]
- },
- "then": {
- "anyOf": [
- {
- "required": [
- "value"
- ]
- },
- {
- "required": [
- "text"
- ]
- }
- ]
- }
- }
- ],
- "properties": {
- "condition": {
- "description": "Semantic condition to wait for; choose the condition that directly proves the requested state transition.",
- "enum": [
- "selector",
- "text",
- "url_contains",
- "load",
- "navigation",
- "network_idle"
- ],
- "type": "string"
- },
- "endpoint": {
- "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
- "type": "string"
- },
- "idle_ms": {
- "description": "Required zero-in-flight network quiet window for network_idle; default 500 ms.",
- "type": "number"
- },
- "poll_ms": {
- "description": "Polling interval in milliseconds.",
- "type": "number"
- },
- "selector": {
- "description": "CSS selector identifying a web element.",
- "type": "string"
- },
- "target_id": {
- "description": "Page target id returned by browser_tabs.",
- "type": "string"
- },
- "text": {
- "description": "Text required by the selected action.",
- "type": "string"
- },
- "timeout_ms": {
- "description": "Timeout in milliseconds.",
- "type": "number"
- },
- "title": {
- "description": "Choose a page whose title contains this text.",
- "type": "string"
- },
- "url_contains": {
- "description": "Choose a page whose URL contains this text.",
- "type": "string"
- },
- "value": {
- "description": "Value required by the selected action.",
- "type": "string"
- }
- },
- "type": "object"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "operation": {
- "const": "browser_evaluate"
- }
- },
- "required": [
- "operation"
- ]
- },
- "then": {
- "properties": {
- "parameters": {
- "additionalProperties": false,
- "properties": {
- "await_promise": {
- "description": "Await a returned Promise; default true.",
- "type": "boolean"
- },
- "endpoint": {
- "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
- "type": "string"
- },
- "expression": {
- "description": "JavaScript expression.",
- "type": "string"
- },
- "target_id": {
- "description": "Page target id returned by browser_tabs.",
- "type": "string"
- },
- "timeout_ms": {
- "description": "Timeout in milliseconds.",
- "type": "number"
- },
- "title": {
- "description": "Choose a page whose title contains this text.",
- "type": "string"
- },
- "url_contains": {
- "description": "Choose a page whose URL contains this text.",
- "type": "string"
- }
- },
- "required": [
- "expression"
- ],
- "type": "object"
- }
- },
- "required": [
- "parameters"
- ]
- }
- }
-]New value: +[
+ {
+ "if": {
+ "properties": {
+ "operation": {
+ "const": "browser_tabs"
+ }
+ },
+ "required": [
+ "operation"
+ ]
+ },
+ "then": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "endpoint": {
+ "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
+ "type": "string"
+ },
+ "target_id": {
+ "description": "Page target id returned by browser_tabs.",
+ "type": "string"
+ },
+ "timeout_ms": {
+ "description": "Timeout in milliseconds.",
+ "type": "number"
+ },
+ "title": {
+ "description": "Choose a page whose title contains this text.",
+ "type": "string"
+ },
+ "url_contains": {
+ "description": "Choose a page whose URL contains this text.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "operation": {
+ "const": "browser_navigate"
+ }
+ },
+ "required": [
+ "operation"
+ ]
+ },
+ "then": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": false,
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "action": {
+ "enum": [
+ "url",
+ "new_tab"
+ ]
+ }
+ },
+ "required": [
+ "action"
+ ]
+ },
+ "then": {
+ "required": [
+ "url"
+ ]
+ }
+ }
+ ],
+ "properties": {
+ "action": {
+ "description": "Default url when url is provided, otherwise reload. new_tab creates the first page target when needed.",
+ "enum": [
+ "url",
+ "new_tab",
+ "back",
+ "forward",
+ "reload"
+ ],
+ "type": "string"
+ },
+ "endpoint": {
+ "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
+ "type": "string"
+ },
+ "ignore_cache": {
+ "description": "Reload without cache when action=reload.",
+ "type": "boolean"
+ },
+ "target_id": {
+ "description": "Page target id returned by browser_tabs.",
+ "type": "string"
+ },
+ "timeout_ms": {
+ "description": "Timeout in milliseconds.",
+ "type": "number"
+ },
+ "title": {
+ "description": "Choose a page whose title contains this text.",
+ "type": "string"
+ },
+ "url": {
+ "description": "Destination URL for action=url or action=new_tab.",
+ "type": "string"
+ },
+ "url_contains": {
+ "description": "Choose a page whose URL contains this text.",
+ "type": "string"
+ },
+ "wait": {
+ "description": "Wait for the page load event; default true.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "operation": {
+ "const": "browser_snapshot"
+ }
+ },
+ "required": [
+ "operation"
+ ]
+ },
+ "then": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "endpoint": {
+ "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
+ "type": "string"
+ },
+ "include_screenshot": {
+ "description": "Attach a real CDP-rendered viewport PNG screenshot; default false.",
+ "type": "boolean"
+ },
+ "max_nodes": {
+ "description": "Maximum AX nodes; default 1500.",
+ "type": "number"
+ },
+ "selector": {
+ "description": "When include_screenshot=true, center this CSS-selected element before capture and report its viewport bounds.",
+ "type": "string"
+ },
+ "target_id": {
+ "description": "Page target id returned by browser_tabs.",
+ "type": "string"
+ },
+ "timeout_ms": {
+ "description": "Timeout in milliseconds.",
+ "type": "number"
+ },
+ "title": {
+ "description": "Choose a page whose title contains this text.",
+ "type": "string"
+ },
+ "url_contains": {
+ "description": "Choose a page whose URL contains this text.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "operation": {
+ "const": "browser_find"
+ }
+ },
+ "required": [
+ "operation"
+ ]
+ },
+ "then": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": false,
+ "anyOf": [
+ {
+ "required": [
+ "selector"
+ ]
+ },
+ {
+ "required": [
+ "text"
+ ]
+ },
+ {
+ "required": [
+ "role"
+ ]
+ }
+ ],
+ "properties": {
+ "endpoint": {
+ "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
+ "type": "string"
+ },
+ "limit": {
+ "description": "Maximum number of results to return.",
+ "type": "number"
+ },
+ "role": {
+ "description": "ARIA role.",
+ "type": "string"
+ },
+ "selector": {
+ "description": "CSS selector.",
+ "type": "string"
+ },
+ "target_id": {
+ "description": "Page target id returned by browser_tabs.",
+ "type": "string"
+ },
+ "text": {
+ "description": "Visible text substring.",
+ "type": "string"
+ },
+ "timeout_ms": {
+ "description": "Timeout in milliseconds.",
+ "type": "number"
+ },
+ "title": {
+ "description": "Choose a page whose title contains this text.",
+ "type": "string"
+ },
+ "url_contains": {
+ "description": "Choose a page whose URL contains this text.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "operation": {
+ "const": "browser_action"
+ }
+ },
+ "required": [
+ "operation"
+ ]
+ },
+ "then": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": false,
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "action": {
+ "enum": [
+ "click",
+ "focus",
+ "set_value",
+ "select",
+ "scroll_into_view"
+ ]
+ }
+ },
+ "required": [
+ "action"
+ ]
+ },
+ "then": {
+ "anyOf": [
+ {
+ "required": [
+ "selector"
+ ]
+ },
+ {
+ "required": [
+ "text"
+ ]
+ },
+ {
+ "required": [
+ "browser_text"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "action": {
+ "const": "type"
+ }
+ },
+ "required": [
+ "action"
+ ]
+ },
+ "then": {
+ "anyOf": [
+ {
+ "required": [
+ "selector"
+ ]
+ },
+ {
+ "required": [
+ "browser_text"
+ ]
+ },
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "text_value"
+ ]
+ }
+ ],
+ "required": [
+ "text"
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "action": {
+ "const": "scroll"
+ }
+ },
+ "required": [
+ "action"
+ ]
+ },
+ "then": {
+ "anyOf": [
+ {
+ "required": [
+ "delta_x"
+ ]
+ },
+ {
+ "required": [
+ "delta_y"
+ ]
+ },
+ {
+ "required": [
+ "delta"
+ ]
+ },
+ {
+ "required": [
+ "direction"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "action": {
+ "const": "upload"
+ }
+ },
+ "required": [
+ "action"
+ ]
+ },
+ "then": {
+ "anyOf": [
+ {
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "required": [
+ "paths"
+ ]
+ }
+ ],
+ "required": [
+ "selector"
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "action": {
+ "const": "press"
+ }
+ },
+ "required": [
+ "action"
+ ]
+ },
+ "then": {
+ "required": [
+ "key"
+ ]
+ }
+ }
+ ],
+ "properties": {
+ "action": {
+ "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
+ "enum": [
+ "click",
+ "focus",
+ "type",
+ "set_value",
+ "select",
+ "scroll",
+ "scroll_into_view",
+ "upload",
+ "press",
+ "set_viewport"
+ ],
+ "type": "string"
+ },
+ "browser_text": {
+ "description": "Visible text used only to locate a DOM element; use this instead of overloading text for action=type.",
+ "type": "string"
+ },
+ "clear": {
+ "description": "For action=type, clear the current value before inserting text.",
+ "type": "boolean"
+ },
+ "delta": {
+ "description": "Alias for delta_y.",
+ "type": "number"
+ },
+ "delta_x": {
+ "description": "Horizontal scroll delta; positive means right.",
+ "type": "number"
+ },
+ "delta_y": {
+ "description": "Vertical scroll delta; positive means down.",
+ "type": "number"
+ },
+ "device_scale_factor": {
+ "description": "Device scale factor for set_viewport; default 1.",
+ "type": "number"
+ },
+ "direction": {
+ "description": "Human-readable scroll direction used with wheel_times instead of explicit deltas.",
+ "enum": [
+ "up",
+ "down",
+ "left",
+ "right"
+ ],
+ "type": "string"
+ },
+ "endpoint": {
+ "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
+ "type": "string"
+ },
+ "height": {
+ "description": "CSS viewport height for set_viewport.",
+ "type": "number"
+ },
+ "key": {
+ "description": "Single key name such as Enter, Escape, Tab or A.",
+ "type": "string"
+ },
+ "mobile": {
+ "description": "Enable mobile emulation for set_viewport.",
+ "type": "boolean"
+ },
+ "option": {
+ "description": "Option value to select in a browser select element.",
+ "type": "string"
+ },
+ "path": {
+ "description": "Permitted local filesystem path.",
+ "type": "string"
+ },
+ "paths": {
+ "description": "List of permitted local filesystem paths.",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "selector": {
+ "description": "CSS selector for the target element; prefer the reusable selector returned by browser_find.",
+ "type": "string"
+ },
+ "target_id": {
+ "description": "Page target id returned by browser_tabs.",
+ "type": "string"
+ },
+ "text": {
+ "description": "For action=type, Unicode text to insert. For non-type element actions without selector/browser_text, visible text may identify the target.",
+ "type": "string"
+ },
+ "text_value": {
+ "description": "Compatibility alias for the type/set_value text value.",
+ "type": "string"
+ },
+ "timeout_ms": {
+ "description": "Timeout in milliseconds.",
+ "type": "number"
+ },
+ "title": {
+ "description": "Choose a page whose title contains this text.",
+ "type": "string"
+ },
+ "url_contains": {
+ "description": "Choose a page whose URL contains this text.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Value for action=set_value; also accepted as a legacy type payload when text is used as the locator.",
+ "type": "string"
+ },
+ "wheel_times": {
+ "description": "Number of 120-unit wheel steps for direction; 1..50.",
+ "type": "number"
+ },
+ "width": {
+ "description": "CSS viewport width for set_viewport.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "parameters"
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "operation": {
+ "const": "browser_wait"
+ }
+ },
+ "required": [
+ "operation"
+ ]
+ },
+ "then": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": false,
+ "allOf": [
+ {
+ "if": {
+ "not": {
+ "required": [
+ "condition"
+ ]
+ }
+ },
+ "then": {
+ "required": [
+ "selector"
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "condition": {
+ "const": "selector"
+ }
+ },
+ "required": [
+ "condition"
+ ]
+ },
+ "then": {
+ "required": [
+ "selector"
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "condition": {
+ "const": "text"
+ }
+ },
+ "required": [
+ "condition"
+ ]
+ },
+ "then": {
+ "required": [
+ "text"
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "condition": {
+ "const": "url_contains"
+ }
+ },
+ "required": [
+ "condition"
+ ]
+ },
+ "then": {
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "text"
+ ]
+ }
+ ]
+ }
+ }
+ ],
+ "properties": {
+ "condition": {
+ "description": "Semantic condition to wait for; choose the condition that directly proves the requested state transition.",
+ "enum": [
+ "selector",
+ "text",
+ "url_contains",
+ "load",
+ "navigation",
+ "network_idle"
+ ],
+ "type": "string"
+ },
+ "endpoint": {
+ "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
+ "type": "string"
+ },
+ "idle_ms": {
+ "description": "Required zero-in-flight network quiet window for network_idle; default 500 ms.",
+ "type": "number"
+ },
+ "poll_ms": {
+ "description": "Polling interval in milliseconds.",
+ "type": "number"
+ },
+ "selector": {
+ "description": "CSS selector identifying a web element.",
+ "type": "string"
+ },
+ "target_id": {
+ "description": "Page target id returned by browser_tabs.",
+ "type": "string"
+ },
+ "text": {
+ "description": "Text required by the selected action.",
+ "type": "string"
+ },
+ "timeout_ms": {
+ "description": "Timeout in milliseconds.",
+ "type": "number"
+ },
+ "title": {
+ "description": "Choose a page whose title contains this text.",
+ "type": "string"
+ },
+ "url_contains": {
+ "description": "Choose a page whose URL contains this text.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Value required by the selected action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "operation": {
+ "const": "browser_evaluate"
+ }
+ },
+ "required": [
+ "operation"
+ ]
+ },
+ "then": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "await_promise": {
+ "description": "Await a returned Promise; default true.",
+ "type": "boolean"
+ },
+ "endpoint": {
+ "description": "Loopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.",
+ "type": "string"
+ },
+ "expression": {
+ "description": "JavaScript expression.",
+ "type": "string"
+ },
+ "target_id": {
+ "description": "Page target id returned by browser_tabs.",
+ "type": "string"
+ },
+ "timeout_ms": {
+ "description": "Timeout in milliseconds.",
+ "type": "number"
+ },
+ "title": {
+ "description": "Choose a page whose title contains this text.",
+ "type": "string"
+ },
+ "url_contains": {
+ "description": "Choose a page whose URL contains this text.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "expression"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "parameters"
+ ]
+ }
+ }
+]