# Hyperbrowser MCP

> Hyperbrowser provides cloud browser infrastructure for your AI agents. It lets you manage remote sessions and scrape dynamic web pages from a natural language prompt. Use it to extract structured data, execute custom JavaScript on live sites, or capture full-page screenshots without managing any local browser setup.

## Overview
- **Category:** superpower
- **Price:** Free
- **Tags:** headless-browser, data-extraction, cloud-infrastructure, web-automation, proxy-support, ai-scraping

## Description

Your agent needs to interact with the real internet—the kind that runs complex JavaScript and loads content dynamically. This MCP gives your AI client full control over cloud web infrastructure. You don't just get raw HTML; you can tell it what data to find, give it a JSON schema, and it returns clean, structured results. It handles things like proxies, stealth mode, and CAPTCHAs automatically in the background. Because this MCP is hosted on Vinkius, you connect your preferred AI client once and gain access to all these web automation tools. Need to test how a website looks? Capture a full-page screenshot. Want to check if a button works? Run custom JavaScript directly against an active session. It's basically giving your agent the ability to sit at a powerful remote workstation and browse the web, exactly when you need it.

## Tools

### page_content
Synchronously retrieves the raw HTML content from a specified URL for immediate processing.

### create_session
Starts a new remote browsing session for your agent, allowing you to set proxies or stealth settings.

### extract_data
Uses AI intelligence to pull specific structured data (like names and prices) from a rendered webpage URL.

### get_scrape_job
Checks the status and retrieves the final results of an asynchronous web scraping job you started earlier.

### get_session
Retrieves current details about a specific session, including its duration and overall health status.

### list_sessions
Provides a list of all active or past browsing sessions, letting you filter by status.

### run_script
Executes custom JavaScript directly inside an active browser session and returns the evaluation result.

### start_scrape
Initiates a background scraping job for a target URL, returning a job ID you can use to poll for completion.

### page_screenshot
Takes and returns metadata or a temporary URL for a full-page screenshot of any rendered web page.

### stop_session
Terminates an active browsing session immediately, freeing up resources.

## Prompt Examples

**Prompt:** 
```
Extract the latest pricing and features from 'https://example.com/pricing'
```

**Response:** 
```
Processing extraction… I've successfully extracted the following tiers: 1) Free ($0/mo) - Basic features, 2) Pro ($29/mo) - Advanced analytics, 3) Enterprise (Contact sales) - Custom limits. Would you like the full JSON data?
```

**Prompt:** 
```
Take a full-page screenshot of 'https://news.ycombinator.com'
```

**Response:** 
```
Rendering page and capturing screenshot… Done. You can access the full-page capture of Hacker News at the following temporary cloud URL: [screenshot-url]. The image metadata shows a resolution of 1920x4500.
```

**Prompt:** 
```
List all my active Hyperbrowser sessions
```

**Response:** 
```
I've found 2 active browser sessions: 1) Session ID 'sb-123' (Running for 12 mins, US-East Proxy), 2) Session ID 'sb-456' (Running for 2 mins, Stealth Mode). Would you like to terminate either of these?
```

## Capabilities

### Extract structured data from websites
Your agent uses natural language prompts and optional JSON schemas to pull specific product details or pricing off any live URL.

### Manage headless browsing sessions
You can create, list, and terminate remote browser connections, specifying proxies or stealth modes for the job.

### Execute custom JavaScript in real time
The agent runs arbitrary JS code inside an active session to interact with page elements or evaluate live page states.

### Capture full web pages visually
It takes accurate, high-resolution screenshots of any rendered URL for documentation or visual auditing.

### Scrape asynchronous content jobs
You trigger background scraping tasks that handle dynamic loading and retries before retrieving the final HTML payload.

## Use Cases

### Tracking dynamic pricing changes
A competitor's site loads prices only after a user clicks 'View Details.' Your agent first uses `create_session` with stealth mode, then executes JavaScript via `run_script` to click the button. Finally, it calls `extract_data` on the resulting page view.

### Checking for visual layout bugs
The QA team suspects a banner ad is overlapping content on mobile. Instead of manually testing across devices, they run an agent that uses `page_screenshot` with specific viewport dimensions to capture and compare the state.

