dsh-antibrow
OfficialAllows launching a browser with an Android device profile, providing a mobile browser identity with a phone viewport, touch points, and mobile client hints.
Click on "Install 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., "@dsh-antibrowStart a session with my US proxy profile and visit the admin panel."
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.
dsh-antibrow
A DeepSeek Harness plugin that gives the agent a browser with an identity.
dsh plugin --profile <name> add dsh-antibrowWhy not a plain browser plugin
Every other browser plugin hands the agent a fresh Chromium. That is fine for reading a public page and useless for anything behind a login: the session dies with the process, the fingerprint is a stock automation build, and the traffic leaves from your machine.
A plain Playwright plugin | dsh-antibrow | |
Identity between runs | new browser every time | one persistent profile per name |
Logins | gone when the process ends | cookies and passkeys persist, optionally synced across machines |
Fingerprint | stock build, patched from page scripts | spoofed inside the engine, before any page script runs |
Egress | your own IP | residential proxy, with timezone, language and reported connection following its exit |
Parallel identities | one data directory to share | one isolated profile per agent or per account |
Tabs | start from nothing | last session restored, so the agent resumes where it stopped |
The difference shows up the first time an agent has to be someone: check a mailbox, watch a dashboard, keep a marketplace account warm. A browser with no memory has to log in again on every run, and logging in again is exactly what a site treats as suspicious.
Related MCP server: @meshbrow/mcp-server
What it brings
Unlimited profiles, on the free tier. Not five, not fifty - profiles live on your disk, not on a plan, and creating one costs nothing. Give every account, every marketplace, every persona its own browser and stop reasoning about which cookie jar the agent is holding. Syncing them between machines and the managed residential proxies are the paid parts; the profiles themselves never are.
16 tools for the model: sessions, profiles, proxies, page control, live view. All under
mcp__antibrow__*, all reachable from Code Mode as ordinary async calls.An Android phone, from the same API. One argument -
deviceType: 'android'- and the agent is a phone: touch points, mobile client hints, phone viewport, phone GPU. See below.Engine-level spoofing. The user agent, platform, screen, fonts, canvas, WebGL and audio are answered by the engine itself. Nothing is injected into the page, so there is no injected script for a detector to find.
A coherent story, not a pile of overrides. Timezone, locale and the reported network profile are derived from the proxy's real exit, because a US IP that reports Shanghai time is a contradiction a page can check in one line.
Passkeys survive. WebAuthn credentials are stored with the profile, not in the machine's keychain, so a passkey registered on one run still signs in on the next - and, with sync on, on another computer.
Watch it work.
start_live_viewstreams the agent's browser to a dashboard, so a long unattended run is something you can look at instead of guess about.Identities from real machines. On a paid plan a profile can be minted from a captured real-device fingerprint rather than a generated one - a whole coherent row off one physical machine, not a field-by-field invention.
Four builds, three operating systems: Windows, macOS, and Linux on both x86_64 and arm64. The same profile runs on any of them.
Portable, and not only to agents. Export a profile as a file and import it on another machine; leave it unsynced and it is still there, in the desktop app, for a human to open and finish by hand. The agent's browser and yours can be the same browser.
The phone
{ "profile": "shop-mobile", "deviceType": "android", "temporary": true }Android profiles are built from whole captured devices - the screen, the GPU report and the client hints agree with each other because they came off the same physical phone, and the plugin picks a row rather than assembling one. Three of them ship inside the package, so a free-tier agent can create an Android profile with no network round trip at all.
The device type is fixed when the profile is created and never drifts afterwards: a profile that was a phone stays that phone. Android needs engine 151 or newer - if none is available the launch fails rather than quietly handing you a desktop browser that claims to be a phone.
Measured
On a macOS host, through a US residential proxy, 2026-08-15, engine 151:
Check | Result |
whoer.net disguise | 90% |
creepjs headless signal | 0% |
creepjs stealth signal | 0% |
creepjs platform hints |
|
Reported platform vs user agent | agree (Win32 / Windows) |
Timezone vs proxy exit | agree (America/Los_Angeles) |
The 10% whoer deducts is WebRTC, which had no route to a STUN server on that
run. Reproduce all of it with tests/smoke - the harness is in this repository,
and it fails loudly rather than printing a number nobody checks.
Install
dsh plugin --profile <name> add dsh-antibrow
export ANTI_DETECT_BROWSER_KEY=<key>
dsh --profile <name>The tools
Sessions |
|
Profiles |
|
Proxies |
|
Page |
|
Live view |
|
launch_browser takes a profile name and creates it on first use. Pass
temporary: true for automation work: those profiles are local-only and stay
out of the desktop app's list, while still persisting on disk.
Before you rely on it
One browser at a time on a free key. The concurrency limit is carried by the license and counted per machine, across every application using the same engine. Fan an agent out into parallel sessions only on a plan whose limit covers them, or the extra launches are refused.
The engine downloads on first launch (190-320 MB depending on platform), into a shared cache directory. The first
launch_browserof a fresh install pays for that; later ones do not.A persistent identity is a real identity. Two agents driving one profile at once is the same mistake as two people sharing one browser: last one to close wins. Give each its own.
Configuration
The bundle inserts one row, mcp-antibrow, configuring the harness's MCP client
against the anti-detect-browser CLI. Override it from your profile's own
cordis.patch.yml by targeting that id - a patch replaces the row's whole
config, so restate every key you keep:
- id: mcp-antibrow
config:
serverName: antibrow
transport: stdio
command: npx
args: ['-y', 'anti-detect-browser@^2.19.1', '--mcp']
env:
ANTI_DETECT_BROWSER_KEY: !!js process.env.MY_OWN_VAR
ANTI_DETECT_BROWSER_CACHE_DIR: /var/lib/antibrowTurn it off without uninstalling:
- id: mcp-antibrow
disabled: trueTo run the SDK from a checkout instead of npm, use the overlay this package ships:
export ANTIBROW_SDK_CLI=<checkout>/dist/cli.js
dsh --profile <name> --patch node_modules/dsh-antibrow/cordis.patch.local.ymlCompatibility
Verified against dsh 0.1.0-rc.6 and anti-detect-browser 2.19.1, 2026-08-15.
DeepSeek Harness is a developer preview and says it will break compatibility;
this line is the claim, and it rots without a re-test.
The SDK version floor is real: 2.19.1 is the first release whose close path ends the browser process instead of only dropping the debugging connection. On an older one a closed session leaves the browser running, which keeps that profile's directory locked - the next launch of it dies before the debugging connection is ready - and holds a concurrency slot for the rest of the run.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceAn MCP server that gives AI agents real browser capabilities including screenshotting, action execution, data extraction, and multi-persona auditing for frontend validation.4536MIT

@meshbrow/mcp-serverofficial
Alicense-qualityAmaintenanceMCP server for Meshbrow that gives AI agents full browser automation capabilities with stealth anti-detection, enabling natural language control of browser sessions, data extraction, and multi-browser fleets.MIT
aethyn-browser-mcpofficial
AlicenseAqualityCmaintenanceAn MCP server enabling AI agents to drive a real browser through residential proxies with per-task geo (country/city) and sticky identity, all chosen at call time.10561MIT- Alicense-qualityBmaintenanceMCP server that gives AI agents a durable identity, persistent browser, memory, and coordination tools, enabling them to maintain state across sessions and act on the live web.3MIT
Related MCP Connectors
An MCP Server that provides identity verification and anti-fraud tools for AI agents via deepidv.
A paid remote MCP for AI agent browser MCP session, built to return verdicts, receipts, usage logs,
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/antibrow/dsh-antibrow'
If you have feedback or need assistance with the MCP directory API, please join our Discord server