MCP tools
The 52 tools of the agora mcp server, grouped by what they control.
agora mcp exposes these tools. With a cursor token, the workspace argument is hidden and defaults to the cursor’s workspace. AGORA_TOOLS limits which groups are listed (the self group is always on); see token efficiency.
Results of browser actions are text: done. now visible: followed by the visible page, diffed against the last view of that tab. If a CAPTCHA is detected, the result ends with CHALLENGE DETECTED: {...}. Screenshots are returned as images.
Browser (browser)
| Tool | Description |
|---|---|
browser_open |
Open a tab you own, in its own window. url, isolated (separate context), same_window. Returns the target and what is visible. |
browser_navigate |
Navigate a tab, wait for load (wait: load, domcontentloaded, none) and return what is visible. |
browser_snapshot |
Full semantic view of the page, offscreen included: interactive elements with refs [eN], roles, names, boxes, plus page text (max_text, default 3000). |
browser_click |
Click by ref, or at viewport x,y for canvases, cross-origin iframes and CAPTCHA widgets. button, count. |
browser_fill |
Replace a field’s value by ref. submit: true presses Enter. |
browser_type |
Type key by key into the focused element (or click ref first). Works on background tabs without stealing focus. |
browser_press |
Press a key or combo: Enter, Tab, Escape, ctrl+a, ArrowDown. |
browser_scroll |
Scroll by pixels (dy > 0 down), optionally at x,y. |
browser_select |
Select options of a <select> by value or label. |
browser_eval |
Evaluate a JavaScript expression and return its JSON value. Promises are awaited. |
browser_screenshot |
Viewport or full_page screenshot. Defaults to max_width 1024 and JPEG quality 60. |
browser_action |
back, forward, reload, dialog (accept, text), challenge, focus, info, close. |
Extra browser tools (browserx)
| Tool | Description |
|---|---|
browser_tabs |
List tabs with owners. |
browser_hover |
Hover by ref or coordinates. |
browser_drag |
Drag inside the page from x,y to x2,y2. |
browser_upload |
Set files (paths on the Agora host) on a file input ref, or on the file chooser that just opened. |
browser_wait |
Wait for a selector, visible text or url_contains. timeout_ms default 15000. |
browser_emulate |
Emulate a device viewport: width, height, scale, mobile. width: 0 resets. |
browser_audit |
One-call UI and quality audit: overflow, contrast, tiny text, tap targets, unnamed controls, unlabeled inputs, missing alt, headings, meta and SEO tags, TTFB/LCP/CLS, bytes by type, third parties, fonts, animations, reduced motion and broken internal links. |
Desktop (desktop)
These use the cursor’s own MPX pointer and keyboard.
| Tool | Description |
|---|---|
desktop_screenshot |
Desktop, one window or a region (x, y, w, h). Coordinates match desktop_* unless max_width scales the image. |
desktop_windows |
Top-level windows: id, title, class, geometry. |
desktop_click |
Click at screen coordinates. Focuses and raises the window under it. |
desktop_move |
Move the pointer (hover). |
desktop_drag |
Drag with the left button. |
desktop_scroll |
Scroll in notches at a position. |
desktop_type |
Type into the window focused by your keyboard, optionally focusing window first. |
desktop_key |
Key or combo: Enter, ctrl+l, ctrl+shift+t, alt+F4. |
desktop_window |
raise, move, resize, release (back to the layout) or close a window. |
desktop_launch |
Launch a program (unprivileged, DISPLAY set). restore: true relaunches it on resume. |
desktop_clipboard |
Get the clipboard, or set it with text. |
control_surface |
acquire or release an exclusive lock on win:<id> or tab:<target>, with ttl_ms. |
Self (always available)
| Tool | Description |
|---|---|
cursor_status |
Set your live status: running, thinking, executing, waiting, blocked, needs_human. |
cursor_report |
Report progress (message, percent) to your parent. |
cursor_complete |
Finish with a structured result. Releases your seats, locks and tabs. |
cursor_fail |
Finish with an error. |
cursor_inbox |
Read messages after since. |
human_request |
Ask a human to take over (CAPTCHA, MFA, approval). Then call events_wait with types: "control.returned". |
board_read |
Read the workspace’s shared board: current claims and posts after since. Check it before starting a work item. |
board_post |
Post to the shared board so sibling agents do not duplicate work. kind: claim (fails if someone else holds or finished the topic), done, release, finding or note; topic, text. |
events_wait |
Wait for events: types (comma-separated, * suffix), cursor, since, wait_ms (default 30000). |
Subagents (spawn)
| Tool | Description |
|---|---|
cursor_spawn |
Create a child with a goal, permissions, launch, worktree and max_children. See launching subagents. |
cursor_list |
List cursors, by parent, workspace or active. |
cursor_get |
One cursor (self for yourself). |
cursor_wait |
Block until cursors finish (all default true, timeout_ms default 10 min). |
cursor_control |
cancel (cascades), pause, resume or transfer a descendant. |
cursor_message |
Send JSON to another cursor’s inbox. |
Workspaces (workspace)
| Tool | Description |
|---|---|
workspace_list |
Workspaces with state, resources, viewers and cursors. |
workspace_create |
Create a workspace: name, width, height, profile, layout, start. |
workspace_info |
State, display, browser, usage and locks. |
workspace_op |
start, suspend, resume, freeze, thaw, checkpoint, fork, resize, layout, browser-restart. |
system_info |
Daemon resources and per-workspace memory and CPU. |
Processes (process)
| Tool | Description |
|---|---|
worktree_create |
Git worktree with its own branch, directory and port range: repo, branch, base. |