Skip to main content
Glama

Zyte MCP Server

search

Search the web through Zyte API: submit a keyword query to a supported search engine domain (currently Google domains, e.g. "google.com") and get structured results back. Use this instead of pointing fetch_page or fetch_http at a search-engine URL — SERP HTML is huge and bot-protected, and this tool returns parsed results directly; use extract_from_browser or extract_from_http for structured data from a specific known page, and the fetch tools for raw pages. 'include' picks the response components: "organic" — structured organic results (rank, url, title, snippet, sitelinks), usually what you want; "aiOverview" — the SERP's AI-generated answer with citations, returned only when the search engine shows one (absence is not an error); "html" — the raw SERP page (large). maxResults asks the engine for up to that many organic results (10-100 in steps of 10, default 10). queryParameters tunes the search in exactly one style: "generic" is portable — geolocation (a country code like "US" or a canonical geotarget name like "New York,New York,United States") and locale (e.g. "en-US") — while "engineSpecific" passes native Google parameters (uule, gl, hl, cr, lr, safe, nfpr) straight through. Zero organic results is a success, not an error. Returns a JSON metadata block (canonical SERP url, status, fetchedAt, totals; on status "partial" an error naming the failed component), then a JSON block with organicResults/aiOverview when requested, then the raw HTML when requested. An unsupported engine domain is rejected with an error naming the supported engines — do not retry it unchanged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe keyword or phrase to search for (1-2048 chars). Zyte API constructs the canonical SERP URL from it; do not URL-encode.
domainYesSearch engine domain in registrable form, lowercase (e.g. 'google.com', 'google.co.uk'). Only engines supported by Zyte API are accepted — currently Google domains (any google.* country domain); an unsupported domain is rejected with an error naming the supported set (do not retry it unchanged).
includeYesResponse components to return, each enabling one output field: 'organic' -> structured organic results (rank, url, title, snippet, sitelinks) — usually what you want; 'aiOverview' -> the SERP's AI-generated answer with citations, returned only when the SERP shows one; 'html' -> the raw SERP HTML (large). Example: ["organic"].
maxResultsNoHow many organic results to ask the engine for (Google's 'num'; default 10). Also affects the fetched SERP page when 'html' is included.
organizationIdYesRequired. The Zyte organization to attribute this call to (max 100 characters, printable ASCII without spaces). If you do not already have an id, call the user_info tool: it lists the organizations your credential belongs to. IMPORTANT: if it lists more than one, ask the user which to use and wait for their answer — this call is billed to whichever organization you name here, so it is the user's choice to make, not yours. Never guess an id, and never fall back to a default. Once the user has chosen, reuse that id across the session unless they ask for a different organization.
queryParametersNoSearch-tuning parameters in exactly one style: 'generic' is portable and translated per engine; 'engineSpecific' passes native Google parameters through. The styles cannot be mixed in one request.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses that absent aiOverview is not an error, that zero results is a success, the return-block order (metadata, then organicResults/aiOverview, then raw HTML), the 'partial' status error behavior, and the non-retryable unsupported-domain error. This is unusually thorough behavioral disclosure.

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

Conciseness4/5

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

Front-loaded with the core action and alternative routing, then dense per-parameter semantics. It is long, but nearly every clause earns its place given no annotations and no output schema; only minor trimming would be possible without losing information.

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

Completeness5/5

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

With no output schema and no annotations, the description explains the return structure, error/partial behavior, and success conditions, and covers the nested queryParameters styles. An agent has everything needed to invoke it correctly and interpret results.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description nevertheless adds real meaning beyond the schema — 'include' component-by-component intent, maxResults as '10-100 in steps of 10, default 10', and the two mutually exclusive queryParameters styles with portable-vs-native framing. It clarifies rather than merely repeats.

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

Purpose5/5

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

States a specific verb and resource ('Search the web through Zyte API: submit a keyword query... get structured results back') and explicitly separates itself from four siblings by name. An agent can identify the tool's role without opening the schema.

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

Usage Guidelines5/5

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

Explicitly says to use this instead of pointing fetch_page/fetch_http at a search-engine URL, and routes to extract_from_browser/extract_from_http for known pages and the fetch tools for raw pages. It also states that zero organic results is success and that an unsupported engine domain should not be retried unchanged.

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