MCP tools
The web_access_fetch, web_access_search, and web_access_sitemap tools, with parameters.
Both the remote and self-hosted servers expose the same three tools. Fetch
and search are read-only; web_access_sitemap creates and manages billed crawl jobs.
web_access_fetch
Fetch any webpage and get clean, LLM-ready Markdown back. Handles proxy rotation, anti-bot protection, CAPTCHAs, and
JavaScript-rendered content automatically. The common case is passing only a url.
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | — | Required. The full http/https URL to fetch. |
format | markdown raw json | markdown | markdown for clean text, raw for the verbatim body, json for a { statusCode, headers, data } envelope. |
method | GET POST PUT PATCH | GET | Use a write method to send a body. |
body | string | object | — | Request body for non-GET. Objects are JSON-stringified. |
headers | object | — | Custom request headers (max 50). Not supported with executeJS. |
countryCode | string(2) | — | ISO 3166-1 alpha-2 country for geolocated proxy routing. |
executeJS | boolean | false | Render JavaScript for SPAs. Cannot be combined with headers. |
solveCaptcha | boolean | true | Set false to fail fast instead of solving challenges. |
Returns: Markdown by default; the verbatim body or a JSON envelope when format is set accordingly.
{ "url": "https://example.com/article" }Tool surface vs. the full API
The MCP web_access_fetch tool exposes the most common fetch options. Advanced /fetch features — structured
extraction (jsonSchema), screenshots & browser
actions, and requireWSS — are available on the HTTP API
directly.
web_access_search
Search the web and return structured organic results. Bypasses anti-bot protection on search engines.
| Parameter | Type | Description |
|---|---|---|
query | string | Required. The search query. Be specific for best results. |
Returns: the organic results, each with position, title, URL, snippet, and display URL.
{ "query": "latest developments in AI agents 2026" }web_access_sitemap
Crawl a whole site and map its URLs. Starting from one URL the crawler follows same-domain links breadth-first
(optionally seeded from the site's /sitemap.xml) and records every URL it reaches with fetch status, depth, and
parent. Crawls run asynchronously as sitemap jobs: one tool drives the whole
quote → approve → poll → read lifecycle through its action parameter, and nothing is crawled or billed until the
quote is explicitly approved.
action | Requires | Description |
|---|---|---|
submit | url | Quote a crawl. Returns jobId, estimatedPages, and estimatedCostUsd with status awaiting_approval. Quotes expire after one hour. |
approve | jobId | Start the quoted crawl — the billing-consent step. Fails with 402 on insufficient balance; retry on a 409 partial_state. |
status | jobId | Poll progress: awaiting_approval → running (pending / processed counts) → completed | failed | canceled | token_cap_exceeded. |
results | jobId | Page through discovered URLs. total tells you when to stop paging. |
cancel | jobId | Stop a non-terminal job. Pages already fetched stay billed and readable. |
list | — | Your organization's recent crawl jobs, most recent first. |
| Parameter | Type | Used by | Description |
|---|---|---|---|
action | enum | — | Required. One of the six actions above. |
url | string (URL) | submit | Required for submit. Starting URL. The crawl stays on this hostname. |
maxPages | integer | submit | Maximum pages to crawl (1–10,000, default 10). Each fetched page is billed. |
maxDepth | integer | submit | Maximum link depth from the starting URL (1–100, default 2). |
pathPrefix | string | submit | Only crawl URLs whose path starts with this prefix. |
budgetUsd | number | submit | Spend cap in USD (min 0.0001). Defaults to the quote; the crawl stops with token_cap_exceeded before exceeding it. |
useSitemap | boolean | submit | Also seed the crawl from the site's root /sitemap.xml (one extra billed page; default false). |
jobId | string | job-scoped actions | The id returned by submit. |
limit | integer | results / list | Page size — results default 1000 (max 5,000); list default 20 (max 100). |
offset | integer | results / list | Number of entries to skip. |
Returns: the JSON envelope for the chosen action (quote, status, URL page, or job list) alongside a one-line summary.
{ "action": "submit", "url": "https://example.com", "maxPages": 200, "maxDepth": 3 }Same jobs as the HTTP API
The tool fronts the sitemap endpoints directly — response shapes, statuses, billing,
and result retention (per-URL discoveredUrls is only available while results are live) all match. See the Sitemap
crawl guide for a walkthrough.
Recommended workflow
- Call
web_access_searchto find relevant pages for a query. - Call
web_access_fetchon the most relevant URLs to pull their full content.
To cover a whole site instead of single pages, run web_access_sitemap first (submit → approve → poll → results) to
build the URL list, then web_access_fetch the pages you need.