# Scrayle Web Scraper

Scrayle.com gives AI agents full web access through 35 tools spanning scraping, browser automation, AI-powered browsing, workflow orchestration, and more.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y smithery mcp add scrayle/web-scraper

# Browse available tools
npx -y smithery tool list scrayle/web-scraper

# Get full schema for a tool
npx -y smithery tool get scrayle/web-scraper scraping.scrape-url

# Call a tool
npx -y smithery tool call scrayle/web-scraper scraping.scrape-url '{}'
```

## Direct MCP Connection

Endpoint: `https://web-scraper--scrayle.run.tools`

**Optional config:**
- `SCRAYLE_API_KEY` (header) — Your Scrayle API key. Get one at https://scrayle.com

## Tools (33)

- `scraping.scrape-url` — Scrape a single web page and extract its content. Returns markdown, HTML, links, and metadata. Use this for extracting …
- `scraping.batch-scrape` — Scrape multiple web pages at once. Ideal for scraping lists of URLs like search results, product listings, or article c…
- `crawl.website` — Crawl a website starting from a URL. Follows links to discover and scrape multiple pages. Use this when you need to ext…
- `crawl.cancel` — Cancel a running crawl job by its ID.
- `browser.start-session` — Launch a cloud browser session and connect to it. Returns a task ID to use with browser-navigate, browser-click, browse…
- `browser.navigate` — Navigate the browser to a URL. Returns the page title and URL after navigation.
- `browser.click` — Click an element on the page by CSS selector. Waits for the element to be visible before clicking.
- `browser.type` — Type text into an input field by CSS selector. Optionally clear the field first and press Enter after typing.
- `browser.screenshot` — Take a screenshot of the current page. Returns a base64 PNG image. Use this to see what the page looks like.
- `browser.get-content` — Get the visible text content of the page or a specific element. Use this to read what is on the page.
- `browser.evaluate` — Execute JavaScript in the browser page. Returns the result. Use for custom interactions, data extraction, or DOM manipu…
- `browser.select` — Select an option from a dropdown/select element by value or label.
- `browser.scroll` — Scroll the page up or down.
- `browser.wait` — Wait for an element to appear on the page, or for the page to finish loading.
- `browser.close-session` — Close an active cloud browser session and disconnect.
- `browser.list-profiles` — List your saved browser profiles. Profiles store cookies, localStorage, IndexedDB, and fingerprint data so sessions sta…
- `browser.create-profile` — Create a new browser profile. The worker materializes a pinned fingerprint (UA + Client Hints + WebGL + screen + hardwa…
- `browser.delete-profile` — Permanently delete a browser profile and its encrypted session-state snapshot (cookies + localStorage + sessionStorage …
- `workflow.create` — Create a new workflow definition. A workflow is a sequence of browser automation steps (navigate, click, type, extract …
- `workflow.list` — List your saved workflow definitions. Returns workflow IDs, names, descriptions, and run counts. Use the workflow ID wi…
- `workflow.run` — Execute a Scrayle workflow by its ID. Workflows are pre-built automation sequences that navigate websites, extract data…
- `workflow.get-status` — Check the status of a running or completed workflow by its task ID.
- `workflow.list-runs` — List your recent workflow runs with their status and timing.
- `workflow.get` — Get the full definition of a workflow including all its nodes, edges, and input parameters. Use this to inspect or revi…
- `workflow.update` — Update an existing workflow definition. You can change the name, description, nodes (steps), or edges (connections). Us…
- `storage.kv.create-namespace` — Create a new key-value store namespace. You need a namespace before you can store keys.
- `storage.kv.get` — Get a value from a key-value store namespace.
- `storage.kv.set` — Set a value in a key-value store namespace. The value is stored as a string - objects will be JSON-stringified.
- `storage.kv.list-namespaces` — List your KV store namespaces.
- `storage.dataset.create` — Create a new dataset. Datasets store structured tabular data from scraping runs.
- `storage.dataset.list` — List your datasets. Datasets store structured tabular data from scraping runs.
- `storage.dataset.get-items` — Get items from a dataset. Returns structured data rows.
- `storage.dataset.add-items` — Add items to a dataset. Each item is a flat JSON object representing one row of data.

```bash
# Get full input/output schema for a tool
npx -y smithery tool get scrayle/web-scraper <tool-name>
```

## Resources

- `docs://scrayle.com/api`

## Prompts (2)

- `scrape-website` (url, data) — Extract data from a website. Provide a URL and optionally what data you want.
- `automate-browser` (task, url) — Perform a browser automation task like filling forms, clicking buttons, or navigating websites.
