AgentStack
MCP verified MIT Self-run

CSA Obsidian

mcp-skuzu7-csa-obsidian Β· by skuzu7

🦊 Undetectable browser automation an LLM can drive β€” Camoufox stealth + a 17-tool MCP server. Human-like behavior, session persistence, CLI & Python API.

β€” No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add mcp-skuzu7-csa-obsidian

βœ“ scanned Β· βœ“ verified β€” works with Claude Code, Cursor, and more.

Security review

βœ“ Passed

No issues found. Passed automated security review. Β· v0.1.0 How review works β†’

  • βœ“ Prompt-injection patterns
  • βœ“ Secret / credential exfiltration
  • βœ“ Dangerous shell & filesystem operations
  • βœ“ Untrusted network calls
  • βœ“ Known-malicious package signatures

What it can access

  • βœ“ Network access No
  • βœ“ Filesystem access No
  • βœ“ Shell / process execution No
  • ● Environment & secrets Used
  • βœ“ Dynamic code execution No

From automated source analysis of v0.1.0. β€œUsed” means the capability is present in the source β€” more access means more to trust, not that it’s unsafe.

View the full security report β†’

Verified badge

Passed review? Show it. Paste this badge into your README β€” it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-skuzu7-csa-obsidian)

Reliability & compatibility

βœ“ Security review passed
0 installs to date
β€” no reviews yet
● 2mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming β€” see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps β€” measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work β†’
Are you the author of CSA Obsidian? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

🦊 automation-stealth

Undetectable browser automation that an LLM can actually drive.

Camoufox-powered stealth + a full MCP server = give Claude (or any LLM) real hands on a real browser, with human-like behavior that sails past bot detection.

