DEV Community

Custodia-Admin
Custodia-Admin

Posted on • Originally published at pagebolt.dev

How to Add Visual Verification to Your Cursor Agent Workflows with PageBolt

How to Add Visual Verification to Your Cursor Agent Workflows with PageBolt

Cursor's Browser Tools MCP is built in. Your AI agents can automate browsers natively — fill forms, click buttons, navigate pages. They run autonomously.

You have zero visibility into what actually happened.

This is the verification gap: Cursor agents can automate browsers, but you can't prove what they did. You see the output. You don't see the proof.

PageBolt's MCP server fills this gap. Add visual verification to your Cursor agent workflows with screenshots and video recordings of every action.

Why Visual Verification Matters for Cursor Agents

Cursor agents operate invisibly:

  • Agent decides: "Fill out this form"
  • Agent executes: Form gets filled
  • You see: "Form completed"
  • You don't see: What the agent actually filled in, whether the form accepted the submission, or if validation errors occurred

For non-critical tasks, invisibility is fine. For production workflows (data entry, approval chains, integration testing), you need proof.

Step 1 — Install PageBolt MCP in Cursor

PageBolt's MCP server runs as a local process that Cursor calls. Setup takes 5 minutes.

Option A: Direct Installation (Recommended)

# Install pagebolt-mcp globally
npm install -g @pagebolt/mcp-server

# Create Cursor config directory (if it doesn't exist)
mkdir -p ~/.cursor/extensions/mcp

# Create pagebolt-mcp config
cat > ~/.cursor/extensions/mcp/pagebolt.json << 'EOF'
{
  "name": "pagebolt",
  "type": "stdio",
  "command": "pagebolt-mcp-server",
  "env": {
    "PAGEBOLT_API_KEY": "YOUR_API_KEY_HERE"
  }
}
EOF
Enter fullscreen mode Exit fullscreen mode

Option B: Docker (For Production Agents)

# Run as Docker container
docker run -d \
  -e PAGEBOLT_API_KEY=sk_live_xxxxx \
  -p 3000:3000 \
  pagebolt/mcp-server

# Update Cursor config to point to Docker
cat > ~/.cursor/extensions/mcp/pagebolt.json << 'EOF'
{
  "name": "pagebolt",
  "type": "http",
  "url": "http://localhost:3000",
  "env": {
    "PAGEBOLT_API_KEY": "sk_live_xxxxx"
  }
}
EOF
Enter fullscreen mode Exit fullscreen mode

Get your API key: Create a free PageBolt account — 100 requests/month to start.

Restart Cursor. PageBolt MCP is now available to your agents.

Step 2 — Capture Screenshots After Agent Actions

Every time your Cursor agent takes an action, capture a screenshot. This creates a visual audit trail.

Example Agent Workflow:

Your agent is filling out a customer form:

# Agent workflow: Fill customer form and submit

# Step 1: Navigate to form
result = agent.call_tool("browser_tools", "navigate", {
    "url": "https://app.example.com/customer-form"
})

# Step 2: Capture screenshot BEFORE filling
pagebolt.screenshot({
    "url": "https://app.example.com/customer-form",
    "label": "form_initial_state"
})

# Step 3: Agent fills form
agent.call_tool("browser_tools", "fill_form", {
    "fields": {
        "customer_name": "John Doe",
        "email": "john@example.com",
        "phone": "+1-555-0123"
    }
})

# Step 4: Capture screenshot AFTER filling
pagebolt.screenshot({
    "url": "https://app.example.com/customer-form",
    "label": "form_after_fill"
})

# Step 5: Submit form
agent.call_tool("browser_tools", "click", {
    "selector": "button[type='submit']"
})

# Step 6: Capture screenshot AFTER submission
pagebolt.screenshot({
    "url": "https://app.example.com/customer-form",
    "label": "form_after_submit"
})

# Results: Three screenshots showing exactly what happened
# → form_initial_state.png (empty form)
# → form_after_fill.png (filled with data)
# → form_after_submit.png (confirmation page or error)
Enter fullscreen mode Exit fullscreen mode

What You Get:

Three timestamped screenshots proving:

  • The form was in the expected state initially
  • All fields were filled correctly
  • The submission succeeded (or failed with a specific error)

