Skip to main content
Glama

Search menus across venues

search_menus
Read-onlyIdempotent

Search menu items across all published venues by text, city, required dietary tags and allergens to avoid, each result tagged with its venue so an agent can rank venues in one call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoOnly return items from venues in this city (case-insensitive); call list_cities for the exact values.
limitNoMaximum number of items to return.
queryNoText to match against menu item names and descriptions.
cursorNoNumber of items to skip; pass `next_cursor` from the previous page.
allergensNoExclude items that declare any of these allergens (spelling-insensitive).
dietary_tagsNoRequire ALL of these dietary tags (case- and separator-insensitive).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemNo
itemsNo
reasonNo
sampleNo
sourceNoFR-13: which approved revision an answer was read from, and how fresh. ``source`` is ``approved-content-revision:<id>`` for every read that answers from one venue, and the literal ``directory`` for the two cross-venue reads, which have no single revision to cite.
statusYes
paginationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / allergens / maxItems
      Added value: +8
    • addedInput schema / properties / dietary_tags / maxItems
      Added value: +8
    • 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"
      +}
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds useful behavioral context beyond annotations: it is limited to published venues and results are tagged with their venue, which shapes how an agent can consume the response. No contradiction with annotations.

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?

The entire definition is one sentence that front-loads the action and resource, then efficiently lists filter dimensions and the result's ranking value. Every clause earns its place; there is no filler or repetition of schema details.

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 an optional-parameter search tool with a full input schema, existing output schema, and annotations covering safety, the description is complete. It states the scope, filter dimensions, result tagging, and the intended agent workflow in enough detail for correct selection and invocation.

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 all six parameters are already documented in the schema. The description mentions text, city, dietary tags, and allergens but adds no parameter-level syntax or behavior beyond what the schema provides. Baseline 3 is appropriate.

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?

The description names a specific verb and resource: 'Search menu items across all published venues'. It also clarifies scope (all published venues, not a single venue) and the distinguishing result behavior (each result tagged with its venue), which separates it from sibling tools like venue_menu_search and search_venues.

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?

The description conveys clear cross-venue usage context with 'across all published venues' and the explicit use case 'so an agent can rank venues in one call'. It does not explicitly name alternatives or state when not to use this tool, but the cross-venue framing implies it is the right choice for global menu comparison.

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