DEV Community

Custodia-Admin
Custodia-Admin

Posted on • Originally published at pagebolt.dev

Cursor Automations Are Always-On. Who's Watching What They Do?

Cursor just shipped Automations — always-on background agents that run continuously, call MCP servers, and take actions on your behalf while you sleep.

That's powerful. It's also a black box.

Your Automation ran at 3am. It called your browser MCP. It did something. The logs say it completed. But what did it actually do?

If your answer is "I trust it," that's fine — until it isn't. One silent failure, one incorrect form submission, one page that loaded wrong, and you're debugging a ghost.

Visual audit trails solve this.

What Cursor Automations Actually Do

Cursor Automations are persistent background agents that:

  • Run on a schedule or trigger
  • Call MCP tools natively (including browser MCPs)
  • Take multi-step actions autonomously
  • Complete silently — no interactive session

The problem: MCP tool calls are logged as text. browser_action: click #submit tells you what was attempted. It doesn't tell you what the page actually showed when that happened.

Adding Visual Proof with PageBolt MCP

PageBolt's MCP server gives your Cursor Automations a screenshot after every step — visual proof of exactly what the agent saw and did.

Install it:

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

Add to your Cursor MCP config (~/.cursor/mcp.json):

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

Now your Automation has access to take_screenshot, generate_pdf, inspect_page, and run_sequence as native tools.

A Real Automation Pattern

Here's a Cursor Automation that fills a form and captures visual proof:

// Cursor Automation: submit-and-verify.js
// Runs every hour, submits report form, screenshots result

const steps = [
  { action: "navigate", url: "https://internal.app/reports/submit" },
  { action: "fill", selector: "#report-data", value: getLatestData() },
  { action: "click", selector: "#submit-btn" },
  { action: "wait", ms: 2000 },
  // PageBolt MCP captures what actually happened
];
Enter fullscreen mode Exit fullscreen mode

When your Automation calls PageBolt's run_sequence tool with these steps, it returns a screenshot of the final state. You see exactly what the agent saw: success message, error state, or an unexpected page.

What Visual Proof Catches

Without screenshots, these failures are silent:

  • Form validation errors — agent thinks it submitted, server rejected it
  • Session expiry — agent hits a login wall mid-workflow
  • UI changes — the button moved, selector didn't fire
  • Rate limits — page returned a 429, agent marked it "done"
  • Data corruption — wrong field populated, wrong value entered

Each of these shows up immediately in a screenshot. None of them appear in text logs.

The Audit Trail Pattern

For compliance-sensitive Automations, store screenshots with timestamps:

import requests
import datetime

def run_automation_with_audit(steps, audit_dir):
    """Run browser automation steps and save visual proof."""

    response = requests.post(
        "https://api.pagebolt.dev/sequence",
        headers={"Authorization": f"Bearer {PAGEBOLT_API_KEY}"},
        json={
            "steps": steps,
            "screenshot": True,
            "format": "png"
        }
    )

    result = response.json()
    timestamp = datetime.datetime.utcnow().isoformat()

    # Save screenshot as audit evidence
    screenshot_path = f"{audit_dir}/{timestamp}-automation-result.png"
    with open(screenshot_path, "wb") as f:
        f.write(result["screenshot"])

    return {
        "completed_at": timestamp,
        "screenshot": screenshot_path,
        "success": result.get("success", False)
    }
Enter fullscreen mode Exit fullscreen mode

Every Automation run now produces a dated screenshot. If something goes wrong, you have a visual record of exactly what the agent saw.

Why This Matters Now

Cursor Automations are early. Most teams are running them without any audit layer because there wasn't one.

As these agents do more — submitting forms, making API calls, managing files, triggering workflows — the cost of a silent failure scales up. A missed form submission is annoying. A missed compliance report is a problem.

The time to add visual proof is before you need it.

Getting Started

  1. Get a free PageBolt API key — 100 requests/month, no credit card
  2. Add pagebolt-mcp to your Cursor MCP config
  3. Your Automations can now call take_screenshot after any action

The MCP server works natively in Cursor — no code changes to existing Automations, just a new tool available in the context.


PageBolt is a browser automation and screenshot API with a native MCP server. Use code LAUNCH25 for 25% off your first month.

Top comments (0)