Skip to main content
Glama

Search everything by name

search
Read-onlyIdempotent

Search venues, travel destinations and places inside destinations by name or keyword. Returns results of id, title and url; pass an id to fetch for the full page. For filters use search_venues, search_menus or destination_listings.

Input Schema

NameRequiredDescriptionDefault
queryYesA name or keywords, e.g. 'whale watching' or 'Acme Bistro'.

Output Schema

NameRequiredDescriptionDefault
reasonNo
statusNo
resultsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed26 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / city
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Narrow VENUES to this city (case-insensitive); destinations have no city and are not narrowed by it. Call list_cities for the exact values."
      -}
    • removedInput schema / properties / cursor
      Removed value: -{
      -  "default": 0,
      -  "description": "Number of items to skip; pass `next_cursor` from the previous page.",
      -  "maximum": 10000,
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedInput schema / properties / kind
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "enum": [
      -        "venue",
      -        "destination"
      -      ],
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Scope to 'venue' or 'destination'; omit to return both, each tagged kind."
      -}
    • removedInput schema / properties / limit
      Removed value: -{
      -  "default": 20,
      -  "description": "Maximum number of items to return.",
      -  "maximum": 50,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • removedInput schema / properties / query / anyOf
      Removed value: -[
      -  {
      -    "maxLength": 256,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / query / default
      Removed value: -null
    • changedInput schema / properties / query / description
      Previous value: -"Match venue names/descriptions and destination names; omit for all."New value: +"A name or keywords, e.g. 'whale watching' or 'Acme Bistro'."
    • addedInput schema / properties / query / maxLength
      Added value: +256
    • addedInput schema / properties / query / type
      Added value: +"string"
    • addedInput schema / required
      Added value: +[
      +  "query"
      +]
    • removedOutput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / description
      Previous value: -"The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from."New value: +"OpenAI search results: each id can be passed to fetch."
    • removedOutput schema / properties / item
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": true,
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Item"
      -}
    • removedOutput schema / properties / items
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "items": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Items"
      -}
    • removedOutput schema / properties / pagination
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": false,
      -      "description": "The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.",
      -      "properties": {
      -        "cursor": {
      -          "title": "Cursor",
      -          "type": "integer"
      -        },
      -        "limit": {
      -          "title": "Limit",
      -          "type": "integer"
      -        },
      -        "next_cursor": {
      -          "anyOf": [
      -            {
      -              "type": "integer"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null,
      -          "title": "Next Cursor"
      -        },
      -        "total": {
      -          "title": "Total",
      -          "type": "integer"
      -        }
      -      },
      -      "required": [
      -        "limit",
      -        "cursor",
      -        "total"
      -      ],
      -      "title": "Pagination",
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / reason / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / reason / default
      Removed value: -null
    • removedOutput schema / properties / reason / title
      Removed value: -"Reason"
    • addedOutput schema / properties / reason / type
      Added value: +"string"
    • addedOutput schema / properties / results
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "title",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / sample
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "boolean"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Sample"
      -}
    • removedOutput schema / properties / source
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.",
      -  "properties": {
      -    "approved_at": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Approved At"
      -    },
      -    "content_version": {
      -      "title": "Content Version",
      -      "type": "integer"
      -    },
      -    "powered_by": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Powered By"
      -    },
      -    "source": {
      -      "title": "Source",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "content_version",
      -    "source"
      -  ],
      -  "title": "SourceReference",
      -  "type": "object"
      -}
    • removedOutput schema / properties / status / title
      Removed value: -"Status"
    • changedOutput schema / required
      Previous value: -[
      -  "status"
      -]New value: +[
      +  "results"
      +]
    • removedOutput schema / title
      Removed value: -"PublicResponse"
  2. Changed2 schema fields changed
    • changedInput schema / properties / query / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 256,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / sample
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Sample"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive) and closed-world semantics, so the description only needs to add operational context. It does add the return shape (id, title, url) and the next-step action (pass an id to fetch for the full page), which is genuinely useful beyond annotations. It does not mention result limits or ranking, a minor gap.

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

Conciseness5/5

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

Three tight sentences: scope, return/next-step, then alternative tools. Front-loaded with what it searches and zero filler; each sentence earns its place.

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 one-parameter search tool with an output schema (which handles return details), the description supplies scope, return summary, follow-up (fetch), and sibling routing. Nothing an agent needs to invoke it correctly is missing.

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 description coverage is 100%, so the single query parameter is already fully documented with examples. The description restates the name/keyword intent but adds no syntax, matching behavior, or formatting guidance beyond the schema. Baseline 3 applies when the schema carries the parameter burden.

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 (search) and resource scope (venues, travel destinations, places inside destinations), and explicitly distinguishes itself from the filtered siblings search_venues, search_menus, and destination_listings. An agent can select it without opening any other schema.

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?

Clearly implies when to use by contrast: 'For filters use search_venues...', which routes filtering needs elsewhere. It does not explicitly state when-not or prerequisites, but the alternative routing is concrete enough to guide selection.

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