# Browser WebMCP

> Let an in-browser agent work with the open, unsaved canvas.

EXPERIMENTAL BROWSER CAPABILITY WebMCP lets an in-browser agent work with the open editor, including its unsaved design. It is separate from the remote MCP server and uses the current signed-in browser session.

**Feature detection, not a browser requirement** The editor detects `document.modelContext`, with `navigator.modelContext` as a legacy fallback. Tools register only while an editor is open and are cleaned up when it changes or unmounts. Unsupported browsers retain the full workspace and network MCP.

## Open-document tools

| Tool | Input | Effect |
| --- | --- | --- |
| studio_get_brief | {} | Read the saved interview, answers, scope, and independent brief revision. |
| studio_update_brief | { expectedRevision, request?, interview?, answers?, scope? } | Persist a brief update, with revision zero for creation. Invalidates approval and opens the interview workspace. |
| studio_approve_brief | { expectedRevision } | Approve the current answered scope only after explicit human agreement. Does not generate or publish. |
| studio_inspect_design | {} | Read preflight hints for the current unsaved document. Does not change or save it; does not certify accessibility. |
| studio_get_design | {} | Read the current unsaved document and saved revision. |
| studio_update_node | { nodeId, patch } | Edit one existing node locally. Patch permits text, x, y, width, height, opacity, and rotation. Edits locally; live mode autosaves. |
| studio_set_design | { document } | Replace the local document after full validation. Keep the open project's ID and kind. Edits locally; live mode autosaves. |
| studio_save_design | {} | Save the current local document using the saved revision. Conflicts do not silently overwrite newer work. |

## Shared operations and authenticated API tools

`studio_apply_operations` accepts the shared operation schema for structured layouts, components, pages, meshes and timelines. `studio_capabilities` returns current schemas and documented endpoints. Tools named `studio_api_…` operate on saved server state, including library CRUD/version/apply/insert, discovery, export and asset upload.

Pass path values in `parameters`, URL filters or pinned versions in `query`, and write payloads in `body`. For the asset-upload tool, pass `{ name, mimeType, base64 }` as body; it creates the real multipart file request. Uploading does not place a node. Server ownership and revision checks still apply.

```
{ "query": { "q": "Roboto" } }
```

Discover exact tool names and request schemas from the browser registry or [live OpenAPI reference](https://beta.studio.agentkit.best/api/openapi); registration follows the documented API surface.

```
{
  "nodeId": "ACTUAL_NODE_ID",
  "patch": { "text": "A clearer headline", "x": 64 }
}
```

Read first, apply focused edits, and inspect the canvas. Save explicitly when live autosave is off; API tools always operate on saved server state. A browser agent does not receive provider secrets or permanent API keys through these tools. Check Settings → Agent access for the browser capability state.

[Open the editor](https://beta.studio.agentkit.best/)[Check agent connections](https://beta.studio.agentkit.best/?settings=agents)
