agent-browser MCP server
Commit Oct 14, 2026Enables AI clients to control a real Chromium browser to navigate websites, fill forms, click elements, and capture screenshots.
Also known as codeChap/mcp-server-agent-browser, mcp-server-agent-browser
- Stars
- 1
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.1.0
- Last commit
- Oct 14, 2026
- License
- —
What is agent-browser MCP?
agent-browser enables AI clients to control a real Chromium browser to navigate websites, fill forms, click elements, and capture screenshots.
Summary generated from the project's README
About agent-browser MCP server
Driving a real Chromium browser from within an AI client allows developers to automate complex web interactions that simple document fetching cannot handle. This MCP server wraps the agent-browser tool to provide capabilities like navigating websites, filling out forms, clicking specific elements, and capturing screenshots or accessibility tree snapshots. It is designed for users who need an agent to interact with dynamic web applications rather than just reading static text.
Setup requires installing the agent-browser CLI via cargo and configuring the MCP client using a stdio command. Users can manage sessions through a configuration file to enable persistence, which saves cookies and localStorage to ensure logins remain active across restarts. The server supports both headless and headed modes, allowing you to see the browser window if configured. It includes specialized tools like browser_doctor for troubleshooting and browser_get_text for performing regex searches over page content.
What you can do with it
- 1Automating web form submissionsAn AI agent can navigate to a specific URL and enter data into input fields using the browser_fill tool.
- 2Visual verification of web pagesYou can instruct an AI to take a picture of a specific part of a website to confirm a visual change.
- 3Extracting specific text patternsA developer can use regex to find specific information within the text of a webpage.
- 4Maintaining authenticated web sessionsThe server can save login states so that the AI does not have to re-authenticate every time it starts a new task.
Written from the project's README. Every use case is checked against a quote from it.
Automated checks
Ran Nov 15, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachablecodechap/mcp-server-agent-browser is public and reachablegithub.com/codechap/mcp-server-agent-browser ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)No licenseFinding
- Commit or release in the last yearLast commit or release 2026-10-14github.com/codechap/mcp-server-agent-browser ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubmcp-server-agent-browser
Status: Beta — CLI wrapper is covered by unit tests and a fake-browser stdio smoke test. Cookie restore across a real Chromium restart is still a manual check.
Let LLMs drive a real browser. This MCP server wraps agent-browser (Vercel Labs) so any MCP client can navigate, fill forms, click, snapshot the accessibility tree, and screenshot.
It is not Grok's web_search / open_page. Those fetch documents. This one runs Chromium. Use search to find a URL, then browser_navigate.
Prerequisites
cargo install agent-browser
agent-browser install
Call browser_doctor if anything is missing.
Build
cargo build --release
Binary: target/release/mcp-server-agent-browser
cargo test
./tests/test-stdio.sh
Real Chromium login-restore is not in CI. After a headed login, restart the MCP process and confirm the next browser_navigate is still logged in.
Configuration
MCP client (stdio):
{
"mcpServers": {
"agent-browser": {
"command": "/path/to/mcp-server-agent-browser"
}
}
}
Optional TOML at ~/.config/mcp-server-agent-browser/config.toml (see config.example.toml). Missing file uses defaults. Override the path with MCP_AGENT_BROWSER_CONFIG.
| Setting | Default | Meaning |
|---|---|---|
headed |
false |
Show a window. Launch-time only; browser_close first if a headless daemon is already up. Also AGENT_BROWSER_HEADED=1. |
persist |
true |
--session-name <namespace>-<session_id> (default session key default). There's no --namespace CLI flag — namespace is folded into that name instead. |
keep_daemon |
false |
If false, MCP exit runs close so restore state is saved and Chrome does not leak. |
namespace |
mcp-server |
Prefix of the --session-name restore key, isolating this MCP's restore files from a human using the CLI directly. |
command_timeout_secs |
120 |
Wrapper timeout. Playwright's own 25s action timeout is left alone (CLI IPC is ~30s). |
idle_timeout |
1h |
Sets AGENT_BROWSER_IDLE_TIMEOUT_MS (env only — there's no --idle-timeout CLI flag). Use "0" with keep_daemon = true. |
download_dir |
~/Downloads |
--download-path. ~ is expanded. |
profile |
unset | Optional persistent Chrome user-data dir. Not your daily Chrome profile. |
encryption_key_file |
unset | Sets AGENT_BROWSER_ENCRYPTION_KEY. Restore files are credentials; plaintext unless this is set. |
AGENT_BROWSER_PATH |
agent-browser |
CLI binary. |
allowed_domains is optional. Localhost is allowed unless you set a list that excludes it.
What it can do
Same interaction set as before (navigate, click, type, snapshot, screenshot, cookies, eval, CDP, sessions), plus:
browser_doctor— CLI, config, persist, headed/DISPLAY, daemon guess. Does not launch Chrome.browser_get_textpattern— regex over page text with two lines of context.browser_wait—load/url/textas well as a selector.
Typical loop:
browser_navigatebrowser_snapshot(-ifor interactive)browser_click/browser_fillwith@refsbrowser_screenshotif you need pixels
Persistence
With persist = true (default), each session saves cookies and localStorage on close and on the CLI's autosave interval. State lives under ~/.agent-browser/, namespaced to mcp-server. Isolated session_ids do not share a restore key.
Headed login once, browser_close or exit the MCP, start again. The next navigate should restore that session.
A killed MCP process may leave the daemon running. browser_doctor reports that. Idle shutdown still saves if persist is on.
Limitations
- Chromium via
agent-browser(Playwright). No search. - Headed is ignored until the existing daemon is closed.
- Snap Chromium on Ubuntu can fail to advertise its DevTools port; prefer
agent-browser install's browser orexecutable_path. - Writes (screenshot, pdf, download) must be relative, under
/tmp, or underdownload_dir. - Element screenshots take a CSS selector or
@ref, plus a trailing:has-text("..."). The selector is checked first, so a miss is an error, not a silent full-viewport shot. Not combinable withfull_page. - 25s Playwright action timeout is an upstream CLI limit, not this wrapper.
License
MIT
agent-browser MCP questions
How does this differ from web search tools?
Unlike tools that simply fetch documents, this server runs a real Chromium instance to interact with web pages.
Can the browser maintain login sessions?
Yes, by default it saves cookies and localStorage to allow session restoration across restarts.
How can I see the browser window while it works?
You can enable headed mode by setting the headed configuration to true.
What happens if the MCP process is killed unexpectedly?
A killed process might leave the browser daemon running, which can be checked using the browser_doctor tool.