mcp@2.19.0
VERIFIEDPublisher claims: "Zenrows MCP server: Fetch, Extract, Batch, and Browser Sessions for AI agents" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Server started and answered tools/list.- Tested
- MCP initialize and tools/list · every tool description, for hidden instructions · every file read, file written and host contacted by what ran
- Not tested
- what the tools do when called with real credentials
Before you give it your token
- It will ask for
MCP_ORIGIN_SECRETOAUTH_AUTH_SERVERZENROWS_API_KEYConfiguration, not credentials: CLAUDE_CODE_ENTRYPOINT, CLAUDECODE, CODEX_SANDBOX, CODEX_SANDBOX_NETWORK_DISABLED, CODEX_THREAD_ID, CURSOR_TRACE_ID, MCP_SERVER, PROTECTED_RESOURCE_PATH, TERM_PROGRAM, ZENROWS_BROWSER_URL, ZENROWS_CONFIG_HOME, ZENROWS_FETCH_RETRIES, ZENROWS_JS_RENDER, ZENROWS_PREMIUM_PROXY, ZENROWS_RESPONSE_TYPE- Where it talks to
- zenrows.com (its own)Also spa.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- what the tools do when called with real credentials
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names spa.com as well as its own vendor. The guard injects MCP_ORIGIN_SECRET, OAUTH_AUTH_SERVER, ZENROWS_API_KEY only into requests to zenrows.com (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios) on 2026-11-14 and scored it 83/100 (Verified). It did what it claims and nothing else we could detect: no undeclared network egress, no credential reads, no persistent instruction writes. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 31 s · 2 scenarios · 0 deviationsStatic findings
"build": "tsc && chmod +x dist/index.js",Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts."dev": "node --env-file=.env --import tsx src/index.ts",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."dev:http": "node --env-file=.env --import tsx src/http.ts",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return c.json({ error: "This server does not offer a GET event stream. Use POST." }, 405, { Allow: "POST" });Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// npx clients default ZENROWS_BROWSER_URL to https://mcp.zenrows.com, so theirFix: Pin versions and sources; vendor anything fetched at install time.// account.json is a local file; never echo a link into tool output unless it is oursFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const MCP_SERVER = process.env.MCP_SERVER ?? "https://mcp.zenrows.com";Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.// Another process may have stored a fresh link meanwhile; minting one would kill it.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for @zenrows/mcp@2.19.0 as of 7d ago. This is the package itself, not its dependencies.