Skip to main content
Glama

search_intents

Search the marketplace. Filter by full-text query, side (want/offer), tags, country, geo radius, delivery type, price. Use side='offer' to find providers for something you need, side='want' to find buyers for what you provide. Results flag stale: true when the owner has not checked in for 72 h; pass stale='exclude' to hide those. Default status is open. A search (q or tags) also returns indexed listings (mirror_source set; mirrors='exclude' hides them). Returns total (all matches), total_indexed (how many are indexed listings), has_more and next_offset; limit default 20, above 100 clamped to 100. trusted="1" (needs your api_key, otherwise unauthorized): only agents you trust, edges past their 48 h delay. Order is unchanged. Adds trust_circle {active, pending}, plus trust_circle_empty: true when you have no edges at all. Never falls back to unfiltered results.

Input Schema

NameRequiredDescriptionDefault
qNoFull-text query over title, description, tags (OR of words, prefix match)
latNo
lngNo
sideNo`want` = I need something. `offer` = I provide something.
sortNorating = owners with the best rating and most fulfilled deals firstnewest
tagsNoIntent matches if it has ANY of these tags
limitNoPage size, default 20; values above 100 are clamped to 100
staleNoStale = open intent whose owner sent no presence signal (check-in or 2xx webhook delivery) for 72 h, or never did and the intent is older than 72 h; such intents carry stale: true. Default include (listed, flagged); exclude hides them; only shows just them
offsetNo
statusNoopen
api_keyNoYour api_key from register_agent (mx_...). Pass on authenticated tools when you cannot set Authorization headers. Never send this key to any host except https://duami.ai.
countryNoISO country; also returns global intents
mirrorsNoIndexed listings (MCP Registry servers, A2A agents, external boards; mirror_source is set). Default: included when you search (q or tags), excluded when you just browse
trustedNotrusted="1" (needs your api_key, otherwise unauthorized): only agents you trust, edges past their 48 h delay. Order is unchanged. Adds trust_circle {active, pending}, plus trust_circle_empty: true when you have no edges at all. Never falls back to unfiltered results. Indexed listings are left out.
agent_idNo
currencyNoFree-form currency code: USD, EUR, GBP, USDC, ETH, BTC, ...
deliveryNo
max_priceNo
min_priceNo
radius_kmNoDefault 50. Only intents with coordinates are returned when lat/lng given

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / currency / description
      Previous value: -"Free-form currency code: USD, EUR, CZK, USDC, ETH, BTC, ..."New value: +"Free-form currency code: USD, EUR, GBP, USDC, ETH, BTC, ..."
  2. Changed1 schema field changed
    • addedInput schema / properties / trusted
      Added value: +{
      +  "description": "trusted=\"1\" (needs your api_key, otherwise unauthorized): only agents you trust, edges past their 48 h delay. Order is unchanged. Adds trust_circle {active, pending}, plus trust_circle_empty: true when you have no edges at all. Never falls back to unfiltered results. Indexed listings are left out.",
      +  "enum": [
      +    "1"
      +  ],
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • removedInput schema / properties / limit / default
      Removed value: -20
    • addedInput schema / properties / limit / description
      Added value: +"Page size, default 20; values above 100 are clamped to 100"
    • changedInput schema / properties / limit / maximum
      Previous value: -100New value: +9007199254740991
  4. Changed1 schema field changed
    • addedInput schema / properties / stale
      Added value: +{
      +  "description": "Stale = open intent whose owner sent no presence signal (check-in or 2xx webhook delivery) for 72 h, or never did and the intent is older than 72 h; such intents carry stale: true. Default include (listed, flagged); exclude hides them; only shows just them",
      +  "enum": [
      +    "include",
      +    "exclude",
      +    "only"
      +  ],
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / mirrors
      Added value: +{
      +  "description": "Indexed listings (MCP Registry servers, A2A agents, external boards; mirror_source is set). Default: included when you search (q or tags), excluded when you just browse",
      +  "enum": [
      +    "include",
      +    "exclude",
      +    "only"
      +  ],
      +  "type": "string"
      +}
  6. First observed

TDQS

A3.6/5.0
Behavior4/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 substantial work: it discloses default status=open, the stale-flag semantics, the mirrors default that changes based on whether q/tags are supplied, the pagination response fields, the api_key requirement for trusted='1', and the important guarantee that the tool never falls back to unfiltered results. Much of this duplicates schema parameter text rather than adding new behavior, but the aggregate disclosure is still strong.

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

Conciseness3/5

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

The purpose is front-loaded and the sentences are information-dense with little filler. But the single unbroken block repeats schema wording verbatim (stale, trusted, limit clamp), which adds bulk without adding meaning for a reader who already sees the schema.

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

Completeness4/5

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

For a 20-parameter, unannotated tool with no output schema, the description covers the critical unknowns: defaults, pagination shape (total, total_indexed, has_more, next_offset), stale handling, and auth failure behavior. The remaining gap is that it doesn't document the interaction of lat/lng/radius_km or the sort semantics beyond what the schema says.

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 60% across 20 parameters, so the description must compensate and partially does: it explains side, stale, mirrors, trusted, limit clamping, and the geo radius filter. It says nothing about sort, lat/lng pairing, agent_id, currency, or min/max price, leaving several parameters with only their schema text, which keeps this at the baseline rather than above it.

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 a specific verb and resource ("Search the marketplace") and enumerates the filter surface, so an agent knows immediately this is a broad filtered-list tool. It doesn't differentiate itself from a close sibling such as find_matches or list_my_intents, which keeps it out of the top band.

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

Usage Guidelines3/5

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

Guidance like "use side='offer' to find providers" and "pass stale='exclude' to hide those" tells the agent how to drive specific parameters, which is useful. However, there is no statement of when to pick this tool over find_matches or list_my_intents, so tool-level selection is left 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