Skip to main content
Glama

serper_maps_census

Read-only

EXHAUSTIVE census of a type of business over an area (Google Maps).

Use this — NOT serper_maps_sample — whenever you need a count or an exhaustive list of a type of business over an area. A Maps sample caps at ~20 results and biases toward its anchor point: it silently undercounts. This tool fixes both server-side — it tiles the area into a grid of geo anchors, paginates each one and deduplicates by place id → complete result.

Provide either center "lat,lng" (+ radius_km, grid), or ll_anchors. Cost: ~grid² × max_pages Serper requests (throttled), and a Maps page is billed 3 credits, not 1 — a default census (grid=3, max_pages=3) therefore costs about 81 credits. That is the price of exhaustiveness; start modest and tighten the grid if needed.

Returns {query, count, places[], anchors_used, pages_fetched, credits_used}. count = deduplicated total — to be preferred over any count from a sample alone. credits_used = what Serper ACTUALLY deducted across all the pages, the exact cost figure of this call (pages_fetched counts requests, not spend).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "serper_maps_census"
  }
}

Input Schema

NameRequiredDescriptionDefault
_orgNoOrg (id) de CET APPEL. `oto_list_orgs()`.
gridNoTiling density grid×grid; finer = more coverage and more calls (default 3 → 9 anchors).
zoomNoMaps zoom level per anchor (default 14).
queryYesWhat is being enumerated (e.g. "self-service laundry").
_groupNoÉquipe (id) de CET APPEL, sous son org parente.
centerNoArea center "lat,lng" (e.g. "48.8566,2.3522"). Required unless ll_anchors.
_run_idNoOBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas.
countryNoCountry code (default "fr").fr
_projectNoProjet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`.
languageNoLanguage code (default "fr").fr
_instanceNoInstance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`.
max_pagesNoMax pages paginated per anchor (default 3).
radius_kmNoHalf-width of the square area around the center (default 5).
ll_anchorsNoExplicit "@lat,lng,zoomz" anchors, take precedence over center/radius/grid.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description carries most of the burden and does so well: it discloses server-side tiling, pagination, deduplication by place id, throttling, and a concrete cost model (3 credits per Maps page, ~81 credits for a default census). It stops short of describing failure modes or partial-result behavior, which keeps it from a 5.

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 purpose and the sibling contrast, then cost, then return shape. Every sentence earns its place, though the heavy markdown emphasis and the cost paragraph make it longer than strictly necessary.

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?

For a 14-parameter tool with no output schema, the description supplies the return shape ({query, count, places[], anchors_used, pages_fetched, credits_used}) and clarifies that count is deduplicated and credits_used is actual spend. An agent has everything needed to call it and interpret the result.

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, but the description adds real meaning: it explains the center+radius_km+grid path versus ll_anchors, and ties grid and max_pages to the cost formula (grid² × max_pages). That is value beyond the schema's per-field text.

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: an exhaustive census of a business type over an area on Google Maps. It explicitly names the sibling it is not (serper_maps_sample) and contrasts the two, so an agent can distinguish them without opening either 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?

Gives explicit when-to-use guidance ('whenever you need a count or an exhaustive list') and when-not (a sample caps at ~20 and silently undercounts). It names the alternative and the condition that selects it, leaving nothing to inference.

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