Skip to main content
Glama

Search listings

search_listings
Read-onlyIdempotent

Search active listings in any of the six languages by free text and filters. "offer" = someone provides a service; "request" = someone needs work done. Returns structured fields for comparison. Each result has match: "all_words", "some_words" (no listing had every word) or "similar_in_meaning". Results similar in meaning come only when no listing has every word, instead of any-word matches (understood.similar_in_meaning counts them): they are about the same thing but are not word matches, so tell your person that. With no results the answer carries nothing_found; when no listing has every word, no_full_match. Tell your person what it says (the board carries online services only) and offer what it suggests, saving the search or a listing of their own, rather than concluding the board has nothing. Words that name no particular work ("work", "service", «работы») are not searched: they come back in understood.ignored_words. language only sets the language of the texts you get back; it does not pick authors who work in it: filter by work_language for that. max_price and min_price compare the listed amount as it is: an hourly price per hour, a "from" price as its minimum. Read price_type before telling your person a listing fits the budget. max_delivery_days keeps offers delivered within that many days and requests due within that many days from today; listings that state no term (hourly offers) stay, so read delivery_days and needed_by.

Input Schema

NameRequiredDescriptionDefault
kindNo
sortNorelevance (default with a query), new, price_asc, price_desc (prices compared across currencies)
limitNo
queryNoFree text in any language, e.g. "logo designer" or "перевод договора". A budget in the text ("under 500 EUR") becomes a price filter unless you pass max_price.
offsetNo
categoryNoai-automation: AI agents, chatbots on language models, MCP servers, n8n/Make/Zapier automations; development: websites, apps and other software; it-support: fixing and setting up computers, servers and accounts.
currencyNoCurrency of max_price/min_price; listings in other currencies are compared at the day’s exchange rate
languageNoLanguage for texts in the response (default: your person’s language). It does not pick authors who work in it: use work_language for that
lang_pairNoTranslation direction "from>to", e.g. "es>de" (Spanish into German)
max_priceNoUpper bound for the listed price or budget, compared as it is: an hourly price per hour, a "from" price as its minimum (read price_type)
min_priceNoLower bound, e.g. the smallest budget worth taking; compared as it is: an hourly price per hour, a "from" price as its minimum (read price_type)
work_languageNoISO code of a language the author works in, e.g. "en", "es" (language below only translates the texts)
max_delivery_daysNoDone or due within this many days: offers whose delivery_days is at most this, requests whose needed_by is no later than this many days from today. Listings that state no term (hourly offers) stay in the results: read delivery_days and needed_by

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / max_delivery_days
      Added value: +{
      +  "description": "Done or due within this many days: offers whose delivery_days is at most this, requests whose needed_by is no later than this many days from today. Listings that state no term (hourly offers) stay in the results: read delivery_days and needed_by",
      +  "maximum": 365,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. Changed4 schema fields changed
    • changedInput schema / properties / language / description
      Previous value: -"Language for texts in the response (default: your person’s language)"New value: +"Language for texts in the response (default: your person’s language). It does not pick authors who work in it: use work_language for that"
    • changedInput schema / properties / max_price / description
      Previous value: -"Upper bound for price/budget"New value: +"Upper bound for the listed price or budget, compared as it is: an hourly price per hour, a \"from\" price as its minimum (read price_type)"
    • changedInput schema / properties / min_price / description
      Previous value: -"Lower bound, e.g. the smallest budget worth taking"New value: +"Lower bound, e.g. the smallest budget worth taking; compared as it is: an hourly price per hour, a \"from\" price as its minimum (read price_type)"
    • changedInput schema / properties / work_language / description
      Previous value: -"ISO code of a working language, e.g. \"en\", \"es\""New value: +"ISO code of a language the author works in, e.g. \"en\", \"es\" (language below only translates the texts)"
  3. Changed2 schema fields changed
    • addedInput schema / properties / category / description
      Added value: +"ai-automation: AI agents, chatbots on language models, MCP servers, n8n/Make/Zapier automations; development: websites, apps and other software; it-support: fixing and setting up computers, servers and accounts."
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "translation",
      -  "tutoring",
      -  "design",
      -  "development",
      -  "it-support",
      -  "writing-marketing",
      -  "video",
      -  "consulting",
      -  "other"
      -]New value: +[
      +  "translation",
      +  "tutoring",
      +  "design",
      +  "development",
      +  "ai-automation",
      +  "it-support",
      +  "writing-marketing",
      +  "video",
      +  "consulting",
      +  "other"
      +]
  4. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, closed-world, so the bar is low, yet the description goes far beyond: it explains the three match tiers, the fallback rule that similar_in_meaning only fires when no listing has every word, the nothing_found and no_full_match sentinels, ignored_words, and that prices are compared as stated and cross-currency at the day's rate. This is exactly the behavior an agent needs before interpreting results.

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?

Purpose is front-loaded in the first sentence, which is good, but the remainder is one dense paragraph that hops between match tiers, sentinels, language scoping, and three separate price/term rules. The length is justified by the tool's complexity, but the tangled run-on phrasing (e.g. the similar_in_meaning sentence) hurts scannability.

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?

There is no output schema, so the description must carry the return-value burden, and it does: it names the match field and its values, the nothing_found/no_full_match answers, understood.ignored_words, and the result fields price_type, delivery_days and needed_by. An agent has enough to call and interpret the tool without the schema.

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 77%, so the schema largely documents the 13 parameters itself. The description reinforces a few key semantics (language vs work_language, price comparison, the max_delivery_days survival rule), but much of that duplicates existing schema descriptions rather than adding new meaning.

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 gives a specific verb and resource — search active listings by free text and filters — and immediately disambiguates the two listing kinds (offer vs request). It is clearly distinguishable from the singular get_listing and get_author siblings, though it never names them explicitly.

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 rich context for using results: read price_type before claiming a listing fits the budget, read delivery_days and needed_by because term-less listings survive the filter, and use work_language rather than language to filter by author language. What is missing is any explicit statement of when to pick this over the sibling get_* tools, but the operating context is clear throughout.

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.