[](https://www.python.org/) [](LICENSE) [](https://github.com/daijro/camoufox) [](https://modelcontextprotocol.io/) [](#-tests) [](CONTRIBUTING.md)


⚑ Why this exists

Most automation gets flagged the second it loads: navigator.webdriver, canvas hashes, robotic mouse paths, instant typing. automation-stealth fixes all of that and wraps it in a Model Context Protocol server, so an LLM can navigate, click, type, and scrape β€” behaving like a human the whole way.

> Real demo: we pointed Claude at this framework and told it to take the Anthropic Academy "Claude 101" certification quiz on a live, login-gated site. It navigated there, read each question, and scored 10/10 (100%) β€” driving a real browser end-to-end, undetected. πŸŽ“

✨ Features

  • πŸ•΅οΈ True stealth β€” Camoufox (hardened Firefox) spoofs canvas, WebGL, fonts, and navigator properties; removes automation flags; blocks WebRTC IP leaks.
  • 🧠 LLM-native β€” a 17-tool MCP server turns any MCP client (Claude Code, Claude Desktop, …) into a browser operator. Snapshots return indexed, clickable elements an LLM can reason about.
  • 🀚 Human behavior β€” Gaussian typing cadence, multi-step scroll inertia, and interpolated mouse drags with jitter β€” no teleporting cursors.
  • πŸͺ Sessions that persist β€” save/restore cookies + localStorage, persistent profiles, optional Chrome cookie import via CDP (bypasses v20 app-bound encryption).
  • 🧰 Three ways in β€” a stealth-browser CLI, the MCP server, or a clean async Python API.
  • 🌐 Proxy & locale aware β€” authenticated proxies, OS/locale spoofing, configurable window size.

πŸš€ Quickstart

git clone https://github.com/skuzu7/CSA-Obsidian
cd CSA-Obsidian
python -m venv .venv
.venv\Scripts\activate          # Windows
# source .venv/bin/activate     # Linux / macOS
pip install -e .
import asyncio
from stealth_browser.browser import BrowserManager
from stealth_browser.config import BrowserConfig
from stealth_browser.snapshot import take_snapshot

async def main():
    async with BrowserManager(BrowserConfig(headless=True)) as bm:
        page = await bm.get_page()
        await page.goto("https://example.com")
        snap = await take_snapshot(page)
        print(snap.to_llm_text())   # title, URL, indexed interactive elements, markdown

asyncio.run(main())

πŸ€– Plug it into Claude

Start the MCP server (stdio transport, works with any MCP client):

stealth-browser-mcp

Register it in Claude Code:

claude mcp add stealth-browser -- stealth-browser-mcp

…then just ask Claude to "open example.com and click the first link." It gets a snapshot, picks a ref, and acts.

The 17 MCP tools

| Tool | What it does | |---|---| | browser_open | Navigate to a URL β†’ snapshot of interactive elements | | browser_snapshot | Snapshot current page (elements + markdown, optional screenshot) | | browser_screenshot | Full-page screenshot as base64 PNG | | browser_navigate_back | Go back β†’ snapshot | | browser_refresh | Reload β†’ fresh snapshot | | browser_click | Click element by ref (human-like) | | browser_type | Type into element by ref, human cadence | | browser_select | Pick a ` option by ref | | browserhover | Hover by ref (tooltips, dropdowns) | | browserscroll | Human-like scroll up/down | | browserpresskey | Press a key (Enter, Tab, …) | | browsergettext | Page text as markdown | | browsergetcookies | All cookies for the context | | browserevaluate | Run arbitrary JS, return result | | browsersavesession | Save cookies to a named session | | browserloadsession | Restore a named session | | browserclose` | Close browser, reset state |

πŸ–₯️ CLI

stealth-browser open-page https://example.com               # snapshot to stdout
stealth-browser open-page https://example.com --screenshot  # + save screenshot
stealth-browser monitor https://news.site --interval 30 --checks 20
stealth-browser binance-tokens --timeout 90

βš™οΈ Configuration

Copy env.example β†’ .env and tune:

| Variable | Default | Description | |---|---|---| | STEALTH_PROFILE_DIR | profiles/default | Persistent browser profile path | | STEALTH_HEADLESS | false | Headless mode | | STEALTH_OS_TARGET | windows | Spoofed OS (windows, macos, linux) | | STEALTH_LOCALE | pt-BR,pt | Browser locale | | STEALTH_WINDOW | 1366,768 | Window size (width,height) | | STEALTH_BLOCK_WEBRTC | true | Block WebRTC (prevent IP leaks) | | STEALTH_HUMANIZE | true | Human-like input simulation | | STEALTH_PROXY_SERVER | (unset) | Proxy URL, e.g. socks5://127.0.0.1:1080 | | STEALTH_PROXY_USERNAME / _PASSWORD | (unset) | Proxy auth (optional) |

🐍 Python API β€” tasks

import asyncio
from stealth_browser.browser import BrowserManager
from stealth_browser.config import BrowserConfig
from stealth_browser.humanize import HumanBehavior
from tasks.trading.binance import BinanceTokenTask

async def main():
    cfg = BrowserConfig(headless=True)
    async with BrowserManager(cfg) as bm:
        page = await bm.get_page()
        task = BinanceTokenTask(page, HumanBehavior(cfg), cfg)
        print(await task.run(timeout=90))

asyncio.run(main())

πŸ§ͺ Tests

pip install -e ".[dev]"
pytest --cov --cov-report=term-missing -q

61 tests, covering errors, config, snapshot, request interception, the MCP layer, and page ops. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full design.

πŸ—‚οΈ Project structure

automation-stealth/
β”œβ”€β”€ stealth_browser/    # Core: browser, config, humanize, snapshot, page_ops, intercept, session, errors
β”œβ”€β”€ mcp_server/         # FastMCP server (17 tools) + concurrency lock + error decorator
β”œβ”€β”€ cli/                # Click CLI (open-page, monitor, binance-tokens)
β”œβ”€β”€ tasks/              # BinanceTokenTask, PageMonitorTask, FormFillTask
β”œβ”€β”€ tests/              # pytest suite (asyncio)
β”œβ”€β”€ docs/ARCHITECTURE.md
└── pyproject.toml

🀝 Contributing

PRs welcome β€” see [CONTRIBUTING.md](CONTRIBUTING.md). Run ruff check . and pytest before opening one.

βš–οΈ Responsible use

Built for legitimate automation: QA, end-to-end testing, accessibility audits, personal data collection, and LLM agents acting on your behalf. Respect each site's Terms of Service, robots.txt, and applicable law. You are responsible for how you use it.

πŸ“œ License

[MIT](LICENSE) Β© Anton (@skuzu7)

If this saved you from another flagged automation run, drop a ⭐ β€” it genuinely helps.

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source β€” we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet β€” be the first.

Versions

  • v0.1.0 Imported from the upstream source.