Skip to main content
Glama

Restaurant profile

get_restaurant
Read-onlyIdempotent

Fetch a public restaurant profile by slug: name, description, address/city/country, currency, timezone, phone, menu URL, opening hours (7 days, minutes from midnight; a close_minute above 1440 ends after midnight on the next day, e.g. 1560 = 02:00) with isOpenNow evaluated in the venue's own timezone (null when hours are unknown), owner-declared attributes (cuisine, dietary, …; null = not declared, never "no"), derived channels (order · reservation · pickup · delivery), policies derived from the venue's settings (ordering accepted / holiday mode / staff approval / payment timing / scheduled orders, takeaway & delivery ETA and fees, reservation party cap, table calls, tip cap), per-field owner verification timestamps, categories and product count, and graph — the canonical Restaurant Graph node's agent fields: verification state (UNCLAIMED · CLAIMED · SUSPENDED · HIDDEN; VERIFIED only when a human verified it), channel_states (each channel true/false/null with a reason — null means unknown, never "no"; TABLE_AVAILABLE only from tables staff confirmed ready), menu languages with coverage, and payment availability. Only restaurants opted into the public directory are visible.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "slug": "<slug>"
    },
    "name": "get_restaurant"
  }
}

Input Schema

NameRequiredDescriptionDefault
slugYesRestaurant slug, e.g. lily-rose-bistro

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial behavioral context beyond them: the visibility restriction to opted-in venues, timezone-local isOpenNow evaluation, the >1440 close_minute rollover rule, and explicit null conventions ("null = not declared, never 'no'"). The channel_states and verification-state semantics further prevent misreading of ambiguous values.

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 verb and resource are front-loaded, and the density is partly justified because there is no output schema. However, the core content is delivered as one sprawling run-on enumeration of fields; the important caveats (timezone isOpenNow, null semantics, visibility) are buried mid-sentence rather than separated, which hurts scannability.

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 single-parameter read with no output schema, the description does most of the work: it documents the return shape, the null conventions, and the visibility precondition. It stops short of saying what happens on an unknown, suspended, or non-opted-in slug (error vs. empty result), which is the remaining gap.

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% with a single required slug parameter whose example is already in the schema. The description restates "by slug" but adds no new parameter-level meaning such as format constraints or slug resolution behavior when a venue has moved or been suspended. Baseline 3 applies when the schema does the work.

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 and resource with scope: "Fetch a public restaurant profile by slug." The enumerated contents (profile fields, policies, derived channels, graph node) make it clearly distinct from siblings like get_restaurant_menu, list_public_menus, and search_restaurants, and the closing note limits it to directory-opted restaurants.

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?

Usage is only implied: the profile-by-slug framing and the "public directory only" constraint signal a single-venue lookup, but no explicit routing guidance is given (e.g. use get_restaurant_menu for dishes, search_restaurants to find a slug). An agent must infer alternatives from sibling names rather than from the description.

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