MCP tools

Every tool the cua MCP server exposes, with its permission and parameters.

cua mcp (and cua daemon mcp, the same server backed by the cua daemon) serves these tools over stdio. See MCP server for client setup.

Contract version 0.9.0; MCP protocol revision 2025-06-18.

Spaces tools#

The Spaces contract: register, claim and release Spaces, run commands, move files, stream, run agents and teleport.

These tools are the Spaces contract, with the same names and schemas on every surface. Each links to its entry there (parameters, result, errors, providers, metering); cua mcp gates each one behind the permission spaces:<tool>.

Space lifecycle#

Full entries: Space lifecycle.

ToolDescription
add_spaceAdd an existing computer as a Space by address and token.
remove_spaceForget a registered Space without touching it.
list_spacesList the Spaces this connection can see.
create_spaceCreate a Space: a new sandbox on this computer, on one of your computers, or in the cloud.
network_showShow a Space's network: preset, what it opens, where it is enforced, what is always blocked.
network_logList what a Space tried to reach and its network blocked.
network_setTighten a Space's network: internet, none or custom lists.
delete_spaceDelete a Space's sandbox and forget it.
stop_spaceTurn a Space off: stop it (disk kept, memory freed) or, with suspend, suspend it (memory kept).
resize_spaceChange a Space's vCPUs, memory or disk size.
start_spaceTurn a Space back on: resume or boot it.

Commands and files#

Full entries: Commands and files.

ToolDescription
space_bashRun a shell command inside the Space.
space_jobRun a long command in the Space as a background job: tail its log, cancel it, or get woken when it ends.
space_writeWrite literal text to a path inside the Space.
uploadSend a local file or folder into the Space.
send_fileSend a host file or folder into the Space's Downloads, verified by sha256 on arrival.
downloadFetch a file or folder out of the Space.

Streams and display#

Full entries: Streams and display.

ToolDescription
stream_endpointReturn a ticketed media endpoint for the Space's desktop or one window.
list_space_windowsList the windows open inside the Space.
stream_space_windowShow one Space window in another Space's Stream section (into=<your Space>; default the parent of space) or on the operator's desktop (into=desktop).
show_space_pipPin the Space as picture-in-picture on the operator's desktop.
hide_space_pipUnpin the picture-in-picture window.
open_space_viewerOpen the full Space viewer on the operator's desktop.

Services#

Full entries: Services.

ToolDescription
list_toolsList the MCP services and tools reachable inside the Space.
call_toolCall a service tool inside the Space.
space_serviceKeep a command running in the Space: restarts, health checks, start on boot, logs.

Agents#

Full entries: Agents.

ToolDescription
agent_startStart a coding agent in the Space.
agent_messageSend a follow-up to an agent run.
agent_eventsRead an agent run's events after a cursor.
agent_statusRead an agent run's status and result.
agent_interruptInterrupt an agent run's current turn.
agent_stopStop an agent run.
agent_listList agent runs in the Space.
agent_capabilitiesReport what the agent harnesses support.

Persistent agents#

Full entries: Persistent agents.

ToolDescription
agent_addCreate a named agent whose memory outlives its Space.
persistent_agent_listList persistent agents.
agent_removeForget a persistent agent.
agent_sendGive a persistent agent a turn.
persistent_agent_saveSave a persistent agent's home now.
agent_pausePause a persistent agent: its run, its routines and its Space.
agent_resumeResume a paused persistent agent.
agent_schedule_addSchedule a recurring turn for a persistent agent.
agent_schedule_listList routines.
agent_schedule_removeDelete a routine.
agent_schedule_set_enabledTurn a routine on or off.
notify_userTell the user something in the Cua app.
notifications_listRead the notifications feed.
notifications_ackMark notifications read.
computer_access_grantLet a persistent agent use one of the user's computers.
computer_access_revokeTake back a persistent agent's access to a computer.
computer_access_listList per-agent computer access.

Space thread and members#

Full entries: Space thread and members.