### Collecting structured data from multiple pages
A research task requires grabbing product names and specs from 50 different category URLs. The agent runs a bulk scrape using `start_scrape` for all links, then uses `get_scrape_job` to collect the resulting payloads before running `extract_data` on the full set.

### Validating API endpoints through UI
The team needs to confirm that a specific form submission works correctly. They use an agent to navigate to the page, then call `run_script` to simulate the user interaction and check the returned value.

## Benefits

- You don't need to worry about managing local headless browsers. The system handles all the infrastructure, letting you focus purely on the logic of extraction or scripting.
- Need a complex multi-step data pull? You can chain tools: use `start_scrape` first, then monitor completion with `get_scrape_job`, and finally pass the results to `extract_data`. It handles state changes automatically.
- The ability to run custom JS via `run_script` means you aren't limited by what standard scrapers can see. You can interact with elements that require clicks or calculations before extraction.
- When auditing web apps, calling `page_screenshot` is a huge time saver. Instead of writing complex visual regression tests, your agent just captures the state and gives you the URL.
- Forget boilerplate setup. With this MCP on Vinkius, you connect your preferred AI client once and immediately gain full access to all these web automation tools.

## How It Works

The bottom line is that you treat web interaction like a managed API call, not messy browser automation.

1. First, use `create_session` to establish a new remote browser connection. You can configure proxies or specify stealth settings here.
2. Next, you either kick off an asynchronous job using `start_scrape` for large jobs, or run immediate code via `run_script` against the active session.
3. Finally, retrieve results by polling the status with `get_scrape_job`, or pulling raw data instantly using `page_content`.

## Frequently Asked Questions

**How do I scrape data from a page that requires login? (Using `start_scrape` or `create_session`?)**
You must first use `create_session` to establish a connection, and then execute the necessary authentication steps using `run_script`. You can then start your scraping job.

**Is `page_content` better than `extract_data`?**
`page_content` gives you the entire raw HTML payload, which is useful for auditing. But if you just want names and prices, use `extract_data`. It's smarter.

**What should I do with my sessions when I’m done? (Using `stop_session`?)**
You always call `stop_session`. This terminates the connection and frees up resources, preventing orphaned or zombie sessions that cost money.

**Can I run a script to check if an element exists? (Using `run_script`?)**
Yes. You can pass JavaScript code to `run_script` that checks for the presence of elements or calculates values on the fly, letting you validate page state.

**When I use `start_scrape`, and the job status isn't 'completed', what should I check using `get_scrape_job`?**
You need to examine the response payload for error codes or metadata. If the job failed, the result will contain a clear failure reason—it could be rate limiting, an invalid URL, or a CAPTCHA block. You can then adjust your configuration and resubmit.

**When creating a session, how does `create_session` handle advanced proxy configurations and stealth modes?**
You pass all specific details—like rotation groups or desired browser versions—in the optional JSON config. This lets you manage complex network requirements in one call, ensuring your agent avoids detection and maintains connection stability.

**If I execute custom JS using `run_script`, can I then use `page_content` to capture the updated DOM structure?**
Yes. You run the script first to manipulate the page state, and immediately follow up by calling `page_content`. This guarantees that the raw HTML payload reflects the changes you just made, giving you a highly accurate snapshot of the current web element tree.

**How do I monitor session health across multiple connections using `list_sessions`?**
The `list_sessions` tool provides an overview of all active or past sessions. By filtering the status, you can quickly identify which sessions are running correctly and which ones might be stalled or consuming unnecessary resources.

**Can my agent extract specific product data from an e-commerce site?**
Yes. Use the `extract_data` tool and provide the target URL along with a prompt like 'Extract product name, price, and customer rating'. Hyperbrowser's LLM will render the page and return clean JSON data according to your request.

**How do I handle websites that require dynamic JavaScript loading?**
Hyperbrowser is built for dynamic content. Tools like `page_content` and `start_scrape` wait for JavaScript to settle before returning results, ensuring your agent sees the fully rendered version of any web application.

**Can I run custom automation scripts in the cloud?**
Absolutely. The `run_script` tool allows you to execute JavaScript strings inside an active browser session. This is perfect for simulating complex user interactions or extracting data that requires custom logic.