M menio.ru
Начать бесплатно
🔗 Интеграции

🛒 Guest API для AI-агентов

Меню, заказы и брони для AI-ассистентов — публичный REST + MCP, без авторизации

Документация

Guest API для AI-агентов

Публичный API menio.ru, через который AI-ассистенты и агенты действуют от имени гостя: читают меню ресторана, собирают и оформляют заказ, бронируют столик. Авторизация не нужна — это те же операции, что доступны гостю на сайте меню.

Управление своими данными ресторатора (редактирование меню, цены, статистика) — отдельный MCP-сервер с API-ключами: см. MCP Server Guide.

Адресация ресторана

Ресторан адресуется кодом локации — это сегмент URL меню в верхнем регистре. Если меню открывается по menio.ru/MYCAFE, код — MYCAFE. Тот же код зашит в QR-коды столиков.

Быстрый старт (REST)

# Что умеет API
curl https://api.menio.ru/llm/v1

# Меню ресторана на русском
curl "https://api.menio.ru/llm/v1/locations/MYCAFE/menu?lang=ru"

# Оформить заказ навынос
curl -X POST https://api.menio.ru/llm/v1/locations/MYCAFE/orders \
  -H 'Content-Type: application/json' \
  -d '{
    "items": [{"itemId": "abc123", "quantity": 2}],
    "orderType": "pickup",
    "customer": {"name": "Гость", "phone": "+995555123456"},
    "language": "ru"
  }'
# → {"accepted": true, "orderId": "…", "total": 24, "statusUrl": "…"}

# Статус заказа (orderId — секретный токен доступа)
curl https://api.menio.ru/llm/v1/locations/MYCAFE/orders/{orderId}

Полная спецификация: OpenAPI 3.1.

Эндпоинты

Метод Путь Что делает
GET /llm/v1/locations/{DOMAIN}/menu?lang=xx Меню: категории, блюда, цены, варианты и допы, валюта, способы получения
GET /llm/v1/locations/{DOMAIN}/items/{itemId} Одно блюдо с опциями
POST /llm/v1/locations/{DOMAIN}/orders Оформить заказ (сервер валидирует состав и считает суммы)
GET /llm/v1/locations/{DOMAIN}/orders/{orderId} Статус заказа, номер, позиции
GET /llm/v1/locations/{DOMAIN}/reservations/availability?start=&durationMinutes= Свободные/занятые столики по схеме зала
POST /llm/v1/locations/{DOMAIN}/reservations Заявка на бронь (pending до подтверждения рестораном)
GET / DELETE /llm/v1/locations/{DOMAIN}/reservations/{id} Статус / отмена брони

Подключение по MCP

Сервер: https://api.menio.ru/llm/mcp — Model Context Protocol, streamable HTTP, stateless, без авторизации.

Конфигурация для Claude Desktop / Claude Code и совместимых клиентов:

{
  "mcpServers": {
    "meni-guest": {
      "type": "http",
      "url": "https://api.menio.ru/llm/mcp"
    }
  }
}

Инструменты: get_menu, get_item, create_order, get_order_status, check_table_availability, create_reservation, get_reservation_status, cancel_reservation.

Типовые сценарии:

  • Заказ: get_menucreate_orderget_order_status (4-значный номер появляется через пару секунд).
  • Бронь столика: check_table_availability (столы со схемы зала, свободен/занят на выбранное время) → create_reservation с tableIdget_reservation_status (ресторан подтверждает заявку) → при необходимости cancel_reservation.

Правила и гарантии

  • Заказ валидируется по живому меню: несуществующее блюдо, вариант или доп — ошибка 400 со списком проблем; цены и итог считает сервер, у агента нет способа «назначить» цену.
  • Для самовывоза и доставки обязательны имя и телефон гостя; для доставки — адрес.
  • orderId / reservationIdсекретные токены: по ним проверяется статус и отменяется бронь. Не публикуйте их.
  • Заказы и брони попадают ресторану в реальном времени — в админку, на кухонный экран и в уведомления, как обычные заказы с сайта.
  • Брони гостя имеют статус pending, пока ресторан не подтвердит их в админке.

Машиночитаемое обнаружение

  • https://menio.ru/llms.txt — краткая карта API для LLM;
  • https://menio.ru/.well-known/mcp.json — манифест MCP-серверов;
  • GET https://api.menio.ru/llm/v1 — discovery-документ с примерами.