Google Search Remote MCP Server
Server Details
Google SERP as JSON: organic, AI Overview, People Also Ask, AI Mode, news, shopping. No Cloud setup.
- Status
- Healthy
- Uptime
- 69.8% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- HasData/google-search-mcp
- GitHub Stars
- 18
- Server Listing
- Google Search MCP Server
TDQS
Scored across 10 tools
Most tools map to clearly different Google SERP verticals or follow-up steps, but serp_getSearchResults vs serp_light_getSearchResults and product_getProductInformation vs shopping_getSearchResults/immersive_product overlap enough that an agent may need to parse description nuances to choose correctly.
All names share the hasdata_google_serp_ prefix, but suffixes mix feature_action patterns, camelCase action names, reused generic getSearchResults across different verticals, and one opaque hash suffix.
Ten tools are well-scoped for a multi-vertical Google SERP scraping server, with each tool covering a distinct API surface area rather than being redundant.
The set covers web search, light search, news, shopping, product details, immersive products, events, short videos, and AI answers, but lacks dedicated image, video, jobs, local/maps, or scholar verticals and relies on follow-up tokens for some detail endpoints.
Available Tools
10 toolshasdata_google_serp_ai_mode_getAiModeResponsegoogle_serp_ai_mode: GET /AInspect
Get AI Mode SERP Results
Captures Gemini-powered AI Mode answers from Google Search. Returns the conversational response text, cited source links, subtopic breakdowns, follow-up suggestions, and a subsequentRequestToken for multi-turn continuation. Use for next-gen search interfaces, AI-answer monitoring, citation tracking, content research agents, building question-answering pipelines grounded in live Google results, and person/company data enrichment — e.g. asking Who is the CEO of HasData?, What is Roman Milyushkevich's LinkedIn?, HasData founder email, HasData Instagram handle to get a synthesized answer plus source URLs in one call, ideal for lead enrichment, sales research, people search, and filling in contact/attribute gaps for CRM records.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| gl | No | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. | |
| hl | No | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. | |
| uule | No | The encoded location parameter. | |
| location | No | Google canonical location for the search. | |
| continuable | No | Whether to continue an existing AI Mode conversation. | |
| subsequentRequestToken | No | Token used to continue a previous AI Mode request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description clearly explains the output and the continuation mechanism, making behavior transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed and informative, though slightly verbose with repeated examples; it is still well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains what the tool does, its output, and its multi-turn continuation feature, making it complete for the given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions; the tool description does not add additional meaning beyond the schema, so a neutral score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets AI Mode SERP results from Google, distinguishing from other Google SERP tools like AI Overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases and examples, but does not explicitly compare with alternative tools, so slightly less than perfect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_ai_overview_getAiOverviewResponsegoogle_serp_ai_overview: GET /AInspect
Get AI Overview Results
Fetches the lazy-loaded Google AI Overview block via a pageToken returned by the Google SERP API (token valid for 1 minute). Returns the AI-generated answer text, referenced source URLs, and expanded subtopic sections. Use as a follow-up call to Google SERP for tracking AI citations in SEO, fact-checking answers against sources, and LLM retrieval pipelines grounded in live Google results.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | Yes | Token from `aiOverview` block in Google SERP API. Valid for 1 minute. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the lazy-loaded nature, the 1-minute pageToken validity window, and the shape of the payload (answer text, referenced source URLs, expanded subtopics). It does not cover error behavior for expired tokens or auth requirements, leaving a modest gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: capability, mechanism, then use cases. The leading 'Get AI Overview Results' line largely restates the title, which is mild redundancy, but nothing else is wasted and the key constraint is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly compensates by enumerating the return components (answer text, source URLs, subtopic sections) and the required token. It omits edge-case handling such as expired-token errors, which is the main remaining gap for a follow-up-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single pageToken parameter, so the schema already documents its origin and 1-minute validity. The description restates the same facts without adding format or syntax detail beyond the schema, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — fetching the lazy-loaded Google AI Overview block via a pageToken returned by the Google SERP API — and scopes it clearly against the broader SERP siblings by framing it as a follow-up call rather than a primary search. An agent can tell this apart from ai_mode and serp tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the when: a follow-up call after Google SERP, for SEO AI-citation tracking, fact-checking answers against sources, and LLM retrieval pipelines. It stops short of naming an alternative sibling (e.g. ai_mode) or stating when not to use it, so no exclusion guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_events_getEventInformationgoogle_serp_events: GET /AInspect
Get Google Event Details
Looks up a single Google event by the pageToken returned in a google/serp response's eventsResults array (or the ready-to-call hasdataLink next to it). Returns the venue name/rating/reviews/website/phone, a map link, a description, ticket sources (with official/unofficial flags), and the primary ticket link — details the SERP events widget does not show inline. The pageToken expires a few minutes after it is minted, so fetch it and call this endpoint promptly. Use to enrich an events search result with full venue and ticketing information.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | Yes | Token identifying a single event, taken from the `pageToken` field of an `eventsResults` entry in a `google/serp` response. Expires a few minutes after it is minted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the response payload (venue fields, map link, ticket sources with official/unofficial flags) and a critical timing constraint (pageToken expires in minutes). It omits auth/rate-limit details, but the behavioral profile is largely conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then layers in token provenance, return contents, and the expiry warning. Slightly dense, but every sentence contributes actionable information and none is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately enumerates the returned fields so the agent knows what to expect. Combined with parameter sourcing and the expiry warning, an agent has enough to call the tool correctly; only auth/prerequisite context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3. The description adds value beyond the schema by naming two sources for the value (the `eventsResults` array field or the ready-to-call `hasdataLink`) and reiterating the expiry, which helps the agent obtain a valid token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('looks up') and resource ('a single Google event'), and clearly positions itself as the detail-enrichment step for SERP events. It is distinguishable from sibling SERP search tools because it operates on a single event via a pageToken rather than returning result lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context ('use to enrich an events search result') and an operational constraint ('fetch it and call this endpoint promptly' due to token expiry). It implies the preceding google/serp call but never names an alternative sibling or a when-not-to-use condition, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_immersive_product_getImmersive_e29f691177google_serp_immersive_product: GET /AInspect
Get Immersive Product Information
Expands the Google Shopping Immersive Product pop-up given an immersiveProductPageToken from the Google Shopping API, with optional moreStores (up to ~13 merchants instead of 3–5) and nextPageToken for paginating stores. Returns multi-store offers (merchant, price, shipping, condition, URL), product specs, images, ratings, and the nextPageToken. Use for price-comparison bots, merchant discovery, dropshipping research, and aggregating full offer lists per product.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | Yes | Token for displaying more product info in the Google immersive pop-up, available in the Google Shopping API response as the `immersiveProductPageToken` property. | |
| moreStores | No | Fetch additional store results in a single search. By default it returns 3–5 stores, and when true it returns up to 13 or the maximum available for the product. | |
| nextPageToken | No | Token used to retrieve the next page of store results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It describes the read-like behavior (expands, returns) and mentions pagination and optional store expansion, but it does not explicitly state that it is a read-only operation or disclose any potential side effects, auth requirements, or rate limits. The description is informative but not fully explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with the core purpose front-loaded. It includes a useful list of return fields and use cases without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately explains what is returned (offers, specs, images, ratings, nextPageToken). It also covers key parameters and use cases. It does not mention error handling or token lifecycle, but these are not critical for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds minor context (e.g., moreStores expands from 3–5 to up to 13, nextPageToken paginates) but largely repeats what the schema says. It adds value but not significantly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: it expands the Google Shopping Immersive Product pop-up given a token. It distinguishes itself by focusing on the immersive product view, but it does not explicitly name sibling tools or contrast with them, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear use cases (price-comparison bots, merchant discovery, dropshipping research) but does not explicitly state when to avoid it or name alternatives. The context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_news_getGoogleNewsgoogle_serp_news: GET /AInspect
Get Google News Results
Retrieves Google News results by free-text query, topicToken (World, Business, Technology, etc.), sectionToken, publicationToken (e.g. CNN, BBC), or storyToken (full-coverage cluster with sort by relevance/date). Returns article title, snippet, source publisher, published date, thumbnail, and URL, plus tokens for navigating topics, sub-sections, and story clusters. Use for news monitoring, brand/PR tracking, topical aggregators, publisher-specific feeds, and drilling into full story coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text query as used on news.google.com. Not allowed with `topicToken`, `storyToken`, or `publicationToken`. | |
| gl | No | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. | |
| hl | No | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. | |
| so | No | Sort order for articles in a story. Use only with storyToken. | |
| storyToken | No | Token for a single news story cluster (the “Full coverage” page). | |
| topicToken | No | Token for a Google News topic such as World, Business, or Technology. Not allowed with `q`, `storyToken`, or `publicationToken`. | |
| sectionToken | No | Token for a sub-section under a topic, for example Business → Economy. Use only when `topicToken` or `publicationToken` is present. | |
| publicationToken | No | Token for a specific publisher such as CNN or BBC. Not allowed with `q`, `storyToken`, or `topicToken`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It transparently describes the return payload (title, snippet, source publisher, published date, thumbnail, URL) and the navigation tokens, and notes that storyToken supports sorting by relevance/date. It does not mention limits, errors, or rate restrictions, but for a read-oriented GET endpoint the description provides solid behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence adds useful information about retrieval modes, output, and use cases. It is dense but not bloated, and it avoids unnecessary repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 8-parameter schema with full descriptions and no output schema, the description adequately covers what the tool returns, the main input modes, and appropriate usage scenarios. It does not cover pagination or result limits, but the schema and stated output fields give an agent enough to invoke and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter has a meaningful description with mutual-exclusion constraints. The tool description adds value by grouping the parameter types and explaining the story-cluster sort, but it mostly paraphrases what the schema already documents. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Retrieves Google News results') and resource, listing the distinct retrieval modes (free-text query, topicToken, sectionToken, publicationToken, storyToken) and the returned fields. It distinguishes itself from the general google_serp_serp_getSearchResults sibling by focusing specifically on Google News and its token-based navigation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly enumerates intended use cases: 'news monitoring, brand/PR tracking, topical aggregators, publisher-specific feeds, and drilling into full story coverage.' It does not explicitly name a sibling as an alternative or state when not to use this tool, but the use-case framing gives an agent clear selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_product_getProductInformationgoogle_serp_product: GET /AInspect
Get Product Information
Pulls detailed product data from Google Shopping by productId with searchType (offers, specs, reviews) and rich filters (free shipping, used-condition, sort by price/total price/deals/seller rating, reviews count). Returns product title, images, price, ratings, specs, merchant offers (seller, shipping, condition, total price), and review text depending on searchType. Use for price intelligence, catalog enrichment, review mining, competitor spec comparison, and building shopping assistants that surface the cheapest or highest-rated offer.
| Name | Required | Description | Default |
|---|---|---|---|
| gl | No | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. | |
| hl | No | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. | |
| uule | No | The encoded location parameter. | |
| start | No | This parameter specifies the number of search results to skip and is used for pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. This parameter is applicable only when `searchType=offers` is specified. For reviews pagination use `filter` parameter. | |
| domain | No | Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`. | |
| filter | No | Filter parameter for refining search results. Supports various filters for offers and reviews. Multiple filters can be passed using a comma. The available filters are: Offers filters: - `freeship:1`: Show only products with free shipping. - `ucond:1`: Show only used products. - `scoring:p`: Sort by base price. - `scoring:tp`: Sort by total price. - `scoring:cpd`: Sort by current promotion deals (special offers). - `scoring:mrd`: Sort by seller's rating. Reviews filters: - `rnum:{number}`: Number of results (100 is max). | |
| location | No | Google canonical location for the search. | |
| productId | Yes | The product ID to get results for. | |
| searchType | No | Parameter for fetching specific product information, such as 'offers', 'specs', or 'reviews'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly frames the operation as read-only ('Pulls') and discloses searchType-dependent return content: title, images, price, ratings, specs, merchant offers, and review text. It does not cover rate limits, auth, or errors, but the core behavioral contract is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-line summary, then the detailed behavior, then use cases. Every sentence contributes value, and there is no meaningful fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description provides a strong high-level output contract and common use cases, while the schema covers parameter details. The main gap is that optional searchType has no documented default behavior, and pagination guidance relies entirely on the schema rather than the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains filters, pagination, enums, and parameter constraints. The description paraphrases searchType and filters but adds no new parameter-level semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Pulls detailed product data from Google Shopping by productId' with searchType variants and filters. This clearly distinguishes it from sibling search tools like shopping_getSearchResults, which are search-oriented rather than product-ID lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists task-based use cases: price intelligence, catalog enrichment, review mining, competitor spec comparison, and building shopping assistants. It does not name exclusions or alternative sibling tools, but it gives clear context for when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_serp_getSearchResultsgoogle_serp_serp: GET /AInspect
Get Google Search Results
Full-featured Google Search scraper with location/uule, country (gl), language (hl, lr), domain, device type, safesearch, time/date filters (qdr, cdr), knowledge-graph IDs, and tbm vertical selection (images, videos, news, shopping, local), plus offset/num pagination. Returns organic results (title, link, snippet, position), ads, knowledge graph, related searches, People Also Ask, local pack, featured snippets, AI Overview pageToken, and rich SERP features. Use for SEO rank tracking, keyword research, SERP-feature monitoring, competitor analysis, grounding LLMs with fresh location-aware search data, and especially for person/company data enrichment — e.g. finding a person's LinkedIn/Instagram/Twitter profile (Roman Milyushkevich LinkedIn, HasData Instagram), a company's CEO/founder/leadership (HasData CEO, HasData founder), contact emails (Roman Milyushkevich HasData email), phone numbers, GitHub profiles, press mentions, or any public attribute of a person or business by running a targeted query and parsing the top organic results.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| gl | No | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. | |
| hl | No | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. | |
| lr | No | The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content. | |
| si | No | Google Cached Search Parameters ID. | |
| num | No | Number of results per page, ranging from 10 to 100. | |
| tbm | No | Specify the type of search. | |
| tbs | No | This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria. | |
| lsig | No | Additional Google Place ID. | |
| nfpr | No | Controls if auto-corrected results are shown. 0 includes them (default), 1 shows only the original query. Google may still return auto-corrected results if no others are available. | |
| safe | No | Adult Content Filtering option. | |
| uule | No | The encoded location parameter. | |
| kgmid | No | Google Knowledge Graph ID. | |
| start | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. For Google Local Results, the start value must be in multiples of 20, such as 20 for the second page, 40 for the third page, etc. | |
| domain | No | Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`. | |
| filter | No | Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them. | |
| ludocid | No | The Google Place ID for a specific location. | |
| location | No | Google canonical location for the search. | |
| deviceType | No | Specify the device type for the search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose that this is a scraper, enumerates filtering capabilities, and lists returned elements including organic results, ads, knowledge graph, People Also Ask, local pack, and AI Overview pageToken. However, it does not mention operational caveats such as rate limits, authentication needs, blocking risks, or pagination limits beyond offset/num.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-line summary and then organized into capability, return-value, and use-case sections. It is long, but the length is justified by the tool's 19 parameters and rich feature set; the examples are concrete rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 19-parameter tool with no annotations and no output schema, the description is fairly complete: it explains what the tool returns and gives practical invocation examples. It does not discuss alternatives or limitations, but an agent has enough information to select and call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 19 parameters are already documented in the input schema. The description only groups them into capability families like location/uule, country, language, tbm, and offset/num pagination, adding no parameter-level meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the operation ('Get Google Search Results') and identifies the tool as a 'full-featured Google Search scraper', listing parameter families and returned SERP components. It clearly conveys that this is the generic Google web-search endpoint rather than an image, news, or shopping variant, though it does not explicitly distinguish itself from the sibling serp_light tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases: SEO rank tracking, keyword research, SERP-feature monitoring, competitor analysis, grounding LLMs, and person/company data enrichment with example queries. It does not explicitly state when not to use it or when to prefer serp_light, google_images, or AI-overview siblings, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_serp_light_getSearchResultsgoogle_serp_serp_light: GET /AInspect
Get Google Light Search Results
Google Search scraper served from the lightweight no-JS layout, cheaper and faster than the full SERP API. Returns organic results (title, link, displayed link, snippet, sitelinks, extensions, date, rating and review count), AI Overview with its text blocks and source references, answer box (featured snippet, calculator, unit and currency conversion, local time), knowledge graph, related questions, related searches, inline images, local pack, search filters, pagination, spelling correction and the location Google actually applied. Shopping, top stories, news, videos and jobs blocks are not served in this layout. Supports location/uule, country (gl), language (hl/lr), domain, safesearch, and time/date filters (qdr, cdr) with offset/num pagination. Use for high-volume keyword monitoring, bulk rank tracking, backlink discovery, and AI Overview presence tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| gl | No | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. | |
| hl | No | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. | |
| lr | No | The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content. | |
| num | No | Number of results per page, ranging from 10 to 100. | |
| tbs | No | This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria. | |
| safe | No | Adult Content Filtering option. | |
| uule | No | The encoded location parameter. | |
| start | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. For Google Local Results, the start value must be in multiples of 20, such as 20 for the second page, 40 for the third page, etc. | |
| domain | No | Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`. | |
| filter | No | Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them. | |
| location | No | Google canonical location for the search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It accurately describes behavior by listing what is returned and what is not served, and the GET / title implies a read-only operation. It does not mention potential side effects, but none are expected for a search scraper.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but each sentence adds value by enumerating supported and unsupported result types and listing intended use cases. It is well-structured and front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by summarizing the response components and limitations. It also provides enough context for an agent to decide when to use this tool versus the full SERP sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with detailed descriptions for all 12 parameters, so the description adds little beyond the schema. It does not introduce new parameter-specific meaning, though it provides useful context for how some result filters affect output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets Google Search results from the light no-JS layout and explicitly lists the result types returned and excluded. The name and title also reinforce the specific resource and operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly distinguishes this light version from the full SERP API by noting it is cheaper and faster, and names concrete use cases: high-volume keyword monitoring, bulk rank tracking, backlink discovery, and AI Overview presence tracking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_shopping_getSearchResultsgoogle_serp_shopping: GET /AInspect
Get Shopping Search Results
Scrapes Google Shopping listings for a query with location/uule, country/language/domain, time/date filters, device type, shoprs filter-helper IDs, and offset pagination. Returns product title, price, merchant/source, rating, reviews count, thumbnail, product link, productId, immersiveProductPageToken, and filter chips with hasdata_link for refining by brand/price/condition/promotions. Use for e-commerce price tracking, catalog building, promotion discovery, and feeding productIds into the Product API or tokens into the Immersive Product API for deeper data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| gl | No | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. | |
| hl | No | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. | |
| tbs | No | This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria. | |
| uule | No | The encoded location parameter. | |
| start | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 40 refers to the second page, and 80 to the third page. | |
| domain | No | Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`. | |
| shoprs | No | Specifies the helper ID for applying search filters. Must be used with the updated `q` parameter, which includes the selected filter (e.g., Coffee sale). To apply filters, use the `hasdata_link` from `filters[index].options[index]` in the JSON. Apply multiple filters by following each `hasdata_link` one by one. To remove a filter, follow its specific `hasdata_link`. | |
| location | No | Google canonical location for the search. | |
| deviceType | No | Specify the device type for the search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full responsibility for disclosing behavioral traits. It does not explicitly state whether the operation is read-only or if there are side effects, rate limits, or permissions. The phrasing 'Scrapes Google Shopping listings' implies a passive retrieval, but it lacks an explicit statement about non-destructiveness or data handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear opening statement, a summary of output, and a list of use cases. It avoids redundancy and stays focused, making it easy for users to quickly grasp the tool's function and applications. The structure is efficient with no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description compensates by enumerating the expected return fields (e.g., product title, price, merchant) and explaining how to apply filters via 'hasdata_link'. It also covers parameter interactions for shoprs and pagination. Given the tool's moderate complexity, the description provides a complete picture for invocation without leaving critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides detailed descriptions for all 10 parameters, covering their semantics thoroughly. The tool description does not add significant extra meaning beyond summarizing the overall purpose and mentioning a few output fields. Since schema coverage is 100%, the baseline score of 3 is appropriate, as the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool scrapes Google Shopping listings for a search query and returns detailed product information. It explicitly mentions the output fields, such as product title, price, and merchant, making the tool's purpose unambiguous. The name 'Get Shopping Search Results' further reinforces its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific use cases like e-commerce price tracking, catalog building, and promotion discovery, which guide when to employ the tool. It also hints at integration with other tools by mentioning feeding product IDs into the Product API or tokens into the Immersive Product API. However, it does not explicitly contrast it with sibling tools, leaving a small gap in direct alternative selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_short_videos_getShortVideosSearchResultsgoogle_serp_short_videos: GET /AInspect
Get Short Videos Search Results
Scrapes the Google Short Videos carousel (TikTok, YouTube Shorts, Instagram Reels, etc.) for a query with location/uule, country (gl/cr), language (hl/lr), device type, and page-based pagination. Supports Google's advanced filters (tbs). Returns video title, thumbnail, duration, source platform, channel/creator, publish date, direct video URL, the platform's video ID and profile handle, and ready-to-call HasData API links (hasdataLinks) for the video's comments, transcript, profile, posts or channel. Use for short-form content discovery, viral-trend monitoring, influencer research, cross-platform video aggregation, and sourcing short clips to summarize or embed in LLM responses.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query term for retrieving short videos results. | |
| cr | No | The country code for the country you want to limit the search to. Provide one exact documented value (237 allowed), e.g. `countryAF`, `countryAL`. | |
| gl | No | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. | |
| hl | No | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. | |
| lr | No | The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content. | |
| tbs | No | Google advanced search filters, combined with commas. For example: - `qdr:h`, `qdr:d`, `qdr:w`, `qdr:m`, `qdr:y` - Show videos from the past hour, day, week, month, or year. | |
| page | No | Page number for paginated results, where 0 is the first page. | |
| uule | No | The encoded location parameter. | |
| location | No | Google canonical location for the search. | |
| deviceType | No | Specify the device type for the search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does well: it discloses page-based pagination (0-indexed), tbs filter support, per-platform provenance fields, and that it returns ready-to-call HasData API links for comments/transcript/profile. It omits auth requirements, rate limits, and failure modes, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and target, then scoped parameters, then return values, then use cases. The second sentence is dense but every clause (filters, return fields, hasdataLinks) adds distinct information, so it earns its length despite being long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter scraping tool with no output schema and no annotations, the description compensates well by enumerating the returned fields and the linked follow-up endpoints. It lacks any note on authentication or result limits, which would complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters in detail (including enums and examples). The description only lists parameter families (location/uule, gl/cr, hl/lr, deviceType, page) without adding format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Scrapes') and a precise resource ('the Google Short Videos carousel') and enumerates the covered platforms (TikTok, YouTube Shorts, Instagram Reels). This clearly distinguishes it from siblings like youtube_search_getYoutubeSearchResults or tiktok_search_getTikTokSearch, which target single platforms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides concrete usage contexts ('short-form content discovery, viral-trend monitoring, influencer research, cross-platform video aggregation, sourcing short clips to summarize or embed in LLM responses'). However it never states when NOT to use it or names an alternative tool (e.g., a single-platform search) for narrower needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
hasdata_google_serp_ai_overview_getAiOverviewResponse1 field changed- changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token from `aiOverview` block in Google SERP API. Valid for 4 minutes."New value: +"Token from `aiOverview` block in Google SERP API. Valid for 1 minute."
- Changed
hasdata_google_serp_events_getEventInformation10 fields changed- removed
Input schema / properties / domainRemoved value: -{ - "description": "Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`.", - "type": "string" -} - removed
Input schema / properties / glRemoved value: -{ - "description": "The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`.", - "type": "string" -} - removed
Input schema / properties / hlRemoved value: -{ - "description": "The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.", - "type": "string" -} - removed
Input schema / properties / htichipsRemoved value: -{ - "description": "Filter parameter for refining event search results. Supports various filters for events. Multiple filters can be passed using a comma. The available filters are:\n\n- `date:today`: Today's Events\n- `date:tomorrow`: Tomorrow's Events\n- `date:week`: This Week's Events\n- `date:weekend`: This Weekend's Events\n- `date:next_week`: Next Week's Events\n- `date:month`: This Month's Events\n- `date:next_month`: Next Month's Events\n- `event_type:Virtual-Event`: Online Events\n\nFor example, to filter for today's online events, use: `event_type:Virtual-Event,date:today`.\n", - "type": "string" -} - removed
Input schema / properties / locationRemoved value: -{ - "description": "Google canonical location for the search.", - "type": "string" -} - added
Input schema / properties / pageTokenAdded value: +{ + "description": "Token identifying a single event, taken from the `pageToken` field of an `eventsResults` entry in a `google/serp` response. Expires a few minutes after it is minted.", + "type": "string" +} - removed
Input schema / properties / qRemoved value: -{ - "description": "Specify the search term for which you want to scrape the SERP.", - "type": "string" -} - removed
Input schema / properties / startRemoved value: -{ - "description": "This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page.\n", - "type": "number" -} - removed
Input schema / properties / uuleRemoved value: -{ - "description": "The encoded location parameter.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "q" -]New value: +[ + "pageToken" +]
- Changed
hasdata_google_serp_short_videos_getShortVideosSearchResults1 field changed- added
Input schema / properties / tbsAdded value: +{ + "description": "Google advanced search filters, combined with commas. For example:\n\n - `qdr:h`, `qdr:d`, `qdr:w`, `qdr:m`, `qdr:y` - Show videos from the past hour, day, week, month, or year.\n", + "type": "string" +}
10 tool updates
- First observed
hasdata_google_serp_ai_mode_getAiModeResponse - First observed
hasdata_google_serp_ai_overview_getAiOverviewResponse - First observed
hasdata_google_serp_events_getEventInformation - First observed
hasdata_google_serp_immersive_product_getImmersive_e29f691177 - First observed
hasdata_google_serp_news_getGoogleNews - First observed
hasdata_google_serp_product_getProductInformation - First observed
hasdata_google_serp_serp_getSearchResults - First observed
hasdata_google_serp_serp_light_getSearchResults - First observed
hasdata_google_serp_shopping_getSearchResults - First observed
hasdata_google_serp_short_videos_getShortVideosSearchResults
Publisher details
- Operator
- HasData · Publisher source
- Operator website
- https://hasdata.com · Publisher source
- Vendor relationship
- Independent · Publisher source
- Documentation
- https://docs.hasdata.com/mcp-server · Publisher source
- Trust center
- Not available
- Restrictions
- A free HasData account covers 1,000 credits a month with no card. Heavier use needs a paid plan. No admin approval, no regional limits and no custom OAuth app. · Publisher source
Related MCP Connectors
Structured Google search, news, and local results at scale - organic results, news, and local packs
Scrape Google search results with SERP data, ads, and knowledge panels
Google SERP, Maps, Shopping, News and AI-answer data for AI agents, from the Searlo search API.
Structured JSON answers from ChatGPT, Gemini, Copilot and AI Mode, plus Google Search and News.
Related MCP Servers
AlicenseBqualityCmaintenanceSearch API for AI, SEO & automation. Browser-rendered Google, Bing, Yandex, Baidu, DuckDuckGo and Ecosia results with URL extraction (+image search and engine metadata tools)966 npm2MIT- AlicenseAqualityDmaintenanceProvides real-time Google search results (organic + knowledge graph) with country targeting, language, time filters, and pagination, at low cost.115 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables fetching Google's AI Overview answers and cited sources as structured JSON, with support for batch queries and country/language targeting.-
- AlicenseAqualityDmaintenanceEnables AI agents to perform Google searches and retrieve structured JSON results for 10 types including web, images, news, and shopping with live prices. Offers 1,000 free searches per month with no credit card required.138 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.