Stealthy Auto Browse
Self-hosted MCP server for stealth browser automation with human-like OS-level input.
Connector by psyb0t · GitHub account verified by the MCP Registry
Install
Pick your client. Read the repository before you give any tool access to your data.
No install instructions from the source yet. Check the repository for setup steps.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: browser-automation, web-scraping
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 7 read · 11 write · 2 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Docker image
Tools by what they do 20
Read from the source code; the running server may list different tools.
Read 7 · Look things up without changing anything.
detect_challengeget_clipboardget_htmlget_interactive_elementsget_textscreenshotwait_for_element
Write 11 · Create, change, send or run things.
browser_actionclickfillgotomouse_movescrollsend_keyset_clipboardsystem_clicksystem_typewait_for_text
Delete 2 · Delete, drop, revoke or wipe things.
eval_jsrun_script
Network hosts it talks to 7
bing.com· found in codegithub.com· found in codeglama.ai· found in codegoogle.com· found in codejson.schemastore.org· found in codesearch.brave.com· found in codevirtual-media.stealthy.invalid· found in code
Files it touches
/proc/loadavg/proc/meminfo/usr/local/lib/python3.12/site-packages/camoufox/usr/share/fonts/opentype/urw-base35/usr/share/fonts/truetype/dejavu/usr/share/fonts/truetype/liberation- Your home directory (~)
~/.Xauthority
Tools (20)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
browser_actionExecute any browser action not covered by the other tools. Useful for: cookies (get_cookies, set_cookie, delete_cookies), tabs (list_tabs, new_tab, switch_tab, close_tab), storage (get_storage, set_storage, clear_storage), dialogs (handle_dialog, get_last_dialog), downloads (get_last_download, upload_file), clipboard (set_clipboard, get_clipboard), virtual media (get_virtual_media_state, set_virtual_media_source, upload_virtual_media), challenge detection (detect_challenge), network logging (enable_network_log, get_network_log, etc.), console logging (enable_console_log, get_console_log, etc.…
clickClick an element by CSS selector or XPath. PREFER THIS over system_click. Reliable, fast, and works on most sites. Only fall back to system_click if the site explicitly detects and blocks DOM event injection. XPath example: "xpath=//button[@id='submit']". Args: selector: CSS selector or XPath (prefix with "xpath=").
detect_challengeDetect a challenge widget without clicking, solving, or entering its frame. Returns a best-effort `absent`, `present`, or `unknown` status. Known matches include vendor, confidence, locations, and sanitised frame origin/path evidence. An absent result is not proof a site will never show a custom or later challenge. Args: scroll_into_view: Scroll the first visible detected frame or widget into the viewport. This never clicks, focuses, solves, or submits it.
eval_jsExecute JavaScript in the page and return the result. Examples: "document.title", "document.querySelectorAll('a').length". Args: expression: JavaScript expression to evaluate. world: "page" (default) runs in the page's own JavaScript world and can read page globals such as window.__NEXT_DATA__. "isolated" sees only the DOM; page scripts cannot observe or hook it.
fillSet an input field's value instantly by CSS selector. Clears existing content first. Does not generate individual keystrokes. Args: selector: CSS selector of the input element. value: The value to set.
get_clipboardRead UTF-8 text from the real X11 clipboard.
get_htmlGet the full HTML source of the current page.
get_interactive_elementsFind all interactive elements on the page (buttons, links, inputs, etc.). Returns each element's viewport coordinates (x, y), dimensions, text content, and CSS selector. Use the coordinates with system_click. Args: visible_only: Only return elements visible in the viewport.
get_textGet all visible text content from the current page (truncated to 10,000 chars).
gotoNavigate the browser to a URL. Args: url: The URL to navigate to. wait_until: When to consider navigation done. "domcontentloaded" (default), "load", or "networkidle". referer: Optional HTTP Referer header value. timeout: Seconds allowed per attempt. Omit for the app default of 30. retry_count: Timeout retries from 0 through 2. Omit for the app default of 1. retry_delay: Base seconds before a retry. Omit for the app default of 1.
mouse_moveMove the mouse to viewport coordinates with human-like movement (no click). Use to hover over elements (trigger dropdowns, tooltips). Args: x: Viewport X coordinate. y: Viewport Y coordinate. w: Target width; the pointer lands inside the target. h: Target height. duration: Scale the movement to this many seconds. speed: Movement speed multiplier (0.1-10). curvature: Main stroke bend multiplier (0-5, 0 = straight). tremor: Hand tremor amplitude in px (0-5).
run_scriptRun multiple browser actions as a single atomic script. All steps execute sequentially on the SAME browser instance under a single request lock. This is the only safe way to do multi-step workflows in a load-balanced cluster. Each step is a dict with "action" and its parameters. Add "output_id" to any action step to collect its result in the response outputs dict. Steps can also use control nodes: {"if": {"condition": ..., "then": [...]}} selects a branch; {"repeat": {"count": 1, "steps": [...]}} repeats a bounded body; and {"while": {"condition": ..., "max_iterations": 1, "steps": [...]}} r…
screenshotTake a screenshot of the browser viewport or full desktop. LAST RESORT. Prefer get_text() or get_html() instead. Screenshots cost many more tokens and only help when visual layout or images matter. When you do take a screenshot, always use whLargest=512 unless you specifically need fine detail. Full resolution is wasteful. Args: screenshot_type: "browser" for page viewport, "desktop" for full virtual screen. width: Resize to this width (keeps aspect ratio if height omitted). height: Resize to this height (keeps aspect ratio if width omitted). whLargest: Resize so the largest …
scrollScroll using the mouse wheel. Args: amount: Wheel notches, non-zero. Negative = down, positive = up. x: Optional X coordinate to move mouse to before scrolling. y: Optional Y coordinate to move mouse to before scrolling. notch_gap: Median seconds between wheel notches (0.015-5). Default: human flick/controlled rhythm.
send_keySend a keyboard key or combo. Examples: "enter", "tab", "escape", "backspace", "ctrl+a", "ctrl+shift+t". Args: key: Key name or combo using PyAutoGUI key names. key_hold: Median seconds the key is held (0.01-2). instant: Press and release at once with no human timing. Faster, but easy for a page to spot.
Show 5 more tools
set_clipboardReplace the real X11 clipboard with UTF-8 text up to 1 MiB.
system_clickClick at viewport coordinates using real OS-level mouse movement. PREFER click() with a CSS selector instead. It is faster and more reliable. Only use system_click when the site detects DOM event injection and blocks it. The window position is re-measured before every move, so it stays correct after fullscreen, new tabs and browser relaunches. Args: x: Viewport X coordinate of the target centre (from get_interactive_elements). y: Viewport Y coordinate of the target centre. w: Target width from get_interactive_elements. The click lands at a human offset inside the …
system_typeType text with real OS-level keystrokes (undetectable). Holds and releases keys with human timing: rhythm that depends on the key pair, overlapping keys for fast typists, and Shift pressed before capitals. Also types characters outside the US layout. You must focus an input field first (e.g. with system_click). Args: text: The text to type. interval: Median gap between key presses in seconds. Defaults to the session's typist speed. typos: Make and correct occasional typos. Refused on password, email, number, maxlength and similar fields (see typos_disabled…
wait_for_elementWait for an element to reach a state. Args: selector: CSS selector or XPath. state: "visible" (default), "hidden", "attached", or "detached". timeout: Max wait time in seconds.
wait_for_textWait for specific text to appear anywhere on the page. Args: text: Substring to wait for. timeout: Max wait time in seconds.
Compare and alternatives
Featured in
Signals
- Stars
- 94
- Forks
- 16
- Open issues
- 0
- Contributors
- 1
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
- Last package publish
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.psyb0t/stealthy-auto-browse- Version
- 3.2.0
- Auth
- No auth
- Packages
- oci
docker.io/psyb0t/stealthy-auto-browse:v3.2.0 - License
- WTFPL
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from psyb0t
- 0.649score
Claudebox
psyb0t
Self-hosted MCP server exposing Claude Code as an agentic AI tool over streamable HTTP.
ConnectorAFreshness: ARemote★ 23 - 0.630score
Talkies
psyb0t
Self-hosted MCP server for speech: ASR transcription, TTS synthesis, and file staging tools.
ConnectorAFreshness: ARemote★ 7 - 0.624score
HybridS3
psyb0t
Self-hosted S3-compatible object storage server with an MCP interface for AI agents.
ConnectorAFreshness: ARemote★ 5 - 0.624score
Mailbox
psyb0t
Scoped IMAP/SMTP access over HTTP and MCP: read, organize, draft, reply and send mail.
ConnectorAFreshness: ARemote★ 5 - 0.624score
Audiolla
psyb0t
Self-hosted MCP server: audio stems, mastering, MIR analysis, DSP, MIDI, speech tools.
ConnectorAFreshness: ARemote★ 5 - 0.624score
Wickworks
psyb0t
Self-hosted MCP server: technical indicators + smart-money-concepts from OHLC bars.
ConnectorAFreshness: ARemote★ 5
Cite this page
Stealthy Auto Browse MCP server. Agent Mart. https://agentmart.dev/connectors/psyb0t-stealthy-auto-browse (last updated 2026-10-24)