Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PILOT_PROFILE | No | Determines which tools are loaded to avoid overwhelming the LLM. 'core' (9 tools), 'standard' (25 tools), or 'full' (51 tools). | full |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pilot_navigate | Navigate to a URL. Returns HTTP status code and final URL. |
| pilot_back | Go back in browser history. |
| pilot_forward | Go forward in browser history. |
| pilot_reload | Reload the current page. |
| pilot_snapshot | Get accessibility tree snapshot with @eN refs for element selection. Use refs in click/fill/hover/etc. Use include_cursor_interactive to find non-ARIA clickable elements (@cN refs). |
| pilot_snapshot_diff | Compare current page state against the last snapshot. Returns unified diff showing what changed. First call stores baseline. |
| pilot_annotated_screenshot | Take a screenshot with red overlay boxes and ref labels at each @eN/@cN position. Requires a prior pilot_snapshot call. |
| pilot_click | Click an element by @ref (from snapshot) or CSS selector. Auto-routes clicks to selectOption. |
| pilot_hover | Hover over an element by @ref or CSS selector. |
| pilot_fill | Clear and fill an input/textarea by @ref or CSS selector. |
| pilot_select_option | Select a dropdown option by value, label, or visible text. |
| pilot_type | Type text into the currently focused element (character by character). |
| pilot_press_key | Press a keyboard key (Enter, Tab, Escape, ArrowDown, Backspace, etc.). |
| pilot_drag | Drag from one element to another. |
| pilot_scroll | Scroll element into view, or scroll to page bottom if no ref provided. |
| pilot_wait | Wait for element visibility, network idle, or page load. |
| pilot_file_upload | Upload file(s) to a file input element. |
| pilot_page_text | Extract clean text from the page (strips script/style/noscript/svg). |
| pilot_page_html | Get innerHTML of a selector/ref, or full page HTML if none provided. |
| pilot_page_links | Get all links on the page as text + href pairs. |
| pilot_page_forms | Get all form fields on the page as structured JSON. |
| pilot_page_attrs | Get all attributes of an element as JSON. |
| pilot_page_css | Get computed CSS property value for an element. |
| pilot_element_state | Check element state: visible, hidden, enabled, disabled, checked, editable, focused. |
| pilot_console | Get console messages from the circular buffer. |
| pilot_network | Get network requests from the circular buffer. |
| pilot_dialog | Get captured dialog (alert/confirm/prompt) messages. |
| pilot_evaluate | Run a JavaScript expression on the page and return the result. Supports await. |
| pilot_cookies | Get all cookies as JSON. |
| pilot_storage | Get localStorage + sessionStorage as JSON (sensitive values redacted). Optionally set a localStorage key. |
| pilot_perf | Get page load performance timings (DNS, TCP, TTFB, DOM parse, load). |
| pilot_screenshot | Take a screenshot of the page or a specific element. |
| pilot_pdf | Save the current page as a PDF. |
| pilot_responsive | Take screenshots at mobile (375x812), tablet (768x1024), and desktop (1280x720). |
| pilot_page_diff | Text diff between two URLs — compare staging vs production, etc. |
| pilot_tabs | List all open browser tabs with URLs, titles, and active status. |
| pilot_tab_new | Open a new browser tab, optionally navigating to a URL. |
| pilot_tab_close | Close a browser tab by ID (or current tab if none specified). |
| pilot_tab_select | Switch to a specific browser tab by ID. |
| pilot_resize | Set the browser viewport size. |
| pilot_set_cookie | Set a cookie on the current page domain. |
| pilot_import_cookies | Import cookies from a real Chromium browser (Chrome, Arc, Brave, Edge, Comet). Decrypts from browser cookie database and adds to the headless browser session. |
| pilot_set_header | Set a custom request header. Sensitive values are auto-redacted in the response. |
| pilot_set_useragent | Set the browser user agent string. Recreates the browser context, preserving cookies and state. |
| pilot_handle_dialog | Configure how dialogs (alert/confirm/prompt) are handled. |
| pilot_handoff | Open a visible (headed) Chrome window with all current state — cookies, tabs, localStorage. Use when headless mode is blocked by CAPTCHAs, bot detection, or complex auth. The user can solve it manually, then call pilot_resume to continue. |
| pilot_resume | Resume control after user handoff. Takes a fresh snapshot of the current page state. |
| pilot_close | Close the browser and clean up all resources. |
| pilot_frames | List all frames (iframes) on the page. Use pilot_frame_select to switch context into an iframe for snapshot/interaction. |
| pilot_frame_select | Switch context to an iframe by index or name. After switching, pilot_snapshot/click/fill will operate inside that iframe. Use pilot_frames to list available frames. |
| pilot_frame_reset | Switch back to the main frame. Use after interacting with an iframe. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |