aethyn-browser-mcp
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aethyn-browser-mcp launch browser in Germany and go to amazon.de"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aethyn Browser MCP — residential-proxy browser control for AI agents (pick the country, one identity per task)
An MCP server that lets an AI agent drive a real browser through residential proxies, choosing the exit country / city, tier, and a sticky per-task session — at call time. The browser (Playwright Chromium) runs locally on your machine; you bring your own proxy credentials. Defaults to Aethyn residential proxies, and works with any HTTP proxy you configure.
The only browser MCP where the agent picks the country and holds one identity per task.
Why this exists
Playwright MCP drives a browser well, but its proxy is set once at server startup — one static exit for the whole session. The agent can't ask for a Japanese exit for one task and a German exit for the next.
Hosted "web scraping" MCPs hide the proxy and hand back JSON — no runtime control over geo or session identity, and it's their pool at their price.
This server gives the agent runtime, per-task, steerable geo + sticky identity as tools — exactly what browser agents need to pull country-specific data (pricing, SERPs, catalogs, availability) and feed it into a chart or pipeline.
Related MCP server: proxyclaw-mcp-py
Quickstart
Add the server to your MCP client — Claude Desktop (claude_desktop_config.json) or Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"aethyn-browser": {
"command": "npx",
"args": ["-y", "aethyn-browser-mcp"],
"env": {
"AETHYN_USERNAME": "aethyn-XXXXX",
"AETHYN_PASSWORD": "your-proxy-password",
"AETHYN_DEFAULT_TIER": "premium"
}
}
}
}Chromium is downloaded automatically on first install (~170 MB, one-time). If your environment blocks post-install scripts, run it yourself: npx playwright install chromium.
⚠️ Set the tier to match your plan.
AETHYN_DEFAULT_TIERdefaults topremium(port2099). If your account is Elite, set it toelite(port5499) — otherwise traffic hits the Premium port and the proxy returns 407 (auth rejected), even though the browser launched fine. The agent can also override per task withtier: "elite".
That's it. Ask your agent something like "Launch a browser in Japan, open example.co.jp, verify the exit IP is Japanese, and give me the page as markdown."
Tools
Tool | What it does |
| Launch local Chromium through a residential exit in a chosen |
| Go to a URL; waits for load and returns the HTTP status, final URL, and title. |
| Return the page cleaned for reading ( |
| Accessibility snapshot (roles, names, |
| Click by |
| Type into an input (optionally submit with Enter). |
| Fetch IP info through the session's proxy to verify the geo actually landed. |
| Rotate to a fresh exit IP (same country) and clear cookies. |
| Close the session's context and free memory. |
| Discover available countries (and Elite cities) at runtime. |
How it's different
Aethyn Browser MCP | Playwright MCP | Hosted scraping MCPs | |
Runs the browser | Local (yours) | Local | Their cloud |
Proxy geo chosen by the agent per task | ✅ at call time | ❌ fixed at startup | ❌ not exposed |
Sticky identity per task (pinned exit IP) | ✅ | ❌ | ❌ |
Verify the exit geo landed | ✅ | ❌ | ❌ |
Bring your own proxy | ✅ any HTTP proxy | one static proxy | ❌ |
No trash-talk — just the capability delta. (Playwright MCP is great; it just wasn't built for per-task geo.)
Bring your own proxy
Aethyn is the default, but any HTTP proxy works — point PROXY_HOST at it and describe its username format with a template. [ ... ] segments are dropped when empty, and {country} {city} {state} {session} {lifetime} are filled from the agent's call:
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["-y", "aethyn-browser-mcp"],
"env": {
"PROXY_HOST": "gate.your-provider.com",
"PROXY_PORT": "7000",
"PROXY_USERNAME": "your-user",
"PROXY_PASSWORD": "your-pass",
"PROXY_USERNAME_TEMPLATE": "{username}-country-{country}[-city-{city}]-session-{session}-lifetime-{lifetime}"
}
}
}
}For a plain fixed proxy with no geo in the username, use "PROXY_USERNAME_TEMPLATE": "{username}".
Configuration
Env var | Default | Notes |
| — | Your Aethyn proxy credentials (default provider). |
|
|
|
|
| Set |
|
| Oldest session is evicted past this cap. |
|
| Idle sessions auto-close after this many minutes. |
|
| Endpoint |
| — | Bring-your-own proxy (overrides the Aethyn default). |
HTTP proxies only — Chromium can't authenticate SOCKS5, so this server is HTTP-only by design.
Guardrails
This tool is for collecting public data. Please:
Respect
robots.txt, rate limits, and each site's terms and the law. Can reach ≠ should.No login/credential-wall automation, and no CAPTCHA solving — there's no such capability. If a site shows a challenge, read the page and stop rather than trying to bypass it.
Pace yourself. A residential IP firing dozens of requests per second is still obviously a bot.
Your credentials stay in your MCP config on your machine; the proxy password is never logged.
Get credentials
Need residential proxy credentials? The free trial needs no card:
→ Create an Aethyn account · Quickstart docs · Pricing
Contributing
PRs welcome — especially extending data/locations.json with more countries, cities, and states (single lowercase alphanumeric tokens), and new client examples. Keep it real and runnable; use placeholder credentials only.
License
MIT — free to use, copy, and adapt.
Available Tools
10 toolsaethyn_check_exit_ipVerify exit IP / geoA
Fetch IP info THROUGH the session's proxy so you can verify the exit country/city actually landed before trusting the page. Returns ip, country, city, org/ASN, and a best-effort is_residential flag.
Inputs: session_id (required).
aethyn_clickClickA
Click an element. Prefer a 'ref' from aethyn_snapshot (e.g. 'e12'); or pass a 'selector' (CSS, or Playwright role=/text= engine).
Inputs: session_id (required), ref, selector.
aethyn_closeClose sessionA
Close the session's browser context and free memory. Call this when a task is done.
Inputs: session_id (required).
aethyn_get_contentGet page contentB
Return the current page's content cleaned for reading (markdown by default). Use after navigating to extract data.
Inputs: session_id (required), format.
aethyn_launch_browserLaunch proxied browserA
Launch a local Chromium routed through a residential proxy exit in a chosen country (and city/state on the Elite tier). Returns a session_id the other aethyn_* tools use. Each session is one sticky identity — a pinned exit IP for the whole task.
Inputs: country (required), city, tier, state, +3 more.
aethyn_list_countriesList countries / citiesA
List available exit countries (and Elite-tier cities where known). Discover geo options at runtime before launching.
Inputs: with_cities.
aethyn_new_identityRotate identityA
Rotate the session to a fresh residential exit (new IP, same country) and clear cookies. Use between independent tasks or after a soft-block.
Inputs: session_id (required).
aethyn_snapshotAccessibility snapshotB
Return a structured accessibility snapshot (roles, names, and [ref=..] handles) of the page. Pass those refs to aethyn_click / aethyn_type. No screenshots needed.
Inputs: session_id (required).
aethyn_typeType textA
Type text into an input. Prefer a 'ref' from aethyn_snapshot; or a 'selector'. Set submit:true to press Enter after.
Inputs: text (required), session_id (required), ref, submit, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a distinct, non-overlapping purpose: launching, navigating, interacting via click/type, extracting content, managing identity, checking exit IP, listing countries, and cleanup. No ambiguity between any pair.
All tools follow a consistent aethyn_verb_noun snake_case pattern (e.g., aethyn_launch_browser, aethyn_check_exit_ip). No mixing of styles or unpredictable naming.
10 tools cover the full lifecycle of browser automation with proxy support: launch, navigate, interact, extract, identity rotation, geo discovery, and cleanup. The count is well-scoped for the domain.
The tool set covers all core browser automation steps: launch, navigate, interact (click, type), extract (content and snapshot), identity management, and exit verification. Minor gaps like screenshots or explicit waits are intentionally omitted, but the core workflow is complete.
Maintenance
Related MCP Connectors
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
A paid remote MCP for AI agent browser MCP session, built to return verdicts, receipts, usage logs,
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents real browser capabilities including screenshotting, action execution, data extraction, and multi-persona auditing for frontend validation.63 npm6MIT
- AlicenseNot gradedqualityDmaintenanceMCP server giving AI agents controlled residential-proxy web access with optional browser rendering and structured extraction from 60+ sites.1MIT
- AlicenseAqualityDmaintenanceMCP server that lets AI assistants browse the web through your real Chrome with your cookies, sessions, and fingerprint, avoiding bot detection and CAPTCHAs. Enables web browsing, content extraction, and multi-step workflows via persistent tabs.159 npm3MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to control a real browser with your existing sessions and extensions, avoiding bot detection and authentication hurdles.106Apache 2.0