Skip to main content
Glama

Audit a restaurant's own website

audit_restaurant_site
Read-only

Use when a restaurant owner or operator asks how their own website looks to customers, search and AI assistants: whether it has a readable menu with prices, consistent phone numbers, hours, Restaurant structured data, online ordering and reservation links, llms.txt, or blocks AI crawlers. Pass the restaurant's website address. Fetches that page, at most two more pages on the same site (a menu page, and an order or reservations page), robots.txt and llms.txt, and returns the facts it found plus score: the same score out of 100 the maple.inc/restaurant-website-audit page shows, with its group sub-scores and the checks that need work, worth the most points first. Here the Google listing and page-speed groups are left out (this tool reads only the website) and the other groups scale to 100. It obeys robots.txt, does not run JavaScript, opens no third-party pages, and cannot see Google Business Profile, Yelp or other listings, so a fact missing from the result is "not found in the fetched HTML", not absent. Read-only; does not audit maple.inc.

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": {
      "url": "<url>"
    },
    "name": "audit_restaurant_site"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesThe restaurant's own website, for example "https://joespizza.com" or "joespizza.com". Not a Google, Yelp or delivery-app page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond readOnlyHint/openWorldHint the description discloses a crawl budget (the page plus at most two more same-site pages, robots.txt and llms.txt), that it obeys robots.txt, does not run JavaScript, and opens no third-party pages. It also explains the scoring model, that Google listing and page-speed groups are omitted and the remaining groups rescale to 100, and crucially that a missing fact means 'not found in the fetched HTML' rather than absent — a caveat an agent cannot get anywhere else.

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

Conciseness4/5

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

The trigger condition is front-loaded and every clause carries usable information — fetch scope, output shape, scoring, and limitations. The middle portion is dense, heavily comma- and colon-laden prose that takes a careful read to parse, which costs it a point on structure despite near-zero wasted content.

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 define the return value, and it does: fetched facts plus a score out of 100 with group sub-scores and the failing checks ordered by points at stake. Combined with the explicit statement of what it cannot see, an agent has everything needed to call it and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter already documents format and the 'not a Google/Yelp/delivery-app page' constraint, so the schema does the heavy lifting. The description reinforces the same scoping ('Pass the restaurant's website address') and implicitly frames the input as the root page that drives the crawl, which adds modest value over the schema.

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 pairs a specific verb with a specific resource (audit a restaurant's own website) and enumerates exactly what it checks: menu with prices, phone numbers, hours, Restaurant structured data, ordering/reservation links, llms.txt, AI crawler blocking. It also draws a clear boundary that separates it from sibling tools like check_restaurant_systems or get_site_index by stating this reads only the website and not listings.

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 opening clause gives a concrete trigger: a restaurant owner or operator asking how their own site looks to customers, search and AI assistants. It also supplies exclusions — only the restaurant's own site, not a Google/Yelp/delivery-app page, and 'does not audit maple.inc'. It stops short of naming which sibling tool to use for listing or systems questions, so the agent must infer alternatives.

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