{"id":4574934,"recorded_at":"2026-11-10T01:27:29.928814Z","observed_at":"2026-11-10T01:27:29.928754Z","subject_kind":"endpoint","subject":"60105ac1-16f4-4dc1-97b7-0dc1fef125be","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":32,"tools":[{"description":"Analyze the current page. Returns its content and every interactive element with an id to use with click/type tools,\nplus page facts (url, title, viewport, scroll, and when they apply: panelScroll, modal, covered, truncated) and each element's state (off-screen, disabled, checked, a field's hint).\nformat picks how it is written: toon (default; one table of blocks, fewer tokens), markdown or jsonl.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"format":{"description":"How the page is written; the server default when left out","enum":["markdown","toon","jsonl"],"type":"string"}},"type":"object"},"name":"analyze_page"},{"description":"Click an interactive element by its ID number (from analyze_page results).","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"element_id":{"description":"The element ID number from analyze_page","type":"number"}},"required":["element_id"],"type":"object"},"name":"click"},{"description":"Click at specific x,y pixel coordinates on the page. Use when you know the exact position (e.g. from a screenshot).","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"x":{"description":"X coordinate in pixels from the left edge","type":"number"},"y":{"description":"Y coordinate in pixels from the top edge","type":"number"}},"required":["x","y"],"type":"object"},"name":"click_coordinates"},{"description":"Fill and submit a one-time code (MFA / 2FA) the page asks for, from the persona's authenticator, email or SMS. Call it on a code prompt after signing in.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"complete_mfa"},{"description":"Double-click an element by ID or at specific x,y coordinates.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"element_id":{"description":"Element ID to double-click (from analyze_page)","type":"number"},"x":{"description":"X coordinate (used if no element_id)","type":"number"},"y":{"description":"Y coordinate (used if no element_id)","type":"number"}},"type":"object"},"name":"double_click"},{"description":"Drag from one point to another. Useful for sliders, drag-and-drop, or selecting text.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"from_x":{"description":"Start X coordinate","type":"number"},"from_y":{"description":"Start Y coordinate","type":"number"},"to_x":{"description":"End X coordinate","type":"number"},"to_y":{"description":"End Y coordinate","type":"number"}},"required":["from_x","from_y","to_x","to_y"],"type":"object"},"name":"drag"},{"description":"Find the elements that match a description (\"search box\", \"add to cart\", \"next page\"), best first, with ids click and type accept. Much shorter than analyze_page when you know what you are looking for.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"query":{"description":"The words the element is known by","type":"string"}},"required":["query"],"type":"object"},"name":"find"},{"description":"Go back one page in the tab's history, like the browser's back button, and wait for it to load.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"go_back"},{"description":"Go forward one page in the tab's history and wait for it to load.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"go_forward"},{"description":"Answer a native browser dialog (confirm or prompt) blocking the page. Alerts are answered automatically.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"accept":{"description":"true clicks OK, false clicks Cancel","type":"boolean"},"prompt_text":{"description":"Text to enter, for a prompt dialog only","type":"string"}},"required":["accept"],"type":"object"},"name":"handle_dialog"},{"description":"Move the mouse onto an element, for menus, tooltips and previews that open on hover. Tells you what appeared.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"element_id":{"description":"Element ID from analyze_page","type":"number"}},"required":["element_id"],"type":"object"},"name":"hover"},{"description":"Type text using the keyboard without targeting a specific element. Types into whatever is currently focused.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"text":{"description":"Text to type","type":"string"}},"required":["text"],"type":"object"},"name":"keyboard_type"},{"description":"List the playbooks saved on this key: recorded flows that replay without a model, with their variables.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"list_playbooks"},{"description":"List the sites this browser's persona has a saved login for, with the username, never the password. Call it before a sign-in to know whether sign_in can fill the form and which account it will use.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"list_saved_logins"},{"description":"Move the mouse cursor to specific x,y coordinates without clicking. Useful for triggering hover states, tooltips, or dropdown menus.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"x":{"description":"X coordinate in pixels","type":"number"},"y":{"description":"Y coordinate in pixels","type":"number"}},"required":["x","y"],"type":"object"},"name":"mouse_move"},{"description":"Navigate the browser to a URL.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"url":{"description":"The URL to navigate to","type":"string"}},"required":["url"],"type":"object"},"name":"navigate"},{"description":"Show pool size and connected browsers.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"pool_status"},{"description":"Press a safe navigation key. Allowed: Enter, Escape, Tab, ArrowDown, ArrowUp, ArrowLeft, ArrowRight, Backspace, Delete, Space, Home, End, PageUp, PageDown. Do NOT use for F-keys, Meta, Control, Alt, or Shift.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"key":{"description":"Key to press","enum":["Enter","Escape","Tab","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Backspace","Delete","Space","Home","End","PageUp","PageDown"],"type":"string"}},"required":["key"],"type":"object"},"name":"press_key"},{"description":"Reload the page and wait for it to load. For a page stuck loading or showing stale data.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"reload"},{"description":"Replay a saved playbook on this browser with the given variables. Much faster and cheaper than doing the task step by step; a step that no longer fits the page is finished by the agent.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"name":{"description":"The playbook, from list_playbooks","type":"string"},"variables":{"additionalProperties":{},"description":"Values for its variables; its defaults fill the rest","properties":{},"type":"object"}},"required":["name"],"type":"object"},"name":"run_playbook"},{"description":"Run JavaScript that READS the page and returns data, for what analyze_page does not show well: every row of a long table, attributes, counts, text across many elements. The body of an async function: `return` the value (JSON-serialisable, cut at 8000 chars). It runs where the page cannot see it and must not change anything: no clicks, typing, requests or navigation; act with the element tools, which replay. Example: return [...document.querySelectorAll('table tr')].map(r => r.innerText);","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"script":{"description":"The function body; `return` what you want to read","type":"string"}},"required":["script"],"type":"object"},"name":"run_script"},{"description":"Hand a whole task to Oya's own browser agent on this browser and get its report back (DONE: or FAILED:). Uses this key's configured model; the run can be saved as a playbook afterwards.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"data":{"additionalProperties":{},"description":"Values the task uses, referred to as {{name}}","properties":{},"type":"object"},"task":{"description":"What to do, in plain words","type":"string"}},"required":["task"],"type":"object"},"name":"run_task"},{"description":"Capture a screenshot of the visible browser tab as an image.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"screenshot"},{"description":"Scroll the page up or down.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"amount":{"description":"Pixels to scroll (default 500)","type":"number"},"direction":{"description":"Scroll direction","enum":["up","down"],"type":"string"}},"required":["direction"],"type":"object"},"name":"scroll"},{"description":"Choose an option in a native dropdown (a select element from analyze_page) by the option text you see. Accepts {{placeholders}} and filters.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"element_id":{"description":"The select element ID from analyze_page","type":"number"},"option":{"description":"The visible text of the option to choose","type":"string"}},"required":["element_id","option"],"type":"object"},"name":"select_option"},{"description":"Sign in on the current page with the credentials stored for this site in the browser's persona. You never see them. Call it on a login form you were not given values for.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"sign_in"},{"description":"Solve a CAPTCHA (reCAPTCHA, hCaptcha, Turnstile) on the current page with the configured solver. Call it when a CAPTCHA blocks you, then analyze_page again.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"solve_captcha"},{"description":"Start a new browser on this key and make it the one every other tool drives. Uses the key's configured provider unless one is given. It costs a session until stop_browser.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"name":{"maxLength":100,"type":"string"},"persona":{"description":"Persona id, 'auto' (least recently used under its concurrency cap) or 'default'","type":"string"},"provider":{"enum":["oya-cloud","oya-selfhosted","browserbase","steel","anchor","browseruse"],"type":"string"},"url":{"description":"Navigate here once the browser is ready","type":"string"}},"type":"object"},"name":"start_browser"},{"description":"Stop a browser and release its session. Defaults to the browser the tools are driving.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"browser_id":{"type":"string"}},"type":"object"},"name":"stop_browser"},{"description":"Type text into an input element by its ID number (from analyze_page results). Clears existing content first.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"element_id":{"description":"The element ID number from analyze_page","type":"number"},"text":{"description":"The text to type","type":"string"}},"required":["element_id","text"],"type":"object"},"name":"type"},{"description":"Wait for an element matching a CSS selector to appear on the page.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"selector":{"description":"CSS selector to wait for","type":"string"},"timeout":{"description":"Max wait time in ms (default 10000)","type":"number"}},"required":["selector"],"type":"object"},"name":"wait"},{"description":"Wait until the page is ready: some text shows, the url contains something, and/or the network has gone quiet. With no text or url it waits for the network to settle. Use it after an action that loads results in the background, rather than analyzing again and again.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"network_idle":{"description":"Also wait for no new requests for a moment","type":"boolean"},"text":{"description":"Text that must appear on the page","type":"string"},"timeout":{"description":"Max wait in ms (default 10000, at most 20000)","type":"number"},"url":{"description":"Part of the url the page must reach","type":"string"}},"type":"object"},"name":"wait_for"}]},"body_sha256":"6d851bbbc0fa3b06182720d7c13e4804420b08cc0e9ed7d2e2d33099330569f7","prev_id":null,"leaf":"0xa28f4222a75d98b2a312feca0f000a915c1371766965de448b2fc23f7dce6a9b","leaf_text":"{\"body\":\"6d851bbbc0fa3b06182720d7c13e4804420b08cc0e9ed7d2e2d33099330569f7\",\"id\":4574934,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1794274049928754,\"prev\":null,\"subject\":\"60105ac1-16f4-4dc1-97b7-0dc1fef125be\",\"subject_kind\":\"endpoint\"}","day":null,"proof":[]}