96 lines
3.5 KiB
Plaintext
96 lines
3.5 KiB
Plaintext
name: browser_prepare
|
|
|
|
description:
|
|
Explicitly prepare an owned DevTools endpoint for a browser. pid is required for an existing process or existing-profile attachment, and optional only for allow_launch=true with an isolated profile. Existing endpoints are detected without side effects. Acting setup for an isolated profile follows the runtime permission mode and optional capability manifest. It requires allow_launch=true, launches a separate browser, and never copies, modifies, or terminates the requested user profile. Without pid, only a platform-attested system Chrome/Edge installation (or a root-owned package payload on Linux) is eligible; redirects and user-controlled locations fail closed. Existing-profile attachment is explicit and follows the runtime's immutable permission mode: standard requires an explicit --grant existing-profile launch grant or an embedding authorization host, bounded requires a launch-approved exact resource manifest, and unrestricted requires explicit trusted startup risk acceptance. Ordinary MCP transport approval never proves profile authorization. On proven platforms, an authorized request also permits one bounded exact-window setup: open the recognized browser product's fixed remote-debugging page, toggle its uniquely matched per-instance checkbox, prove the PID-owned loopback endpoint, and close the temporary tab. Every visible effect is reported; ambiguity is refused.
|
|
|
|
input_schema:
|
|
{
|
|
"additionalProperties": true,
|
|
"anyOf": [
|
|
{
|
|
"required": [
|
|
"pid"
|
|
]
|
|
},
|
|
{
|
|
"properties": {
|
|
"allow_launch": {
|
|
"const": true
|
|
},
|
|
"profile": {
|
|
"properties": {
|
|
"mode": {
|
|
"enum": [
|
|
"isolated_new",
|
|
"isolated_named"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"mode"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"allow_launch",
|
|
"profile"
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"allow_launch": {
|
|
"description": "Allow a separate driver-owned isolated Chromium process to be launched (default false).",
|
|
"type": "boolean"
|
|
},
|
|
"pid": {
|
|
"description": "Browser process id to prepare. Required except for a driver-owned isolated_new/isolated_named launch with allow_launch=true.",
|
|
"type": "integer"
|
|
},
|
|
"profile": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"mode": {
|
|
"enum": [
|
|
"isolated_new",
|
|
"isolated_named"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Required only for isolated_named; 1-64 path-safe ASCII characters.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"mode"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"session": {
|
|
"description": "For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session. Browser targets, tabs, and refs belong to the resolved lifecycle session.",
|
|
"type": "string"
|
|
},
|
|
"strategy": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"existing_profile"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"window_id": {
|
|
"description": "Exact native window approval anchor; required for strategy.kind=existing_profile.",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [],
|
|
"type": "object"
|
|
}
|