Pilot
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_navigateB | Navigate to a URL. Returns HTTP status code and final URL. |
| pilot_backB | Go back in browser history. |
| pilot_forwardB | Go forward in browser history. |
| pilot_reloadB | Reload the current page. |
| pilot_snapshotA | 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_diffA | Compare current page state against the last snapshot. Returns unified diff showing what changed. First call stores baseline. |
| pilot_annotated_screenshotA | Take a screenshot with red overlay boxes and ref labels at each @eN/@cN position. Requires a prior pilot_snapshot call. |
| pilot_clickA | Click an element by @ref (from snapshot) or CSS selector. Auto-routes clicks to selectOption. |
| pilot_hoverB | Hover over an element by @ref or CSS selector. |
| pilot_fillA | Clear and fill an input/textarea by @ref or CSS selector. |
| pilot_select_optionB | Select a dropdown option by value, label, or visible text. |
| pilot_typeA | Type text into the currently focused element (character by character). |
| pilot_press_keyB | Press a keyboard key (Enter, Tab, Escape, ArrowDown, Backspace, etc.). |
| pilot_dragC | Drag from one element to another. |
| pilot_scrollA | Scroll element into view, or scroll to page bottom if no ref provided. |
| pilot_waitB | Wait for element visibility, network idle, or page load. |
| pilot_file_uploadB | Upload file(s) to a file input element. |
| pilot_page_textA | Extract clean text from the page (strips script/style/noscript/svg). |
| pilot_page_htmlB | Get innerHTML of a selector/ref, or full page HTML if none provided. |
| pilot_page_linksB | Get all links on the page as text + href pairs. |
| pilot_page_formsB | Get all form fields on the page as structured JSON. |
| pilot_page_attrsB | Get all attributes of an element as JSON. |
| pilot_page_cssB | Get computed CSS property value for an element. |
| pilot_element_stateC | Check element state: visible, hidden, enabled, disabled, checked, editable, focused. |
| pilot_consoleC | Get console messages from the circular buffer. |
| pilot_networkB | Get network requests from the circular buffer. |
| pilot_dialogC | Get captured dialog (alert/confirm/prompt) messages. |
| pilot_evaluateB | Run a JavaScript expression on the page and return the result. Supports await. |
| pilot_cookiesB | Get all cookies as JSON. |
| pilot_storageB | Get localStorage + sessionStorage as JSON (sensitive values redacted). Optionally set a localStorage key. |
| pilot_perfA | Get page load performance timings (DNS, TCP, TTFB, DOM parse, load). |
| pilot_screenshotC | Take a screenshot of the page or a specific element. |
| pilot_pdfC | Save the current page as a PDF. |
| pilot_responsiveA | Take screenshots at mobile (375x812), tablet (768x1024), and desktop (1280x720). |
| pilot_page_diffB | Text diff between two URLs — compare staging vs production, etc. |
| pilot_tabsA | List all open browser tabs with URLs, titles, and active status. |
| pilot_tab_newB | Open a new browser tab, optionally navigating to a URL. |
| pilot_tab_closeA | Close a browser tab by ID (or current tab if none specified). |
| pilot_tab_selectB | Switch to a specific browser tab by ID. |
| pilot_resizeC | Set the browser viewport size. |
| pilot_set_cookieB | Set a cookie on the current page domain. |
| pilot_import_cookiesA | 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_headerB | Set a custom request header. Sensitive values are auto-redacted in the response. |
| pilot_set_useragentA | Set the browser user agent string. Recreates the browser context, preserving cookies and state. |
| pilot_handle_dialogC | Configure how dialogs (alert/confirm/prompt) are handled. |
| pilot_handoffA | 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_resumeB | Resume control after user handoff. Takes a fresh snapshot of the current page state. |
| pilot_closeA | Close the browser and clean up all resources. |
| pilot_framesA | List all frames (iframes) on the page. Use pilot_frame_select to switch context into an iframe for snapshot/interaction. |
| pilot_frame_selectA | 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_resetA | 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 | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TacosyHorchata/Pilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server