ToolDescription
thread_readRead a Space's thread.
thread_postPost to a Space's thread.
thread_inboxList an agent member's open tasks.
thread_claimClaim a task.
thread_replyReply to a task and update it.
thread_importImport an app's earlier conversation into a Space's thread.
agent_membersList a Space's agent members.
agent_set_rightsChoose who can task, stop and approve an agent.
thread_joinSet your name and icon in a Space's thread.
thread_join_code_createMake a one-time code an agent joins the Space with.
thread_join_code_listList a Space's join codes.
thread_join_code_cancelCancel an unused join code.
thread_join_redeemRedeem a join code on this computer.
thread_settingsRead or change a Space's thread settings.
thread_device_revokeRemove the agents connected from a computer.

Session teleport#

Full entries: Session teleport.

ToolDescription
teleport_manifestDescribe what a session teleport would move.
teleport_appMove an app session into the Space.

Keyvault#

Full entries: Keyvault.

ToolDescription
request_site_loginSign in to a site in the Space with the user's saved password.

Hotspot#

Full entries: Hotspot.

ToolDescription
hotspot_startStart sharing this computer's network with a Space.
hotspot_stopStop sharing this computer's network.
hotspot_statusReport which Spaces are sharing this computer's network, with counters.

Cua Volume#

Full entries: Cua Volume.

ToolDescription
volume_lsList a folder of the Cua Volume.
volume_readRead a file from the Cua Volume.
volume_writeWrite a file to the Cua Volume.
volume_deleteDelete a file from the Cua Volume.
volume_historyList a Cua Volume file's versions.
volume_restoreRestore an old version of a Cua Volume file.
volume_grantGrant an agent or Space more Cua Volume access.
volume_revokeRevoke a Cua Volume grant.
volume_grantsList Cua Volume grants.
volume_request_accessAsk the user for more Cua Volume access.
volume_requestsList Cua Volume access requests waiting for the user.
volume_approveApprove a Cua Volume access request.
volume_denyDecline a Cua Volume access request.
volume_auditRead the Cua Volume audit log.
volume_storageShow where the Cua Volume keeps its bytes.
volume_storage_setTest or change where the Cua Volume keeps its bytes.
volume_mount_statusShow whether the Cua Volume is mounted as a volume.
volume_mountMount the Cua Volume as a volume.
volume_unmountUnmount the Cua Volume volume.
volume_sync_statusShow the Cua Volume's sync state across devices.
volume_sync_eventsWait for Cua Volume sync events.
volume_sync_resolveMark a Cua Volume sync conflict as seen.
volume_cache_statsShow the Cua Volume block cache.
volume_cache_setSet the Cua Volume block cache's size cap.
volume_cache_clearClear the Cua Volume block cache.

Sharing#

Full entries: Sharing.

ToolDescription
share_spaceLet someone in your team watch or edit a Space.
unshare_spaceStop sharing a Space with an account, or with everyone.
space_sharesList who a Space is shared with.
relay_register_spacePublish a Space on the relay for the account's other devices.
relay_unregister_spaceTake a Space off the relay.

Your cloud#

Full entries: Your cloud.

ToolDescription
cloud_statusList your clouds (AWS, Google Cloud, Hetzner, Modal): found credentials, the connected account and region, what each can run at what hourly cost, and what Cua created there.
cloud_connectConnect a cloud account Spaces can be created in.
cloud_testCheck a cloud account without creating anything.
cloud_disconnectForget a connected cloud account (deleting what Cua created there first, with delete=true).
cloud_sweepFind and delete what Cua left in your clouds.
cloud_planShow (or apply) the elastic pool's plan for some Spaces: where they go, which machines it adds, and the cost.
cloud_hostsList the hosts the elastic pool added in your clouds.
cloud_add_hostAdd hosts to your pool in a linked cloud.
cloud_remove_hostRemove hosts this home added to your pool.
cloud_budgetRead or set the elastic pool's budget and autoscale switch.
cloud_reconcileRun the elastic pool's scale-in pass now.
prewarmKeep Spaces of one shape ready where the elastic pool puts them, so the next creates start in a fraction of a second.
prewarm_listList the prewarms and how many Spaces each keeps ready.
prewarm_removeEnd a prewarm: its ready Spaces go.
cloud_auditRead the log of what Cua did in your clouds.
cloud_costEstimate what Cua's machines in your clouds cost, by Space, agent, day or cloud.