Step 3 — Record Full Session Replay

For complex multi-step workflows, capture the entire session as a video. This shows the complete decision tree and actions.

# Record full agent session as video

pagebolt.record_video({
    "url": "https://app.example.com/workflow",
    "steps": [
        {"action": "navigate", "url": "https://app.example.com/dashboard"},
        {"action": "click", "selector": "button[data-action='new-order']"},
        {"action": "wait", "ms": 1000},
        {"action": "fill", "selector": "input[name='order_id']", "value": "ORD-12345"},
        {"action": "screenshot"},
        {"action": "click", "selector": "button[type='submit']"},
        {"action": "wait", "ms": 2000},
        {"action": "screenshot"}
    ],
    "output": "workflow_session.mp4"
})

# Result: workflow_session.mp4
# Shows the entire workflow with cursor highlighting and step annotations
Enter fullscreen mode Exit fullscreen mode

When to Use Full Session Recording:

  • Approval workflows (show decision chain visually)
  • Data extraction flows (prove data was correctly extracted)
  • Integration testing (verify interactions with external systems)
  • Compliance audits (provide forensic evidence of agent actions)

Real Example: Customer Data Extraction Workflow

Your agent extracts customer data from a form, transforms it, and submits to a database.

# Agent workflow: Extract → Transform → Submit

# 1. Navigate to source form
result = agent.navigate("https://source-system.example.com/customer")

# 2. Capture initial state
pagebolt.screenshot({
    "url": "https://source-system.example.com/customer",
    "label": "step_1_source_data"
})

# 3. Agent extracts data
extracted_data = agent.extract_text({
    "selectors": {
        "name": ".customer-name",
        "email": ".customer-email",
        "phone": ".customer-phone"
    }
})

# 4. Navigate to destination system
agent.navigate("https://destination-system.example.com/import")

# 5. Capture form before submission
pagebolt.screenshot({
    "url": "https://destination-system.example.com/import",
    "label": "step_2_before_submit"
})

# 6. Agent submits transformed data
agent.fill_form({
    "name": extracted_data["name"],
    "email": extracted_data["email"],
    "phone": extracted_data["phone"]
})
agent.click("button[type='submit']")

# 7. Capture confirmation
pagebolt.screenshot({
    "url": "https://destination-system.example.com/import",
    "label": "step_3_confirmation"
})

# 8. Record the entire session
pagebolt.record_video({
    "url": "https://source-system.example.com/customer",
    "output": "extraction_workflow.mp4"
})
Enter fullscreen mode Exit fullscreen mode

What This Proves:

Screenshots 1, 2, 3 show:

  • What data was extracted
  • What data was submitted
  • That the submission succeeded

Video shows:

  • The exact sequence of agent actions
  • How long each step took
  • Any errors or edge cases the agent encountered

Integration with Cursor's Native Workflows

Cursor + Browser Tools MCP + PageBolt MCP = Complete Agent Audit Trail

Cursor IDE
  ↓
Browser Tools MCP (native) ← Agents automate browsers
  ↓
PageBolt MCP ← Visual verification layer
  ↓
Screenshots + Video ← Proof of what happened
Enter fullscreen mode Exit fullscreen mode

Your agents remain fast. They operate autonomously. But now you have complete visual proof of their actions.

When You Need This

  • QA teams — Validate agent behavior in testing pipelines
  • Compliance teams — Provide audit evidence of automated actions
  • Product teams — Debug agent failures with visual logs
  • Integration testing — Prove integrations work end-to-end
  • Data teams — Verify data extraction accuracy visually

Next Steps

  1. Install PageBolt MCP in your Cursor setup (5 minutes)
  2. Add one screenshot capture to your next agent workflow
  3. Compare before/after screenshots to verify behavior
  4. Scale up — Add screenshots to all critical workflows

You'll immediately see the value: visual proof of what your agents actually did.

Pricing

Free tier: 100 requests/month — enough for one agent workflow.

Paid plans: $29–$299/month for production agent monitoring.

Start free


All screenshots and recordings are encrypted and stored for 30 days. Delete anytime. Your agent actions remain private and auditable.

Top comments (0)