DEV Community

Custodia-Admin
Custodia-Admin

Posted on • Originally published at pagebolt.dev

MCP Browser Automation Security: Why Hosted APIs Have a Different Threat Model

MCP Browser Automation Security: Why Hosted APIs Have a Different Threat Model

The MCP ecosystem is moving fast. Thousands of MCP servers are now in production, giving AI agents access to browsers, filesystems, and external APIs. Security researchers have started paying attention — and what they're finding is worth understanding before you ship.

The local execution problem

Most MCP browser automation tools work by running a local process — a headless browser, a Playwright instance, a Puppeteer script — on the same machine as your AI agent. The agent calls the MCP tool, which has access to:

  • Your local filesystem
  • Your browser's cookies and stored credentials
  • Your camera and microphone (in some implementations)
  • Your network, running as your user

When that works as intended, it's fine. When it doesn't — through a prompt injection attack, a malicious MCP server in a multi-server setup, or a vulnerability in the MCP client itself — the blast radius is your entire local environment.

The SkillsIndex security analysis of 10,631 MCP tools found that 5,877 scored 2/5 or below on security. That's not a fringe problem.

The hosted API difference

When an AI agent calls PageBolt's API instead of a local browser tool, the execution environment is completely different:

  • The browser runs in an isolated cloud container, not on your machine
  • The agent passes a URL and parameters — it never gets raw browser access
  • What comes back is a screenshot, a PDF, or structured page data — not a browser session
  • Every call is logged, rate-limited, and scoped to what the API allows

There's no local attack surface. A compromised prompt can't instruct PageBolt to read your ~/.ssh/keys or access your Slack cookies — those don't exist in PageBolt's execution context.

What this looks like in practice

Self-hosted MCP browser tool:

Agent → MCP server (local process) → Chromium (local, your user) → Internet
                                   ↓
                              Local filesystem, cookies, credentials
Enter fullscreen mode Exit fullscreen mode

Hosted API (PageBolt):

Agent → HTTPS API call → Isolated cloud container → Internet
                       ↓
                  Screenshot / PDF / JSON response only
Enter fullscreen mode Exit fullscreen mode

The agent gets the same output. The attack surface is completely different.

The audit trail problem

There's a second issue beyond access: verifiability.

When an agent runs a local browser automation script, there's no record of what actually happened. The agent reports success. Maybe it succeeded. Maybe it injected something into a form. Maybe it navigated somewhere it shouldn't have.

With a hosted API, every call is logged server-side. You can see exactly what URL was captured, at what time, with what parameters. For compliance workflows, customer-facing automation, or any context where an agent's browser actions need to be auditable, that log is the difference between "our agent did X" and "here is proof our agent did X."

Not a silver bullet

Hosted APIs introduce their own considerations — you're trusting the API provider's infrastructure, their uptime, their data handling. Those are real tradeoffs worth evaluating.

But for teams deploying AI agents in production, the choice between "agent has local browser access" and "agent calls an API that returns controlled output" is a meaningful security decision. The threat models are genuinely different.

Getting started

PageBolt's MCP server (npm install -g pagebolt-mcp) gives Claude Desktop, Cursor, and any MCP-compatible client access to screenshots, PDFs, page inspection, and narrated video recording — all running in isolated cloud infrastructure, all logged.

Free tier: 100 requests/month, no credit card required.

npm install -g pagebolt-mcp
Enter fullscreen mode Exit fullscreen mode

Claude Desktop config:

{
  "mcpServers": {
    "pagebolt": {
      "command": "pagebolt-mcp",
      "env": { "PAGEBOLT_API_KEY": "your-key-here" }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

The security properties come for free with the hosted model. No configuration required.

Top comments (0)