Image tools#

images_list#

List the sandbox image catalog (the images the docs list): ref, OS, container or VM, local runtime, whether it ships cua-spacesd and which browsers, its other variants, and the command that creates it. browser_tools=true means the in-sandbox cua-driver browser tools can drive its browser. Call this first to choose an image.

Permission: images:list.

ParameterTypeDefaultDescription
allbooleanInclude unpublished entries (benchmark images).
browserbooleanOnly images whose browser the cua-driver browser tools drive.
osstringOnly this OS: linux, windows or macos.

Sandbox tools#

sandbox_list#

List sandboxes: local and direct ones by default, each row with location (local or direct). Pass location to list only one kind. When the user is signed in and has other machines, a note after the rows names them and the route to use: a machine's own desktop is the Space relay:<id> (computer tools and space_bash take it as space), and new Spaces go to one with create_space on="host:<name>".

Permission: sandbox:list.

ParameterTypeDefaultDescription
location"local" | "direct"Only sandboxes in this location: local or direct (default: all).

sandbox_create#

Create a sandbox from any image. on says where (local, the default unless the user configured another with cua config set default.on), kind what (auto, container, vm, microvm) and runtime which engine (auto, or gvisor, runc, qemu, lume, firecracker, vz, containerization); an impossible combination fails and lists the valid values. To browse the web, pass browser=true (and optionally url): it starts the canonical Linux image, registers it as a Space, launches Chromium with a throwaway profile inside it and returns the space, session, target_id and tab_id to pass to call_tool with the in-sandbox browser tools (browser_navigate, get_browser_state, browser_click, browser_type). Pass command, env and services to run a server in it, for example an MCP server: services {"mcp": 8765}. Without browser=true it does not register a Space: to reach its MCP server with list_tools/call_tool (service="mcp"), use create_space instead (same arguments), or add this one with add_space (address local:<name>).

Permission: sandbox:create.

