String Web Access API
MCP Server

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.

ParameterTypeDefaultDescription
urlstringRequired. The full http/https URL to fetch.
formatmarkdown raw jsonmarkdownmarkdown for clean text, raw for the verbatim body, json for a { statusCode, headers, data } envelope.
methodGET POST PUT PATCHGETUse a write method to send a body.
bodystring | objectRequest body for non-GET. Objects are JSON-stringified.
headersobjectCustom request headers (max 50). Not supported with executeJS.
countryCodestring(2)ISO 3166-1 alpha-2 country for geolocated proxy routing.
executeJSbooleanfalseRender JavaScript for SPAs. Cannot be combined with headers.
solveCaptchabooleantrueSet false to fail fast instead of solving challenges.

Returns: Markdown by default; the verbatim body or a JSON envelope when format is set accordingly.

Example call
{ "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.

Search the web and return structured organic results. Bypasses anti-bot protection on search engines.

ParameterTypeDescription
querystringRequired. The search query. Be specific for best results.

Returns: the organic results, each with position, title, URL, snippet, and display URL.

Example call
{ "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.

actionRequiresDescription
submiturlQuote a crawl. Returns jobId, estimatedPages, and estimatedCostUsd with status awaiting_approval. Quotes expire after one hour.
approvejobIdStart the quoted crawl — the billing-consent step. Fails with 402 on insufficient balance; retry on a 409 partial_state.
statusjobIdPoll progress: awaiting_approvalrunning (pending / processed counts) → completed | failed | canceled | token_cap_exceeded.
resultsjobIdPage through discovered URLs. total tells you when to stop paging.
canceljobIdStop a non-terminal job. Pages already fetched stay billed and readable.
listYour organization's recent crawl jobs, most recent first.
ParameterTypeUsed byDescription
actionenumRequired. One of the six actions above.
urlstring (URL)submitRequired for submit. Starting URL. The crawl stays on this hostname.
maxPagesintegersubmitMaximum pages to crawl (1–10,000, default 10). Each fetched page is billed.
maxDepthintegersubmitMaximum link depth from the starting URL (1–100, default 2).
pathPrefixstringsubmitOnly crawl URLs whose path starts with this prefix.
budgetUsdnumbersubmitSpend cap in USD (min 0.0001). Defaults to the quote; the crawl stops with token_cap_exceeded before exceeding it.
useSitemapbooleansubmitAlso seed the crawl from the site's root /sitemap.xml (one extra billed page; default false).
jobIdstringjob-scoped actionsThe id returned by submit.
limitintegerresults / listPage size — results default 1000 (max 5,000); list default 20 (max 100).
offsetintegerresults / listNumber of entries to skip.

Returns: the JSON envelope for the chosen action (quote, status, URL page, or job list) alongside a one-line summary.

Example call
{ "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.

  1. Call web_access_search to find relevant pages for a query.
  2. Call web_access_fetch on 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.