MCP docs › Tools › 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.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
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
}