ParameterTypeDefaultDescription
browserbooleanStart a browser in it, ready for the cua-driver browser tools (default image: the canonical Linux image).
commandstring[]Entrypoint override (argv), for example ["python", "-m", "my_mcp"].
envobjectEnvironment variables (string values).
imagestringImage reference, any registry (overrides os_type).
kind"auto" | "container" | "vm" | "microvm"What kind of computer: auto (default; from the image), container, vm or microvm.
namestringSandbox name.
onstringWhere it runs: local (default: the user's default location, else local).
os_typestringlinux (default) or macos.
poolstringCreate from this pool (sandbox_pool_create): takes one of its ready sandboxes in about 0.1 s (on this computer).
runtimestringWhich engine: auto (default) or one the location offers for the kind (gvisor, runc, qemu, lume, firecracker).
servicesobjectNamed services: name to guest port, for example {"mcp": 8765}; each is probed for readiness.
urlstringWith browser=true: open this URL first.

sandbox_pool_list#

List the pools: sandboxes of one image kept ready on this machine (min always, up to max while creates come fast), each with how many are ready and why.

Permission: sandbox:list.

No parameters.

sandbox_pool_create#

Create a pool (or update the pool of that name): sandboxes of one image kept ready on this machine, min at all times (refilled right after each create from it) and up to max while creates come faster than sandboxes start. sandbox_create with pool=<name> then takes one in about 0.1 s. Use it before creating many sandboxes of one kind (an agent loop, a batch); without pools, ready sandboxes are kept only where repeated creates pay for it.

Permission: sandbox:pools.

ParameterTypeDefaultDescription
cpusintegervCPUs of each sandbox.
envobjectEnvironment variables (string values).
idle_secondsintegerAfter this long without a create from the pool it keeps none ready until the next one (default: never).
imagestringrequiredImage its sandboxes run (for example linux).
kindstringauto (default), container, vm or microvm.
maxintegerMost kept ready, not counting those created from the pool (default: min).
memory_mbintegerMemory (MiB) of each sandbox.
minintegerSandboxes kept ready at all times (default 1).
namestringPool name (lower-case letters, digits, '-'; default: a new one).
runtimestringauto (default) or an engine (gvisor, runc, qemu, ...).

Example arguments

{"image":"<image>"}

sandbox_pool_delete#

Delete a pool. Its ready sandboxes go; sandboxes created from it stay.

Permission: sandbox:pools.

ParameterTypeDefaultDescription
namestringrequiredPool name.

Example arguments

{"name":"<name>"}

sandbox_get#

Get details for a sandbox.

Permission: sandbox:get.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_start#

Start (resume) a sandbox.

Permission: sandbox:start.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_stop#

Stop (suspend) a sandbox.

Permission: sandbox:stop.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_restart#

Restart a sandbox.

Permission: sandbox:restart.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_suspend#

Suspend a sandbox.

Permission: sandbox:suspend.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_delete#

Delete a sandbox.

Permission: sandbox:delete.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_view#

Get a browser link to the sandbox desktop in the cua-spacesd HTML5 viewer (video, audio, input, clipboard, files). The link expires after an hour.

Permission: sandbox:view.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_vnc#

Deprecated: use sandbox_view. Returns the same viewer link.

Permission: sandbox:view.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.

Example arguments

{"name":"<name>"}

sandbox_open_browser#

Launch Chromium with a fresh throwaway profile inside an existing sandbox (an image with cua-spacesd and Chromium, see images_list), bind it and optionally open a URL. Returns the space, session, target_id and tab_id for call_tool with the in-sandbox browser tools. sandbox_create with browser=true already does this.

Permission: sandbox:browser.

ParameterTypeDefaultDescription
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.
sessionstringcua-driver session label to use on every later browser call (default: browse).
urlstringOpen this URL first.

Example arguments

{"name":"<name>"}

Teleport tools#

teleport_browser_session#

Teleport the user's signed-in session for specific sites (for example github.com) from their Firefox or Chrome into a sandbox, through the Cua Keyvault. Name each site: nothing is selected by default and there is no all-sessions option. The first call moves nothing: it files a Keyvault request and returns consent_required, a summary and a request_id. Show the summary to the user; they approve it in Cua (Touch ID or password). Then call again with the request_id to move exactly those sites. Use it only when the user asks to browse as themselves.

Permission: teleport:browser.

ParameterTypeDefaultDescription
browser"firefox" | "chrome"requiredfirefox or chrome (chromium, brave and edge profiles use chrome).
duration_minutesintegerHow long the sandbox may keep them (default 15, at most 1440).
namestringrequiredSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations.
reasonstringWhy, in a few words; shown to the user as unverified.
request_idstringThe request_id from the first call, after the user approved it in Cua.
sitesstring[]requiredThe exact sites to teleport, for example ["github.com"].

Example arguments

{"name":"<name>","browser":"firefox","sites":["<site>"]}

Computer tools#

Computer tools act on a sandbox desktop through its cua-spacesd. Coordinates are in the pixel space of the last computer_screenshot of that sandbox.

computer_screenshot#

Take a screenshot (long edge at most 1200 px). Later coordinates are in its pixel space.

Permission: computer:screenshot.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_click#

Click at screenshot coordinates.

Permission: computer:click.

ParameterTypeDefaultDescription
buttonstringleft (default), right or middle.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
xintegerrequiredX in screenshot pixels.
yintegerrequiredY in screenshot pixels.

Example arguments

{"x":100,"y":200}

computer_double_click#

Double-click at screenshot coordinates.

Permission: computer:click.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
xintegerrequiredX in screenshot pixels.
yintegerrequiredY in screenshot pixels.

Example arguments

{"x":100,"y":200}

computer_move_cursor#

Move the cursor.

Permission: computer:click.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
xintegerrequiredX in screenshot pixels.
yintegerrequiredY in screenshot pixels.

Example arguments

{"x":100,"y":200}

computer_mouse_down#

Press a mouse button.

Permission: computer:click.

ParameterTypeDefaultDescription
buttonstringleft, right or middle.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
xintegerrequiredX in screenshot pixels.
yintegerrequiredY in screenshot pixels.

Example arguments

{"x":100,"y":200}

computer_mouse_up#

Release a mouse button.

Permission: computer:click.

ParameterTypeDefaultDescription
buttonstringleft, right or middle.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
xintegerrequiredX in screenshot pixels.
yintegerrequiredY in screenshot pixels.

Example arguments

{"x":100,"y":200}

computer_type#

Type text.

Permission: computer:type.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
textstringrequiredText.

Example arguments

{"text":"<text>"}

computer_key#

Press a key (enter, escape, tab, a, ...).

Permission: computer:key.

ParameterTypeDefaultDescription
keystringrequiredKey.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"key":"<key>"}

