ConvertFleet

MCP docsTools › Google Web Search + Page Scrape

Google Web Search + Page Scrape

google_search_scrape slow · returns a job Web search & page reading

Search the web AND read every result page in one call. Returns the ranked links plus, for each one, the scraped page: final URL, HTTP status, title, meta description, canonical, language, H1/H2 headings, readable body text, word count, emails, phones, social profiles, Open Graph/Twitter cards and JSON-LD. This is the tool to use for research, fact-finding, competitor/lead analysis or answering a question from live web content. The payload reports `engine_used` and `google_used`: google.com refuses plain datacenter IPs, so unless a Google provider key (SERPER_API_KEY / SERPAPI_KEY / GOOGLE_CSE_KEY+CX) or a residential proxy is configured, results come from a clearly labelled fallback engine (Bing, DuckDuckGo, Brave, Mojeek, Yahoo) — never presented as Google's ranking. If no engine answers, the run fails with the reason instead of returning an empty success.

When to use. Research and fact-finding from live web content: search, then READ every result page. Use this when the answer lives inside the pages — competitor analysis, company research, 'what does the web say about X'.
Not for. URLs you already have (use scrape_web_pages — it skips the search step and costs less).

Parameters

NameTypeRequiredDefaultDescription
query string no The search query, e.g. 'best crm software for real estate'. Required unless you pass `queries`.
queries string[] no Run several searches in one call. Use instead of `query` for multiple angles on a topic. Capped by plan: Starter 2, Pro 10, Gold 25 — extra queries are dropped, not rejected.
max_results integer no 10 How many result links this run may keep, SHARED across all queries (they do not multiply it). Clamped to the account's plan: Starter 10, Pro 50, Gold 200. Send 0 for 'as many as my plan allows'.
site string no Restrict results to one domain, e.g. 'techcrunch.com'. Enforced server-side even when the answering engine ignores the site: operator.
time_range string no Freshness filter. One of: , day, week, month, year.
country string no "us" Two-letter country for result localisation, e.g. 'us', 'uk', 'de'.
language string no "en" Two-letter UI language, e.g. 'en'.
engine string no "auto" Which engine to use. 'auto' tries the Google providers first, then a labelled fallback engine. 'google' means Google only. One of: auto, google, serper, serpapi, google_cse, google_html, google_browser, bing, duckduckgo, brave, mojeek, yahoo, startpage.
allow_fallback boolean no true When false, the run fails with an explicit error rather than falling back to a non-Google engine. Only applies when engine='auto'; naming an engine (including 'google') already means that engine or an honest failure.
scrape_pages boolean no true Fetch and parse each result page.
max_pages integer no Cap on how many result pages get fetched. Defaults to max_results and can never exceed it plus any explicit `urls`. Plan ceiling: Starter 10, Pro 50, Gold 200.
text_chars integer no 5000 Characters of readable body text per page. Clamped by plan: Starter 5,000, Pro 50,000, Gold 200,000 (full page).
include_contacts boolean no true Extract emails, phone numbers and social profiles from each page.
include_structured boolean no true Extract JSON-LD, Open Graph and Twitter-card data from each page.
include_links boolean no false Return the internal/external links found on each page.
include_images boolean no false Return the images (src + alt) found on each page.

Returns

Ranked links, each with the parsed page attached.

Each row typically carries: title url domain snippet position final_url http_status meta_description canonical language headings text word_count emails phones socials open_graph jsonld

The response body is { status, count, fields, results }. Runs that exceed the inline wait return { status: "running", job_id, tool_flow } instead — see Jobs & errors.

Call it over MCP

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "google_search_scrape",
    "arguments": {
      "query": "top project management saas 2026",
      "max_results": 5,
      "text_chars": 5000
    }
  }
}

Call it over the REST API

curl -X POST https://convertfleet.online/api/tool-run \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"websearch","params":{"query":"top project management saas 2026","max_results":5,"text_chars":5000}}'

Both paths run the same job engine, enforce the same plan limits and count against the same monthly quota. See the REST API page.

Related tools

JSON Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The search query, e.g. 'best crm software for real estate'. Required unless you pass `queries`."
    },
    "queries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Run several searches in one call. Use instead of `query` for multiple angles on a topic. Capped by plan: Starter 2, Pro 10, Gold 25 — extra queries are dropped, not rejected."
    },
    "max_results": {
      "type": "integer",
      "description": "How many result links this run may keep, SHARED across all queries (they do not multiply it). Clamped to the account's plan: Starter 10, Pro 50, Gold 200. Send 0 for 'as many as my plan allows'.",
      "default": 10
    },
    "site": {
      "type": "string",
      "description": "Restrict results to one domain, e.g. 'techcrunch.com'. Enforced server-side even when the answering engine ignores the site: operator."
    },
    "time_range": {
      "type": "string",
      "description": "Freshness filter.",
      "enum": [
        "",
        "day",
        "week",
        "month",
        "year"
      ]
    },
    "country": {
      "type": "string",
      "description": "Two-letter country for result localisation, e.g. 'us', 'uk', 'de'.",
      "default": "us"
    },
    "language": {
      "type": "string",
      "description": "Two-letter UI language, e.g. 'en'.",
      "default": "en"
    },
    "engine": {
      "type": "string",
      "description": "Which engine to use. 'auto' tries the Google providers first, then a labelled fallback engine. 'google' means Google only.",
      "enum": [
        "auto",
        "google",
        "serper",
        "serpapi",
        "google_cse",
        "google_html",
        "google_browser",
        "bing",
        "duckduckgo",
        "brave",
        "mojeek",
        "yahoo",
        "startpage"
      ],
      "default": "auto"
    },
    "allow_fallback": {
      "type": "boolean",
      "description": "When false, the run fails with an explicit error rather than falling back to a non-Google engine. Only applies when engine='auto'; naming an engine (including 'google') already means that engine or an honest failure.",
      "default": true
    },
    "scrape_pages": {
      "type": "boolean",
      "description": "Fetch and parse each result page.",
      "default": true
    },
    "max_pages": {
      "type": "integer",
      "description": "Cap on how many result pages get fetched. Defaults to max_results and can never exceed it plus any explicit `urls`. Plan ceiling: Starter 10, Pro 50, Gold 200."
    },
    "text_chars": {
      "type": "integer",
      "description": "Characters of readable body text per page. Clamped by plan: Starter 5,000, Pro 50,000, Gold 200,000 (full page).",
      "default": 5000
    },
    "include_contacts": {
      "type": "boolean",
      "description": "Extract emails, phone numbers and social profiles from each page.",
      "default": true
    },
    "include_structured": {
      "type": "boolean",
      "description": "Extract JSON-LD, Open Graph and Twitter-card data from each page.",
      "default": true
    },
    "include_links": {
      "type": "boolean",
      "description": "Return the internal/external links found on each page.",
      "default": false
    },
    "include_images": {
      "type": "boolean",
      "description": "Return the images (src + alt) found on each page.",
      "default": false
    }
  },
  "additionalProperties": false
}