Skip to main content
Glama

AIsa SERP — Google

Live Google Ads Search Advanced

post_dataforseo_serp_gads_search_live
Destructive

Returns the ads running against a keyword on Google, synchronously. Returns keyword, type, se_domain, location_code, language_code, check_url, datetime, spell, refinement_chips, item_types, items_count and items. Measured at 57 KB for a ten-result Google query. ⚠️ Three result depths exist for the same query and differ by two orders of magnitude: regular measured 4.8 KB, advanced 57 KB, and html 2.4 MB. advanced is the default choice; take regular when only the ranked list matters and html only to check what the parser dropped. Wrapped in DataForSEO's envelope: data in tasks[0].result, outcome in tasks[0].status_code - a rejected request still returns HTTP 200.

Usage-based billing; Default request estimate: $0.02 USD (not a fixed price). Account-specific pricing and final settlement may differ.

Input Schema

NameRequiredDescriptionDefault
bodyNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavior well beyond the annotations: synchronous execution, the DataForSEO envelope (data in tasks[0].result, outcome in tasks[0].status_code), and the crucial detail that a rejected request still returns HTTP 200 — which prevents the agent from trusting the transport status. It also discloses approximate response size and billing. It does not, however, reconcile the read-flavored 'returns ads' semantics with the annotations' destructiveHint=true / idempotentHint=false, leaving a real ambiguity unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The field enumeration ('Returns keyword, type, se_domain, ... items_count and items') is pure bloat because an output schema already exists, and it pushes the genuinely valuable depth warning and envelope semantics into the middle of the text. The pricing block and size comparisons do earn their place, but the whole would be tighter and better front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, billed, enveloped SERP endpoint the description covers the return side well (though the output schema already does that) and flags the critical depth tradeoff. What it omits is the input contract, which is the exact area where schema coverage is zero, plus any explanation of the readOnlyHint=false/destructiveHint=true annotations on what is functionally a search call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden for the input body — and it fails: it enumerates eleven output fields while saying nothing about the actual inputs (target, advertiser_ids, location_code, location_name, location_coordinate) or the anyOf requirement that one of target/advertiser_ids be supplied. Worse, the description's 'ads running against a keyword' implies a keyword parameter that does not exist in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb+resource: 'Returns the ads running against a keyword on Google, synchronously,' which cleanly separates it from the organic/news/jobs SERP siblings and from get_dataforseo_serp_gads_advertisers_locations. It also implicitly positions itself against the same-family depth variants (regular/advanced/html). It never names a sibling outright, and the 'against a keyword' framing is slightly at odds with the actual input being target/advertiser_ids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete selection guidance for the three result depths: 'advanced is the default choice; take regular when only the ranked list matters and html only to check what the parser dropped,' including a quantitative size comparison (4.8 KB / 57 KB / 2.4 MB). However, no guidance is offered on when to use this tool versus sibling tools such as post_dataforseo_serp_gads_advertisers_live or the organic SERP endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources