Developers

An MCP server for every restaurant menu

tamr gives developers and AI agents an MCP server for every restaurant menu on tamr, public and read-only, plus an owner's MCP server that works with an API key. Around them are two agent skills, an llms.txt file, markdown copies of our pages and signed webhooks.

Six things are open to developers today. Menus are read through MCP, owners reach their own data with an API key, and webhooks post conversation events to your own systems. tamr has no public API for orders or payments.

  • Menu MCP server

    Every restaurant has one at its own address, like ember.tamr.link/mcp. Search the menu, read a dish, check allergens and branches, and ask the AI waiter. No key needed.

  • Owner MCP server

    tamr.link/api/mcp, with an API key. The same tools as Ask Tamr AI: questions, insights and menu changes, which apply only after a confirm step.

  • Agent skills

    browse-menu and ask-waiter, published under /.well-known/agent-skills/ and listed in index.json with a sha256 digest for each file.

  • llms.txt

    tamr.link/llms.txt and llms-full.txt describe tamr for AI assistants. Each restaurant's address has its own, with its menus, sections and branches.

  • Pages as markdown

    Ask for one of our main pages with Accept: text/markdown and you get a markdown copy with the summary, the questions and answers and related links.

  • Webhooks

    JSON to your HTTPS address for two conversation events, conversation.server_request and conversation.escalated, signed with a secret you choose.

An AI agent can read any tamr menu in two ways: follow one of the two published skills, browse-menu and ask-waiter, or call the restaurant's menu MCP server directly. Both only return what the restaurant has published, and the server is read-only.

allergens_check answers dish by dish. An answer of unknown means the restaurant has not tagged enough to say, and an agent must never treat it as safe.

  • waiter_ask

    Asks the restaurant's AI waiter in any language and returns its answer and the dishes it suggested. It is there only when the menu has an AI waiter.

  • venue_info

    The restaurant's name, links, published menus with their categories, and each branch with its address, phone and opening hours.

An owner or admin makes an API key in Settings, under API keys, and keys do not need Pro. Each key starts with tamr_, is shown once and is stored only as a hash. You choose one permission for it when you make it, and today it works with the owner's MCP server.

  • Owner MCP server

    100 requests a minute per key. Writes need a key with write access made by an admin, and a confirm token from a first preview call.

  • Menu MCP servers

    100 requests a minute per IP address, and up to 64 KB in each request. Asking the AI waiter also follows the menu's own chat limits.

  • Replacing a key

    Create a new key, move your client to it, then revoke the old one.

What you can call, how to check a webhook, and where keys come from.

Does tamr have an MCP server?

Yes, two. Every restaurant menu on tamr has a public, read-only MCP server at its own address, for example ember.tamr.link/mcp, with tools to search the menu, check allergens and ask the AI waiter. The owner's server at tamr.link/api/mcp works with an API key and reaches the restaurant's own data.

Can I read a restaurant's menu without an API key?

Yes. The menu MCP server on each restaurant's address needs no key, because it only returns what the restaurant already published: dishes, prices, allergens, diet tags and branches. It is read-only and limited to 100 requests a minute from one IP address. An allergen answer of unknown means the restaurant has not tagged enough, never that the dish is safe.

Where do I create an API key, and which plan do I need?

An owner or admin creates keys in Settings, API keys. The key starts with tamr_ and is shown once, so copy it then. Keys do not need Pro. Today a key works with the owner's MCP server only. To replace a key, create a new one and revoke the old one.

How do I check that a webhook came from tamr?

Add a secret to the webhook in your location's settings. tamr then signs every request with HMAC-SHA256. The x-tamr-signature header signs the body, and x-tamr-signature-v2 signs the x-tamr-timestamp value, a full stop and the body. Compute the same value with your secret and compare. Requests without a matching signature did not come from tamr.

Does tamr have a REST API for orders or payments?

No. tamr takes no payments, and group orders reach a POS only through a POS connection that we set up with the restaurant. The ways to build on tamr today are the two MCP servers, the agent skills, the llms.txt file, the markdown copies of our pages and the webhooks. If you need something that is not here, tell us what you are building.

Can an AI agent change a restaurant's menu?

Only with the owner's API key, and only if the key has write access and was made by an admin. Every change is a preview first. The agent gets a one-time confirm token and must call again with it before anything is saved, so nothing on the menu changes by accident.

Put your own menu live for free, make an API key in Settings, and point your agent at your restaurant's MCP server.