MCP server that drives your real Chrome/Edge/Opera browser through a Chrome extension and DevTools Protocol, preserving logins and session state, and can also perform OS-level mouse and keyboard input behind approval.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
0xlinn
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
AGENT_BROWSER_TMWD_PORT18765 WebSocket port. HTTP uses PORT+1, and PORT+2 is a lock socket that keeps exactly one bridge hosting.AGENT_BROWSER_TMWD_HOST127.0.0.1 Bridge bind address.AGENT_BROWSER_MODElab lab prioritizes continuous automation and reuses session approvals; safe prompts for every physical-input/site-allow action. set_automation_profile changes only the current MCP process.AGENT_BROWSER_AUTO_BEFOREUNLOAD_HOSTSshell.,ttyd,code-server,jupyter,vscode-web In lab, ordinary open_url accepts beforeunload on matching current hosts. intent_leave=false always preserves the page.AGENT_BROWSER_NO_SPAWNunset Set to 1 to stop the MCP server from auto-starting the bridge. Use it when you run the bridge yourself.AGENT_BROWSER_PREFERRED_BROWSERunset chrome, edge, or opera. Which browser wins when several are connected and no tab is specified.AGENT_BROWSER_WS_ALLOWED_ORIGINSAGENT_BROWSER_WS_ALLOW_NO_ORIGINTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
54/54 tools missing one or more hints — get_automation_profile (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); set_automation_profile (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_setup_status (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +51 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Destructive tools are labelled
1 tool perform destructive updates without destructiveHint — save_pdf deletes at line 2494 (temporary.unlink(missing_ok=True))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
No eval / new Function
1 eval() or new Function() call — dynamic code execution
Replace eval / Function with explicit parsing or safer alternatives.
Shell command execution
1 child_process/subprocess call in production code — runs shell commands (src/agent_browser_mcp/server.py:2074)
Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/0xlinn-agent-browser-mcp-1ameic)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check