computer_key_down#

Hold a key.

Permission: computer:key.

ParameterTypeDefaultDescription
keystringrequiredKey.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"key":"<key>"}

computer_key_up#

Release a key.

Permission: computer:key.

ParameterTypeDefaultDescription
keystringrequiredKey.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"key":"<key>"}

computer_hotkey#

Press a shortcut such as ctrl+c or cmd+shift+s.

Permission: computer:hotkey.

ParameterTypeDefaultDescription
keysstringrequiredKeys joined by +.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"keys":"<keys>"}

computer_scroll#

Scroll up, down, left or right.

Permission: computer:scroll.

ParameterTypeDefaultDescription
amountintegerLines (default 3).
directionstringdown (default), up, left, right.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_drag#

Drag between two points.

Permission: computer:drag.

ParameterTypeDefaultDescription
end_xintegerrequiredEnd X.
end_yintegerrequiredEnd Y.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
start_xintegerrequiredStart X.
start_yintegerrequiredStart Y.

Example arguments

{"start_x":100,"start_y":200,"end_x":100,"end_y":200}

computer_clipboard_get#

Read clipboard text.

Permission: computer:clipboard.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_clipboard_set#

Set clipboard text.

Permission: computer:clipboard.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
textstringrequiredText.

Example arguments

{"text":"<text>"}

computer_file_read#

Read a text file.

Permission: computer:file.

ParameterTypeDefaultDescription
pathstringrequiredPath.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"path":"<path>"}

computer_file_write#

Write a text file (the Spaces space_write implementation, on this sandbox).

Permission: computer:file.

ParameterTypeDefaultDescription
contentstringrequiredContent.
pathstringrequiredPath.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"path":"<path>","content":"<content>"}

computer_file_list#

List a directory.

Permission: computer:file.

ParameterTypeDefaultDescription
pathstringPath (default .).
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_shell#

Run a shell command (sh -c, 120 s timeout; the Spaces space_bash implementation, on this sandbox).

Permission: computer:shell.

ParameterTypeDefaultDescription
commandstringrequiredCommand line.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"command":"<command>"}

computer_window_list#

List windows.

Permission: computer:window.

ParameterTypeDefaultDescription
appstringFilter by app or title.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_window_open#

Open a file or URL.

Permission: computer:window.

ParameterTypeDefaultDescription
pathstringrequiredPath or URL.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"path":"<path>"}

computer_window_focus#

Focus a window.

Permission: computer:window.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
window_idstringrequiredWindow id.

Example arguments

{"window_id":"<window_id>"}

computer_window_unfocus#

Remove focus from the current window (Escape).

Permission: computer:window.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_window_minimize#

Minimize a window.

