Every Ordering.Tools menu is automatically discoverable inside ChatGPT, Claude, Perplexity, Gemini and any other AI assistant — with the customer's full menu, allergens, prices and translations on tap. Zero per-venue setup, custom-domain venues included.
When someone asks ChatGPT "order me a margherita pizza in Sofia" or "what's on the menu at Jägerhof tonight?", the assistant has to find a credible, structured answer in the open web — and quickly. Most restaurants are invisible to LLMs because their menus live as PDFs, screenshots, or HTML that the assistant can't parse confidently. Ordering.Tools fixes that by emitting Schema.org-compliant JSON-LD on every page, hosting a free public JSON API for the menu, and shipping ready-made integrations into ChatGPT, Claude and the on-site chat widget.
All of this is on by default for every venue — there's no toggle to find, no premium tier to upgrade to, no extra setup. Custom-domain venues get the same treatment under their own host (e.g. `https://menu.jagerhof.bg/api/public/v1/menu` works exactly like the platform fallback). The only opt-in is for AI-prepared orders: per-venue, off by default, returns a checkout URL the customer must visit to confirm and pay — the platform never auto-charges cards from inside an AI assistant.
Every active venue gets the full discovery stack — JSON-LD on every page, public JSON API, /llms.txt entry, sitemap inclusion, IndexNow ping on every menu change — automatically. No new admin screen, no checklist, no upsell. Custom-domain venues are first-class throughout.
We ship a branded "Ordering.Tools" app for ChatGPT and a public MCP package for Claude. So when a customer types "find a restaurant for tonight" their assistant can actually browse your venues, read your menu, and prepare an order — not just hope to find your website by accident.
The same JSON-LD and JSON API expose every translation you've added — EN, BG, EL, and any other enabled language — in one fetch. Multilingual customers ask Claude in Bulgarian and get answers in Bulgarian, with the right item names and currency formatting.
We never auto-charge customer cards from inside an AI assistant. The handoff always returns a checkout URL the customer opens to confirm and pay on your normal secure checkout page. PSD2/SCA, allergen liability, and consumer protection stay intact — the same way Wolt and Glovo deep-link rather than billing in chat.
Restaurant + Menu + MenuSection + MenuItem + Product + OrderAction + ReserveAction + BreadcrumbList + FAQPage. Custom-domain aware. Includes 14 EU allergens, dietary flags, and every translation you've added.
GET your venue profile and full structured menu without an API key. POST a structured cart and the platform validates everything against the live menu, recomputes prices server-side, and returns a checkout URL.
Hosted Streamable HTTP MCP for OpenAI Apps in ChatGPT, plus the @ordering-tools/mcp npm package for Claude Desktop, Claude Code, Continue, Cursor and any other MCP client.
Drop a one-line script tag onto your site, paste your OpenAI or Anthropic key, and customers get a chat bubble that can read your menu and prepare orders — at your provider rate, not ours.
Three emitters cover the whole venue surface — Restaurant on home + menu, Menu/MenuSection/MenuItem on /menu, Product on each item page. All custom-domain aware. Validated continuously against Google's Rich Results Test.
GET /venues/{slug}, /venues/{slug}/menu, plus POST /venues/{slug}/order behind a per-venue opt-in flag. OpenAPI 3.1 spec at /api/public/v1/openapi.json with embedded Swagger viewer at /api-docs.
Hosted public MCP server speaks the protocol the OpenAI Apps SDK expects, plus the @ordering-tools/mcp npm package distributes the same three tools (findVenue, getMenu, prepareOrder) to any MCP client.
Per-venue chat bubble venues can drop onto any page. Bring your own LLM key (OpenAI or Anthropic). The widget calls our SSE endpoint which validates the cart against the live menu and surfaces a checkout link.
"Find a German restaurant in Sofia I can order from now." The assistant calls findVenue, reads getMenu, and presents 3-5 venues with addresses, opening hours, and a one-tap link to your menu. Your venue lists alongside any competitor on the platform — automatically.
A Bulgarian-speaking customer asks Claude in Bulgarian. Because the API returns every translation in one response, the assistant replies in Bulgarian with the right item names, prices in лв, and Cyrillic allergen labels — without touching your venue dashboard.
A coeliac customer asks the assistant "what's gluten-free at Jägerhof?". The assistant filters by suitableForDiet=GlutenFreeDiet and presents only the safe items, with the full allergen list per dish. Liability stays on the explicitly-marked menu, not on the assistant's guess.
A customer hits your venue site on mobile, taps the chat bubble, types "vegan options under 15 EUR for delivery". The widget calls the menu, filters, and presents a curated short-list — then prepares the order if they say "add the kale bowl and a sparkling water".
Your menu lives at https://menu.jagerhof.bg. The /llms.txt, sitemap, robots.txt, and JSON API all resolve under that hostname — assistants citing your venue link to your domain, not ordering.tools. Brand integrity preserved end-to-end.
You add a new daily special at 10:32. The IndexNow ping fires automatically; Bing's index updates within minutes; Microsoft Copilot starts citing the new dish almost immediately. Without IndexNow this would take days.
AI-driven restaurant discovery is directional, not yet measurable — today only a small share of orders originates from LLM conversations. But the cost of being absent later is higher than the cost of being present now. Three reasons we shipped this end-to-end despite the muted near-term ROI.
It's one thing to be readable by a crawler that might visit; it's another to be a tappable surface inside ChatGPT and Claude that customers actually use. The OpenAI App and Claude MCP turn "we're crawlable" into "you can find us inside the assistant" — that's a real distribution channel with a marketing story, not just passive insurance.
Every active venue benefits automatically. No new admin screen to fill in, no settings flag to toggle for read access, no upsell. Custom-domain venues benefit identically — the per-venue sitemap, robots.txt, and /llms.txt infrastructure is already there from your custom domain. We shoulder the platform-level work; venues do nothing.
The same JSON-LD work that makes us LLM-friendly (Restaurant, Menu, MenuItem, OrderAction, ReserveAction) is exactly what unlocks Google's restaurant rich-results — the visual cards in Google search that show your name, hours, cuisine, photos and a "Reserve" button. We were going to do this for Google anyway; LLMs are bonus consumers of the same data.
Your venue is already discoverable across every major LLM and search engine — included on every plan, no setup needed. Curious how your menu shows up in ChatGPT? Run a test query.