Skip to main content
Glama

What agents are asking for

what_agents_are_asking_for
Read-onlyIdempotent

What agents searched this directory for, for deciding which x402 service to build or list. Terms ranked by how many distinct days they were asked, each with catalogue_top: the listings our own search already returns for it. A term being asked does not mean nothing serves it. The window ends a week behind live while the paid tier is on sale (a day when it is not; delay_hours and window_ends_at in the response say which); test traffic, sellers searching their own listings and identifying terms are excluded; floor: a term appears once at least 1 distinct non-seller client IP asked it. Client counts are IP ceilings, never buyer counts. Paged: limit (default 25), offset, next_offset. Free, read-only.

Input Schema

NameRequiredDescriptionDefault
limitNoTerms per page, in rank order.
offsetNoWhere to start; each reply gives next_offset.

Output Schema

NameRequiredDescriptionDefault
noteNo
pageNo
top_needsYes
read_firstNo
side_listsNo
delay_hoursYes
terms_totalNo
window_daysYes
total_queriesYes
window_ends_atNo
k_anonymity_unitNo
k_anonymity_floorNo
scripted_rotationNo
distinct_client_ipsNo
top_category_filtersNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedOutput schema / properties / named_listing_lookups
      Removed value: -{
      -  "items": {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / side_lists
      Added value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  2. Changed21 schema fields changed
    • changedInput schema / properties / limit / default
      Previous value: -100New value: +25
    • changedInput schema / properties / limit / description
      Previous value: -"Terms per reply, in rank order (default 100)."New value: +"Terms per page, in rank order."
    • changedInput schema / properties / offset / description
      Previous value: -"Where to start in the ranked list; each reply says next_offset."New value: +"Where to start; each reply gives next_offset."
    • removedOutput schema / properties / delay_hours / description
      Removed value: -"How far behind live the window ends."
    • removedOutput schema / properties / distinct_client_ips / description
      Removed value: -"A ceiling on independent demand, never a count of buyers."
    • removedOutput schema / properties / k_anonymity_floor / description
      Removed value: -"Distinct non-seller client IPs a term needs before it is reported at all."
    • removedOutput schema / properties / named_listing_lookups / description
      Removed value: -"Searches for one listed service by its own name, asked almost only by clients that searched nothing else: listed apart, same fields as top_needs, not demand. Rule in named_listing_lookup_rule."
    • removedOutput schema / properties / note / description
      Removed value: -"The exclusions, stated in words."
    • removedOutput schema / properties / page / description
      Removed value: -"offset, limit, returned, terms_total, next_offset (null on the last page)."
    • removedOutput schema / properties / read_first / description
      Removed value: -"How to read this feed, in a few lines. Read before the data."
    • removedOutput schema / properties / scripted_rotation / description
      Removed value: -"Terms asked by many client IPs almost all of which searched only once in the whole window (one caller on rotating addresses): listed apart, same fields as top_needs plus share_single_search_client_ips, not demand. Rule in scripted_rotation_rule."
    • removedOutput schema / properties / terms_total / description
      Removed value: -"How many terms the window publishes; top_needs holds one page of them."
    • removedOutput schema / properties / top_needs / description
      Removed value: -"Terms ranked by how many distinct days they were asked."
    • removedOutput schema / properties / top_needs / items / properties / buyer_client_ips / description
      Removed value: -"Distinct non-seller client IPs; a ceiling on independent askers, never a count of buyers."
    • removedOutput schema / properties / top_needs / items / properties / catalogue_status / description
      Removed value: -"not_checked_yet means NOT searched yet, not that nothing exists."
    • removedOutput schema / properties / top_needs / items / properties / catalogue_top / description
      Removed value: -"The three listings this directory's own search returned for the term (id, name, status, price_amount), searched at catalogue_checked_at_iso. Null only when catalogue_status is not_checked_yet."
    • removedOutput schema / properties / top_needs / items / properties / distinct_days / description
      Removed value: -"UTC calendar dates on which non-sellers asked it."
    • removedOutput schema / properties / top_needs / items / properties / self_monitoring_searches / description
      Removed value: -"Of `searches`, how many came from clients that also edit listings here."
    • removedOutput schema / properties / total_queries / description
      Removed value: -"Every search in the window, before exclusions."
    • removedOutput schema / properties / window_days / description
      Removed value: -"Length of the reported window."
    • removedOutput schema / properties / window_ends_at / description
      Removed value: -"Unix seconds at which the window closes."
  3. Changed1 schema field changed
    • addedOutput schema / properties / scripted_rotation
      Added value: +{
      +  "description": "Terms asked by many client IPs almost all of which searched only once in the whole window (one caller on rotating addresses): listed apart, same fields as top_needs plus share_single_search_client_ips, not demand. Rule in scripted_rotation_rule.",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  4. Changed4 schema fields changed
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 100,
      +  "description": "Terms per reply, in rank order (default 100).",
      +  "maximum": 1000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Where to start in the ranked list; each reply says next_offset.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / page
      Added value: +{
      +  "description": "offset, limit, returned, terms_total, next_offset (null on the last page).",
      +  "type": "object"
      +}
    • addedOutput schema / properties / terms_total
      Added value: +{
      +  "description": "How many terms the window publishes; top_needs holds one page of them.",
      +  "type": "integer"
      +}
  5. Changed1 schema field changed
    • addedOutput schema / properties / named_listing_lookups
      Added value: +{
      +  "description": "Searches for one listed service by its own name, asked almost only by clients that searched nothing else: listed apart, same fields as top_needs, not demand. Rule in named_listing_lookup_rule.",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  6. Changed2 schema fields changed
    • addedOutput schema / properties / top_needs / items / properties / catalogue_status
      Added value: +{
      +  "description": "not_checked_yet means NOT searched yet, not that nothing exists.",
      +  "enum": [
      +    "checked",
      +    "search_returned_nothing",
      +    "not_checked_yet"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / top_needs / items / properties / catalogue_top / description
      Previous value: -"The three listings this directory's own search returns for the term right now (id, name, status, price_amount). Null beyond the first terms checked: search it yourself."New value: +"The three listings this directory's own search returned for the term (id, name, status, price_amount), searched at catalogue_checked_at_iso. Null only when catalogue_status is not_checked_yet."
  7. Changed5 schema fields changed
    • changedOutput schema / properties / read_first / description
      Previous value: -"How to read this feed, in three lines. Read before the data."New value: +"How to read this feed, in a few lines. Read before the data."
    • addedOutput schema / properties / top_needs / items / properties / buyer_client_ips
      Added value: +{
      +  "description": "Distinct non-seller client IPs; a ceiling on independent askers, never a count of buyers.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / top_needs / items / properties / catalogue_top
      Added value: +{
      +  "description": "The three listings this directory's own search returns for the term right now (id, name, status, price_amount). Null beyond the first terms checked: search it yourself.",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / top_needs / items / properties / days_asked
      Removed value: -{
      -  "type": "integer"
      -}
    • addedOutput schema / properties / top_needs / items / properties / distinct_days
      Added value: +{
      +  "description": "UTC calendar dates on which non-sellers asked it.",
      +  "type": "integer"
      +}
  8. Changed1 schema field changed
    • addedOutput schema / properties / read_first
      Added value: +{
      +  "description": "How to read this feed, in three lines. Read before the data.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  9. Changed2 schema fields changed
    • removedOutput schema / properties / needs_not_yet_persistent
      Removed value: -{
      -  "description": "Terms asked on a single day so far: same fields and same exclusions as top_needs, published unranked rather than dropped. On a window still filling these are usually the descriptive needs, because a persistence rule selects for monitors that poll daily. Read both arrays to see the whole market.",
      -  "items": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "clients": {
      -        "type": "integer"
      -      },
      -      "days_asked": {
      -        "type": "integer"
      -      },
      -      "q": {
      -        "type": "string"
      -      },
      -      "searches": {
      -        "type": "integer"
      -      },
      -      "self_monitoring_searches": {
      -        "description": "Of `searches`, how many came from clients that also edit listings here.",
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "q"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / properties / top_needs / description
      Previous value: -"Terms asked on two or more distinct days, ranked by that count. Persistence, not volume: a burst occupies one day and cannot rank."New value: +"Terms ranked by how many distinct days they were asked."
  10. Changed2 schema fields changed
    • addedOutput schema / properties / needs_not_yet_persistent
      Added value: +{
      +  "description": "Terms asked on a single day so far: same fields and same exclusions as top_needs, published unranked rather than dropped. On a window still filling these are usually the descriptive needs, because a persistence rule selects for monitors that poll daily. Read both arrays to see the whole market.",
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "clients": {
      +        "type": "integer"
      +      },
      +      "days_asked": {
      +        "type": "integer"
      +      },
      +      "q": {
      +        "type": "string"
      +      },
      +      "searches": {
      +        "type": "integer"
      +      },
      +      "self_monitoring_searches": {
      +        "description": "Of `searches`, how many came from clients that also edit listings here.",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "q"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / top_needs / description
      Previous value: -"Terms ranked by how many distinct days they were asked."New value: +"Terms asked on two or more distinct days, ranked by that count. Persistence, not volume: a burst occupies one day and cannot rank."
  11. Changed1 schema field changed
    • removedOutput schema / properties / top_lookups
      Removed value: -{
      -  "description": "Endpoint URLs agents asked us to resolve.",
      -  "items": {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
  12. Changed2 schema fields changed
    • removedOutput schema / properties / top_zero_result_terms
      Removed value: -{
      -  "description": "What agents searched for and found nothing — the gaps in this market.",
      -  "items": {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "window_days",
      -  "delay_hours",
      -  "total_queries",
      -  "top_needs",
      -  "top_zero_result_terms"
      -]New value: +[
      +  "window_days",
      +  "delay_hours",
      +  "total_queries",
      +  "top_needs"
      +]
  13. Added

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing the data window lag, the delay_hours and window_ends_at fields that reveal it, exclusion rules (test traffic, sellers searching their own listings, identifying terms), the minimum-distinct-IP floor, and critically that client counts are IP ceilings rather than buyer counts. This is exactly the interpretive context an agent needs and cannot get from structured fields.

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?

Purpose and interpretation caveats are front-loaded, and each clause carries real meaning for reading the data. It is dense, with nested parentheses and semicolon chaining, but almost nothing is filler; a lighter structure would help readability without shortening it.

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 tool whose output is easy to misread (rankings driven by IP-capped client counts), the description supplies the measurement caveats, window semantics, exclusion rules, and paging behavior. With an output schema already present, return-field documentation is not required, yet it names key fields anyway.

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

Parameters3/5

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

Schema coverage is 100%, so limit and offset are already documented, and the description largely restates them plus the default (limit 25) and the next_offset convention. It adds only marginal meaning over the schema, so the baseline 3 applies.

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?

The opening sentence states the resource precisely: aggregated search terms that agents used in this directory, plus the decision it supports (which x402 service to build or list). It is not a clean verb+resource phrasing and never names its siblings, but the sibling set (find_paid_service, get_service_details, resolve_endpoint) is unrelated enough that confusion is unlikely.

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 gives clear intended use — deciding what service to build or list — which is a genuine when-to-use signal for a demand-research tool. It adds a useful caveat ('A term being asked does not mean nothing serves it') to prevent misreading demand as a gap, but names no explicit alternatives or when-not conditions.

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.