Permission: computer:window.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
window_idstringrequiredWindow id.

Example arguments

{"window_id":"<window_id>"}

computer_window_maximize#

Maximize a window.

Permission: computer:window.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
window_idstringrequiredWindow id.

Example arguments

{"window_id":"<window_id>"}

computer_window_close#

Close a window.

Permission: computer:window.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
window_idstringrequiredWindow id.

Example arguments

{"window_id":"<window_id>"}

computer_window_resize#

Resize a window.

Permission: computer:window.

ParameterTypeDefaultDescription
heightintegerrequiredHeight.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
widthintegerrequiredWidth.
window_idstringrequiredWindow id.

Example arguments

{"window_id":"<window_id>","width":1,"height":1}

computer_window_move#

Move a window.

Permission: computer:window.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
window_idstringrequiredWindow id.
xintegerrequiredX.
yintegerrequiredY.

Example arguments

{"window_id":"<window_id>","x":100,"y":200}

computer_window_get_info#

Get a window's title, position and size.

Permission: computer:window.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
window_idstringrequiredWindow id.

Example arguments

{"window_id":"<window_id>"}

computer_launch#

Launch an application.

Permission: computer:window.

ParameterTypeDefaultDescription
appstringrequiredApp name.
argsstring[]Arguments.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

Example arguments

{"app":"<app>"}

computer_get_screen_size#

Primary display size in points.

Permission: computer:screenshot.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_get_cursor_position#

Cursor position in points.

Permission: computer:screenshot.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_get_current_window#

The focused window's id and title.

Permission: computer:screenshot.

ParameterTypeDefaultDescription
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).

computer_get_accessibility_tree#

Accessibility tree of the focused (or given) window.

Permission: computer:screenshot.

ParameterTypeDefaultDescription
max_depthintegerDepth limit.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
window_idstringWindow id.

computer_accessibility_act#

Act on an accessibility element (press, focus, set_value, ...).

Permission: computer:accessibility.

ParameterTypeDefaultDescription
actionstringpress (default), focus, set_value, ...
element_idstringrequiredElement id.
sandboxstringSandbox ref (local:<name>, direct:<host:port>) or a name unique across locations (default: --sandbox / CUA_SANDBOX).
snapshot_idstringSnapshot id from the tree.
valuestringValue for set_value.

Example arguments

{"element_id":"<element_id>"}

Share tools#

Share tools are cua share for agents: use them for any link to something you ran, never localhost. share opens the link once to check it loads. See Share a link to anything you run.

share#

Get a link to something you ran, that opens on the user's other signed-in devices (phone included): a dev server or dashboard on a port, a port in a Space, or a file or folder (read-only). ANY link to something you ran (a preview, a dashboard, a report, a file) must come from this tool: never hand the user localhost, 127.0.0.1 or a Space-internal address, which they cannot open. It creates a persistent share (it keeps working after this session, until ttl, share_stop, or the Space is deleted), then opens the link once itself and returns check. Only send the link when check.ok is true; if it is false, say so, fix what is wrong (start the server, fix the path) and check again with a new share. Default access is private (only the user's cua.ai account); team shares it with the user's team; public makes a link anyone can open (expires, default 1h) and needs the user's say-so.

Permission: share:create.

ParameterTypeDefaultDescription
accessstringprivate (default: the user's own devices), team, or public (anyone with the link; expires).
namestringA name for share_list.
targetstringrequiredWhat to share: a port on this machine ("3000"), a port in a Space ("space:NAME:3000"), or a file or folder path (absolute, or relative to the server's directory).
ttlstringHow long it lasts: 10m, 1h, 24h (60s to 24h). Public shares default to 1h; others have no end.

Example arguments

{"target":"<target>"}

share_list#

The active shares: id, link, access, what each serves and when it ends.

Permission: share:read.

No parameters.

share_stop#

Stop a share so its link stops working at once. Pass its id or name from share_list, or "all".

Permission: share:stop.

ParameterTypeDefaultDescription
idstringrequiredA share's id or name, or "all".

Example arguments

{"id":"<id>"}

Skills tools#

skills_list#

List recorded skills.

Permission: skills:list.

No parameters.

skills_read#

Read a skill and its steps.

Permission: skills:read.

ParameterTypeDefaultDescription
namestringrequiredSkill name.

Example arguments

{"name":"<name>"}

skills_delete#

Delete a skill.

Permission: skills:delete.

ParameterTypeDefaultDescription
namestringrequiredSkill name.

Example arguments

{"name":"<name>"}

skills_record#

How to record a skill (recording is interactive: cua skills record).

Permission: skills:record.

ParameterTypeDefaultDescription
namestringrequiredSkill name.

Example arguments

{"name":"<name>"}

Connect tools#

connect_status#

Whether each AI agent on this computer (Hermes, Claude Code, Codex, Cursor, OpenClaw, T3 Code, ...) is really connected to Cua: installed and its version, signed in, Cua's MCP entry present and answering, its sign-in copied to Keyvault, and one line saying what to do when something is wrong. Read-only.

Permission: connect:status.

No parameters.

Run tools#

Run tools are cua sb run and cua sb runs for agents: on this machine by default, or with on="auto" on the least-loaded of the machines signed in to your account that provide Spaces (Use all your machines). They need the cua daemon of Cua Spaces.

space_run#

Run a command in new Spaces, count times (each in its own Space, deleted afterwards): on this machine by default, or with on="auto" on the least-loaded of the user's machines that provide Spaces (signed in to their account, or added by address), or on one machine by name. Returns the run id at once; read progress and results with space_runs. A run on the user's machines keeps going when this machine sleeps. Each job's result is recorded once, but a job may run more than once when a machine is lost, so make it safe to repeat. For batch work (many browser sessions, tests, renders); for one interactive Space use create_space.

Permission: runs:run.

ParameterTypeDefaultDescription
commandstring[]requiredThe command and its arguments (run without a shell; use ["sh", "-c", "..."] for one).
concurrencyintegerMost at once (default: as many as the machines take).
countintegerHow many times to run it (default 1, at most 10000).
cpusnumberCPUs reserved for each (default 1).
envobjectEnvironment variables for the command.
imagestringImage of each Space (default: the canonical Linux image).
kindstringcontainer, vm or microvm (default: what the image is).
memory_mbintegerMemory reserved for each, in MiB (default 1024).
onstringlocal (default: this machine), auto (the least-loaded of your machines), or a machine's name.
runtimestringA runtime: gvisor, runc, firecracker, ... (default: auto).
timeout_secsintegerHow long each may run (default 600).

Example arguments

{"command":["<command>"]}

space_runs#

A run's progress and results (pass run: its summary, counts by state, done, and its jobs with machine, attempt, exit code, stdout, stderr), one job with its output (run and job), or the recent runs (neither; on="local" for this machine's, else your machines'). With cancel=true it cancels the run (or the job).

Permission: runs:read.

ParameterTypeDefaultDescription
cancelbooleanCancel the run or the job.
jobintegerOne job of the run.
onstringWithout run: local or auto (default).
runstringA run id from space_run.
statestringWith run: only jobs in this state (queued, running, succeeded, failed, error, canceled).

Permissions#

Tools are gated by --permissions (or CUA_MCP_PERMISSIONS), a comma-separated list of permissions and groups; the default is all. Each group has an all and a readonly form (sandbox:readonly); each tool lists its own permission.

GroupGrants:readonly grants
computer:all12 permissionscomputer:screenshot
connect:allconnect:statusconnect:status
images:allimages:listimages:list
runs:allruns:run, runs:readruns:read
sandbox:all11 permissionssandbox:list, sandbox:get
share:allshare:create, share:read, share:stopshare:read
skills:allskills:list, skills:read, skills:record, skills:deleteskills:list, skills:read
spaces:all118 permissions38 permissions
teleport:allteleport:browsernone