addrbookFor publishers
← The evidence ledger

Evidence row 301654

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 5b42ba54-2ebf-40b1-b42c-eadc10c31cc7
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
20711205e0430821ff8f7124aa8a7765eaaefd13674bb3bb8ac75360b7060bbc
Leaf
0x7d8646064fcf26bbe3fbf572f8cabc1b62424c1187fd0c369f63a7293ca13cf0

What was observed

{
  "count": 19,
  "tools": [
    {
      "description": "Send a prompt to an AI answer engine (ChatGPT, Perplexity, Gemini or Copilot) and get its answer_text with citations; with brand it also reports whether and where that brand was cited. SPENDS quota at Zenserp's premium per-answer rate (see Zenserp pricing), is slow (seconds to a minute), and must not be repeated needlessly. Plan gate: Medium unlocks ChatGPT, Large adds Perplexity, Premium adds Gemini, Enterprise adds Copilot. GET /v1/answer-engine.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "additional_prompt": {
            "description": "An optional follow-up prompt sent with the main one (counts toward the 4,096-character limit shared with prompt).",
            "maxLength": 4096,
            "minLength": 1,
            "type": "string"
          },
          "brand": {
            "description": "A brand name to track: the reply then has a brand_visibility object.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "country": {
            "description": "Two-letter country code to localise the answer, e.g. us.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "engine": {
            "description": "The answer engine to ask.",
            "enum": [
              "chatgpt",
              "perplexity",
              "gemini",
              "copilot"
            ],
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "prompt": {
            "description": "The question or prompt. prompt and additional_prompt together may hold at most 4,096 characters.",
            "maxLength": 4096,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "engine",
          "prompt"
        ],
        "type": "object"
      },
      "name": "zenserp_answer_engine"
    },
    {
      "description": "Google Flights options. Best: origin and destination as 3-letter airport codes plus departure_date (dates and curr are honoured only then). A free-text q or a tfs string from a Google Flights URL also works. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v1/flights.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "curr": {
            "description": "3-letter currency code for the prices, e.g. USD.",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "departure_date": {
            "description": "Departure date, yyyy-mm-dd. Needs origin and destination.",
            "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
            "type": "string"
          },
          "destination": {
            "description": "Arrival airport code, e.g. LHR.",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "origin": {
            "description": "Departure airport code, e.g. JFK. Name one airport, not a city.",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "q": {
            "description": "Free-text flight query, used when no airport codes are given (no dates, no curr).",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "return_date": {
            "description": "Return date, yyyy-mm-dd. Omit for one-way.",
            "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
            "type": "string"
          },
          "tfs": {
            "description": "Google Flights search string copied from a Google Flights URL (full filters).",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "zenserp_flights"
    },
    {
      "description": "The number of search requests left on this Zenserp key's plan (remaining_requests). Free: it spends no quota. GET /v2/status.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "zenserp_get_status"
    },
    {
      "description": "Google Hotels offers for a hotel or place. Send check_in and check_out together, or Google falls back to today's rates. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v1/hotels.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "accommodation_type": {
            "description": "Restrict to hotels or vacation rentals.",
            "enum": [
              "hotels",
              "vacation_rentals"
            ],
            "type": "string"
          },
          "adults": {
            "description": "Number of adults.",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "check_in": {
            "description": "Check-in date, yyyy-mm-dd. Needs check_out.",
            "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
            "type": "string"
          },
          "check_out": {
            "description": "Check-out date, yyyy-mm-dd; later than check_in.",
            "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
            "type": "string"
          },
          "children": {
            "description": "Ages of the children, comma separated, e.g. 4,9 (Google prices by age).",
            "pattern": "^\\d{1,2}(,\\d{1,2}){0,9}$",
            "type": "string"
          },
          "currency": {
            "description": "3-letter currency code for the prices, e.g. EUR.",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "free_cancellation": {
            "description": "true = only properties with free cancellation.",
            "type": "boolean"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "q": {
            "description": "Hotel name or place, e.g. 'hilton midtown new york'.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_hotels"
    },
    {
      "description": "Google image results (thumbnails, source pages, sizes). SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. Each page holds 100 images. GET /v2/search (tbm=isch).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "device": {
            "description": "Device to emulate.",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "ijn": {
            "description": "Image page number, 100 images per page; per the docs, images 101-200 = ijn 2. Omit for the first page.",
            "maximum": 30,
            "minimum": 0,
            "type": "integer"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "lr": {
            "description": "Limit results to these languages (lr), prefixed with lang_ and joined by |, e.g. lang_fr.",
            "pattern": "^lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?(\\|lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?){0,9}$",
            "type": "string"
          },
          "q": {
            "description": "The query.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "start": {
            "description": "Result offset: 0 (default) first page, 10 second page, 20 third page ... Google serves about 300 results per query.",
            "maximum": 990,
            "minimum": 0,
            "type": "integer"
          },
          "tbs": {
            "description": "Google 'tbs' filter string for what the query field cannot express, e.g. qdr:w (past week).",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_image_search"
    },
    {
      "description": "Google Jobs listings for a query (jobs_results: title, company, location, source, apply url). Google returns one page; there is no paging. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v2/search (ibp=htl;jobs).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "q": {
            "description": "The job query, e.g. 'php developer'.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_jobs_search"
    },
    {
      "description": "The supported country codes (values for gl). GET /v2/gl.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "zenserp_list_countries"
    },
    {
      "description": "The supported interface language codes (values for hl). GET /v2/hl.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "zenserp_list_languages"
    },
    {
      "description": "The search engine hosts Zenserp supports (values for search_engine). GET /v2/search_engines. The docs do not say whether helper lists are charged; they are not searches.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "zenserp_list_search_engines"
    },
    {
      "description": "Google local/maps results: shops, cafes and other businesses with address, rating, phone and coordinates. Set location for accurate results. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v2/search (tbm=lcl).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "device": {
            "description": "Device to emulate.",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "lr": {
            "description": "Limit results to these languages (lr), prefixed with lang_ and joined by |, e.g. lang_fr.",
            "pattern": "^lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?(\\|lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?){0,9}$",
            "type": "string"
          },
          "q": {
            "description": "The query.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "start": {
            "description": "Result offset: 0 (default) first page, 10 second page, 20 third page ... Google serves about 300 results per query.",
            "maximum": 990,
            "minimum": 0,
            "type": "integer"
          },
          "tbs": {
            "description": "Google 'tbs' filter string for what the query field cannot express, e.g. qdr:w (past week).",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_maps_search"
    },
    {
      "description": "Google News results for a query: title, source, date, snippet. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v2/search (tbm=nws).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "device": {
            "description": "Device to emulate.",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "lr": {
            "description": "Limit results to these languages (lr), prefixed with lang_ and joined by |, e.g. lang_fr.",
            "pattern": "^lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?(\\|lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?){0,9}$",
            "type": "string"
          },
          "q": {
            "description": "The query.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "start": {
            "description": "Result offset: 0 (default) first page, 10 second page, 20 third page ... Google serves about 300 results per query.",
            "maximum": 990,
            "minimum": 0,
            "type": "integer"
          },
          "tbs": {
            "description": "Google 'tbs' filter string for what the query field cannot express, e.g. qdr:w (past week).",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_news_search"
    },
    {
      "description": "Pages and sources that contain a given image (Google reverse image search). SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v2/search (image_url).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "image_url": {
            "description": "Public URL of the image.",
            "maxLength": 2000,
            "pattern": "^https?:\\/\\/",
            "type": "string"
          }
        },
        "required": [
          "image_url"
        ],
        "type": "object"
      },
      "name": "zenserp_reverse_image_search"
    },
    {
      "description": "Live search-engine result page as JSON: organic results, ads (paid_results), featured snippets, related questions and searches, knowledge graph. Google by default; set search_engine for Bing, Yandex or DuckDuckGo. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. ai_overview=true also returns Google's AI Overview and costs 3 requests when one is returned (Small plan or higher). GET /v2/search.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "ai_overview": {
            "description": "true = also extract Google's AI Overview (3 requests when returned, otherwise 1; slower; Google only; Small plan or higher).",
            "type": "boolean"
          },
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "device": {
            "description": "Device to emulate.",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "lr": {
            "description": "Limit results to these languages (lr), prefixed with lang_ and joined by |, e.g. lang_fr.",
            "pattern": "^lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?(\\|lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?){0,9}$",
            "type": "string"
          },
          "q": {
            "description": "The query; search operators such as site: and intitle: work.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "search_engine": {
            "description": "Search engine host, e.g. google.com (default), google.de, bing.com, yandex.com, duckduckgo.com. zenserp_list_search_engines lists them.",
            "pattern": "^(?:[a-z0-9-]+\\.)+[a-z]{2,24}$",
            "type": "string"
          },
          "start": {
            "description": "Result offset: 0 (default) first page, 10 second page, 20 third page ... Google serves about 300 results per query.",
            "maximum": 990,
            "minimum": 0,
            "type": "integer"
          },
          "tbs": {
            "description": "Google 'tbs' filter string for what the query field cannot express, e.g. qdr:w (past week).",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_search"
    },
    {
      "description": "The supported geo locations (values for location), as Google's canonical names. The list is long: pass query to keep only entries that contain it, and limit to cap the count. GET /v2/locations.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "limit": {
            "description": "Most entries returned (default 50).",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "description": "Keep only entries whose text contains this (case-insensitive), e.g. 'vienna'.",
            "maxLength": 100,
            "minLength": 2,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "zenserp_search_locations"
    },
    {
      "description": "Product page data from Google Shopping: description, merchant offers, variations. product_id comes from zenserp_shopping_search. With gpc_id (from the same result) it returns the whole product cluster across merchants. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v1/shopping.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gpc_id": {
            "description": "The Google Product Cluster id from the same search result (only valid together with its product_id).",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "product_id": {
            "description": "The product id (PID) from a Google Shopping search result.",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "product_id"
        ],
        "type": "object"
      },
      "name": "zenserp_shopping_product"
    },
    {
      "description": "Google Shopping listings for a query: product, price, merchant, rating, and the product_id for zenserp_shopping_product. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v2/search (tbm=shop).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "device": {
            "description": "Device to emulate.",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "lr": {
            "description": "Limit results to these languages (lr), prefixed with lang_ and joined by |, e.g. lang_fr.",
            "pattern": "^lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?(\\|lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?){0,9}$",
            "type": "string"
          },
          "q": {
            "description": "The query.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "start": {
            "description": "Result offset: 0 (default) first page, 10 second page, 20 third page ... Google serves about 300 results per query.",
            "maximum": 990,
            "minimum": 0,
            "type": "integer"
          },
          "tbs": {
            "description": "Google 'tbs' filter string for what the query field cannot express, e.g. qdr:w (past week).",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_shopping_search"
    },
    {
      "description": "Trending searches from Google Trends for a country, optionally narrowed to given keywords or a category. Trending data covers at most the past 7 days. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v1/trends.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "cat": {
            "description": "Google Trends category id, e.g. 16 News, 7 Finance, 18 Shopping, 20 Sports, 5 Computers & Electronics, 45 Health.",
            "maximum": 2000,
            "minimum": 0,
            "type": "integer"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "geo": {
            "description": "Country code, e.g. US.",
            "pattern": "^[A-Za-z]{2}(-[A-Za-z0-9]{1,3})?$",
            "type": "string"
          },
          "keyword": {
            "description": "Only trends matching these terms (and their related queries). A term that is not trending returns no rows.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          },
          "timeframe": {
            "description": "Window; longer ones all return the same 7-day window for trending searches.",
            "enum": [
              "now 1-H",
              "now 4-H",
              "now 1-d",
              "now 7-d",
              "today 1-m",
              "today 3-m",
              "today 12-m",
              "today 5-y"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "zenserp_trends"
    },
    {
      "description": "Google video results for a query (title, channel, length, link). SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v2/search (tbm=vid).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "device": {
            "description": "Device to emulate.",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "lr": {
            "description": "Limit results to these languages (lr), prefixed with lang_ and joined by |, e.g. lang_fr.",
            "pattern": "^lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?(\\|lang_[A-Za-z]{2,3}(-[A-Za-z]{2,4})?){0,9}$",
            "type": "string"
          },
          "q": {
            "description": "The query.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "start": {
            "description": "Result offset: 0 (default) first page, 10 second page, 20 third page ... Google serves about 300 results per query.",
            "maximum": 990,
            "minimum": 0,
            "type": "integer"
          },
          "tbs": {
            "description": "Google 'tbs' filter string for what the query field cannot express, e.g. qdr:w (past week).",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_video_search"
    },
    {
      "description": "YouTube search results (videos, channels, ads) for a query, optionally by location. SPENDS 1 request of the monthly quota per successful call (failed calls are not charged); do not repeat a call needlessly. GET /v2/search (search_engine=youtube.com).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cache": {
            "description": "true = serve a stored copy when one exists (kept 24 h, NOT charged) and store the reply when not. Default false: every call is fetched live and charged.",
            "type": "boolean"
          },
          "fields": {
            "description": "Only return these top-level keys of the reply (for example organic, paid_results, related_searches). Saves context; the call is charged the same.",
            "items": {
              "maxLength": 60,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "gl": {
            "description": "Country (gl), two letters, e.g. us, de, gb. zenserp_list_countries lists the supported codes. Default: United States.",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string"
          },
          "hl": {
            "description": "Interface language (hl), e.g. en, de, pt-BR. zenserp_list_languages lists the supported codes.",
            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})?$",
            "type": "string"
          },
          "location": {
            "description": "Geolocation of the search, in Google's canonical form, e.g. 'Manhattan,New York,United States' (see zenserp_search_locations). Set it when the result depends on place, especially ads.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "q": {
            "description": "The query.",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "sp": {
            "description": "YouTube 'sp' filter or pagination token, as used on youtube.com.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "zenserp_youtube_search"
    }
  ]
}

What the leaf hashes

{"body":"20711205e0430821ff8f7124aa8a7765eaaefd13674bb3bb8ac75360b7060bbc","id":301654,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793054206696487,"prev":null,"subject":"5b42ba54-2ebf-40b1-b42c-eadc10c31cc7","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x7d86aa575991767e533c439e8d15eeddd475197aae01d44da9a0cf875ae22c89
  2. 0x95f260c038c778f222e5bb4e2f8903d40e0626468ebba637bac3b0660cb64816
  3. 0xa04f2b80645869e8cff809b0cf76e55cd205a73d164e61523492527d7f28150f
  4. 0xe0d6c4dc02f9f343562379ecfec25578fa2b299bde87a97433e0b70d406fb1a5
  5. 0x001a78ed2a0b932990bbe2278877dc67b0394c0ce0d50bb4380b7db642780ace
  6. 0x15deb2e4df3b8edb136025922f5c15b795ade75f4230288627bebdb4ca85352d
  7. 0x3cfaa9ecf6352828d623772da8a2b5f619781837523f8be10518b81ee06b854d
  8. 0x554a713647bc995965776cf679c1fd96d8e25c5ed87334122fddf04166bdec0f
  9. 0xf0c521c76e6895a1d4c2d0bc9b57bf3c58f99d0a19c1129adb4684fbf86456ae
  10. 0x9fa5dbe99ca21068042ed16a3612abec879ae9bc437beeaf788519de22645918
  11. 0xaf10e841089e5989890dc77ffce42a46564d25ef15f30d1e35bf53a495483ad4
  12. 0xab729e4203b650f2a3c15efd6fd44eb2482232373bc1de662fd9d496869eb2d3
  13. 0x0bffb634300aa5609bddaa79e8d31d7cde36c0a5a4465472f809b9f5287e40d2
  14. 0x7721d38652b6444b18e1193824e50490ade04851ce6221771f6e374c4527d80f
  15. 0x15039087bf60ae9b06b756ec3cbc299760e59923a438bbd91e34d105186db0ed
  16. 0x2b6e23e3624a1b66e1d2298cfbce99a93ce6b13d24a58112a71802d79c5f7a76
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON