Skip to main content
Glama
A1-x-Tech

mcp-google-custom-search

Web search

search
Read-onlyIdempotent

Runs web queries against a Google Programmable Search Engine, returning ranked results, snippets, metadata, and pagination. Supports language, country, date, site, and safety filters.

Instructions

Web search through your Google Programmable Search Engine (Custom Search JSON API). Returns query, total_results (Google's estimate — it can shrink while paging), search_time_seconds, corrected_query (spelling suggestion; results are still for the original query), next_start/previous_start page cursors, and items[] with title, url, display_link, snippet, mime/file_format and (with include_pagemap) pagemap metadata. Coverage is the engine's configuration: an engine listing specific sites searches only those; open-web search needs "Search the entire web" enabled in its control panel — results still differ from google.com. Max 10 results per call and 100 per query: paginate by passing next_start as start. Each call costs one unit of the daily quota (free tier 100/day), so prefer one precise query over many broad ones. Note: this is Programmable Search, NOT Google Search Console — it cannot report how your own site is indexed or ranked.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
numNoResults per page, 1..10 (API maximum 10; default 10).
safeNoSafe search: active filters adult content, off (the API default) does not.
sortNoSort expression, e.g. "date" for newest-first. Omit for relevance (usually better).
queryYesThe search query, Google syntax included (quotes, site:, filetype:, OR, -exclusions).
startNo1-based index of the first result — use next_start/previous_start from the previous page. The API serves at most 100 results per query, so start + num - 1 must stay <= 100 (enforced: a wider window is rejected without spending quota).
rightsNoLicense filter: cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived (combine with |).
countryNoGeolocation bias — rank results as if searching from this country, e.g. "de". Soft signal.
languageNoOnly results in this language, e.g. "en", "de", "zh-CN".
or_termsNoSpace-separated words — each result must contain at least one of them.
engine_idNoProgrammable Search Engine id (cx) to search with, overriding the configured GOOGLE_CUSTOM_SEARCH_ENGINE_ID. Omit to use the configured engine.
file_typeNoOnly files of this type, e.g. "pdf", "xlsx", "svg".
exact_termsNoA phrase every result must contain.
site_searchNoA site or domain to include or exclude, e.g. "example.com" — pair with site_search_filter.
date_restrictNoOnly results from the last N days/weeks/months/years: "d7", "w2", "m6", "y1", ...
exclude_termsNoA word or phrase no result may contain.
include_pagemapNoAttach each result's raw pagemap (OpenGraph/metatags/thumbnails and other structured page data). Verbose — leave off unless you need page metadata.
country_restrictNoHard filter — only documents Google attributes to this country, e.g. "DE".
filter_duplicatesNoGoogle's duplicate-content filter (default on). false returns near-duplicate results too.
interface_languageNoInterface language used to interpret the query, e.g. "de". Improves non-English relevance.
site_search_filterNoinclude = only results from site_search, exclude = everything but it. Default include.
Behavior5/5

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

The annotations already establish read-only, open-world, idempotent, non-destructive behavior, and the description adds valuable context on top: Google's total_results can shrink while paging, corrected_query does not change the actual results, each call consumes one unit of a daily quota, and engine coverage depends on the control-panel configuration. These details go well beyond the structured hints and help an agent predict real behavior.

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

Conciseness5/5

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

The description is long but every sentence carries distinct information: return fields, pagination, quota, coverage caveats, and the Search Console distinction. It is front-loaded with the core purpose and follows with operational constraints. No sentence is filler or redundant with the schema.

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, the description compensates by enumerating the returned fields and their caveats. For a 20-parameter tool with one required parameter, it covers what results look like, how pagination works, quota implications, and engine coverage. An agent has enough context to invoke it correctly without guessing.

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 coverage is 100%, so the baseline is 3, and the description still adds meaning beyond the schema: it explains the next_start pagination mechanism, the 10-per-call/100-per-query limits, and the cost of each call against the quota. This is useful semantic context for choosing parameter values, though the schema itself already documents each parameter well.

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?

The description opens with a specific verb and resource: 'Web search through your Google Programmable Search Engine (Custom Search JSON API).' It clearly conveys this is a web search tool returning query metadata and result items, which distinguishes it from the sibling image search and from Google Search Console. The explicit 'NOT Google Search Console' note further sharpens the boundary.

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?

It provides clear operational guidance: paginate with next_start, stay within the 100-result window, and prefer one precise query because each call consumes quota. It explicitly says the tool cannot report how your own site is indexed or ranked, a useful when-not-to-use exclusion. It does not explicitly route to search_images or raw_request, so it stops short of naming alternative sibling tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/A1-x-Tech/mcp-google-custom-search'

If you have feedback or need assistance with the MCP directory API, please join our Discord server