MCP server · Audited from source
Chrome Browser MCP server
by hangwin/mcp-chromeMIT licenceAudited 20 Sep 2026 · source 54eb663ae58f
Is it safe? No — BLOCK, grade F (43/100). It exposes 7 tools: 7 read, 0 write and 0 destructive. The audit recorded 36 findings (0 critical, 8 high, 4 medium, 21 low). Maintainer's description: Chrome MCP Server is a Chrome extension-based Model Context Protocol (MCP) server that exposes your Chrome browser functionality to AI assistants like Claude, enabling complex browser automation, content analysis, and semantic search.
Cite
Cite this page
ModelsAtlas. “Chrome Browser MCP server (hangwin/mcp-chrome)”. Retrieved 20 Sep 2026. https://modelsatlas.com/mcp/hangwin/chrome-browser
Why this is BLOCK. The audit found 0 critical and 8 high findings; the most severe is Inventory / provenance at app/chrome-extension/entrypoints/web-editor-v2/core/payload-builder.ts. Each finding is listed below with its file and line.
Why this page is still public. People search for this server by name. Hiding it would leave them with the README's word alone; here they see what the code does. We list it so you can decide, and we do not show connect commands for BLOCK servers.
Trust audit
Audit 0.4.1 · full source read 20 Sep 2026
36 findings, listed below with the file and line each was found on. Grade A needs a sandboxed behavioural run too; this audit read the source only.
What the source does
- FilesystemDeclared10 observations
- NetworkDeclared10 observations
- ShellDeclared10 observations
- DependenciesNot pinnedSome ranges float
- SecretsNone foundNo keys in source
Findings (36)
Sorted by severity · the 25 most severe of 36 are listed
HIGHInventory / provenanceinv.suspicious_name · app/chrome-extension/entrypoints/web-editor-v2/core/payload-builder.ts
payload-builder.ts
- Why
- member named after an attack tool
- Fix
- remove or justify
HIGHCode injectioncode.eval_exec · app/chrome-extension/entrypoints/background/record-replay/actions/handlers/extract.ts:93
const fn = new Function(code);
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · app/chrome-extension/entrypoints/background/record-replay/actions/handlers/script.ts:118
const fn = new Function(...argNames, wrappedCode);
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · app/chrome-extension/entrypoints/background/record-replay/nodes/conditional.ts:18
const fn = new Function(
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · app/chrome-extension/entrypoints/background/record-replay/nodes/conditional.ts:40
const fn = new Function(
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · app/chrome-extension/entrypoints/background/tools/browser/inject-script.ts:201
func: (code) => new Function(code)(),
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHNetwork egressnet.tls_off · app/chrome-extension/inject-scripts/element-marker.js:1696
{ color = CONFIG.COLORS.HOVER, dashed = true, offsetX = 0, offsetY = 0, isVerify = false } = {},- Why
- certificate verification is disabled
- Fix
- leave verification on
HIGHNetwork egressnet.tls_off · app/chrome-extension/inject-scripts/element-marker.js:1737
function drawRects(elements, color = CONFIG.COLORS.HOVER, dashed = true, isVerify = false) {- Why
- certificate verification is disabled
- Fix
- leave verification on
MEDIUMInventory / provenanceinv.binary · app/chrome-extension/workers/simd_math_bg.wasm
simd_math_bg.wasm
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
MEDIUMNetwork egressnet.raw_ip · app/chrome-extension/entrypoints/background/quick-panel/agent-handler.ts:242
const url = `http://127.0.0.1:${port}/agent/sessions/${encodeURIComponent(sessionId)}`;- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMNetwork egressnet.raw_ip · app/chrome-extension/entrypoints/background/quick-panel/agent-handler.ts:324
const sseUrl = `http://127.0.0.1:${request.port}/agent/chat/${encodeURIComponent(request.sessionId)}/stream`;- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMNetwork egressnet.raw_ip · app/chrome-extension/entrypoints/background/quick-panel/agent-handler.ts:423
const url = `http://127.0.0.1:${request.port}/agent/chat/${encodeURIComponent(request.sessionId)}/act`;- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/artifacts.ts:6
import type { NodeId, RunId } from '../../domain/ids';- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/artifacts.ts:7
import type { RRError } from '../../domain/errors';- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/artifacts.ts:8
import { RR_ERROR_CODES, createRRError } from '../../domain/errors';- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/breakpoints.ts:6
import type { NodeId, RunId } from '../../domain/ids';- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/breakpoints.ts:7
import type { Breakpoint, DebuggerState } from '../../domain/debug';- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · README.md:103
"url": "http://127.0.0.1:12306/mcp"
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · README_zh.md:101
"url": "http://127.0.0.1:12306/mcp"
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · app/chrome-extension/entrypoints/background/tools/browser/gif-recorder.ts:1127
const byteChars = atob(base64Data);
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · app/chrome-extension/inject-scripts/network-helper.js:44
const decodedString = atob(base64);
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWSupply chainsupply.unpinned · app/chrome-extension/package.json
@modelcontextprotocol/sdk, @vue-flow/background, @vue-flow/controls, @vue-flow/core, @vue-flow/minimap, @xenova/transformers, date-fns, elkjs
- Why
- 25 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · app/native-server/package.json
@anthropic-ai/claude-agent-sdk, @fastify/cors, @modelcontextprotocol/sdk, better-sqlite3, chalk, chrome-devtools-frontend, commander, drizzle-orm
- Why
- 29 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
Tools it exposes
7 declared in source · 0 destructive
| Tool | What it does | Risk |
|---|---|---|
Auto | Cursor auto-selects the best model | read |
GPT-4.1 | OpenAI model via Cursor | read |
GPT-5.1 | OpenAI high-quality reasoning model | read |
GPT-5.2 | OpenAI flagship reasoning model with extended effort support | read |
Test | A test flow | read |
__MSG_extensionName__ | __MSG_extensionDescription__ | read |
url | Target URL | read |
Safer alternatives
We could not match this server to a job, so we cannot suggest a like-for-like alternative. Read-only servers are the least-privilege place to start.
Audit history
- ✕BLOCK F 43 / 100
Source changed, verdict held ·
54eb663ae58f
README badge
Badges show the current verdict, BLOCK included
A badge cannot be hidden by the maintainer while the verdict is BLOCK. Fix the findings, push, and the re-audit updates it.
Questions about Chrome Browser MCP server
What is the Chrome Browser MCP server?
What tools does Chrome Browser expose?
Is Chrome Browser safe to connect to an agent?
What credentials does Chrome Browser need?
How does Chrome Browser run?
How current is this page?
I already installed Chrome Browser. What should I do?
Can the verdict change?
Sources
- hangwin/mcp-chrome on GitHub — the source we read, its licence, stars and activityObserved · 20 Sep 2026
- ModelsAtlas trust audit — BLOCK verdict for commit 54eb663ae58fObserved · 20 Sep 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What is the Chrome Browser MCP server?
- What tools does Chrome Browser expose?
- Is Chrome Browser safe to connect to an agent?