{
  "service": "Num Concierge",
  "mcp": "POST /api/concierge/mcp (JSON-RPC 2.0, streamable-HTTP MCP)",
  "tools": [
    {
      "name": "check_availability",
      "description": "Before you request a booking: is the place open at that date and time, and how will Num ask it — straight into the venue's own booking system, by text or email the venue answers with a tap, by phone, by handing the guest the venue's own booking page, or by NUM's human desk."
    },
    {
      "name": "request_table",
      "description": "Ask a venue to hold a table — for a Num member (member_id) or for your own guest by name (guest_name)."
    },
    {
      "name": "booking_status",
      "description": "Bookings YOUR key made, and where each stands: sent | asking | offered | confirmed | declined | no_answer | cancelled, with the timeline of what happened."
    },
    {
      "name": "modify_booking",
      "description": "Change a booking your key made."
    },
    {
      "name": "cancel_booking",
      "description": "Cancel a booking your key made."
    },
    {
      "name": "set_webhook",
      "description": "Register the https URL Num POSTs to whenever one of your bookings moves (sent, asking, offered, confirmed, declined, no_answer, cancelled)."
    },
    {
      "name": "webhook_status",
      "description": "The webhook URL registered for your key and the last ten deliveries: which booking, which event, how many attempts, the HTTP status your server answered, and whether it was delivered or given up on after a day of retries."
    }
  ],
  "auth": "X-Partner-Key REQUIRED on tools/call. No anonymous path: this surface contacts real venues. Discovery (initialize, tools/list) is open. Get a key: POST /api/partner/signup.",
  "guarantees": [
    "Confirm-first: Num asks, the venue decides. request_table never returns a confirmed booking unless the venue's own system confirmed it.",
    "Your bookings only: every read, change and cancel is scoped to the key that made the booking.",
    "No guest contact data: book for a Num member, or for your own guest by name alone. Num never contacts your guest.",
    "No card, no deposit, no no-show fee for the guest — ever.",
    "Kill switch: BOOKDESK_ENABLED stops agents and humans at the same instant, with no deploy.",
    "E.164 or nothing: a venue number without a country code is refused, never guessed.",
    "Webhooks: every move a booking makes is POSTed to your URL, signed (Num-Signature).",
    "Bookings are switched on per key by a person, and fenced: a per-minute and per-day write limit, a daily cap per venue across all partners, and Num dials only numbers it already holds for a place."
  ],
  "vs_opentable": "OpenTable's Booking API is $8,000/month and covers restaurants on OpenTable. This has no monthly fee and covers any place in Num's directory.",
  "accepting_requests": true,
  "read_only_directory": "POST /api/partner/mcp",
  "attribution": "Places © OpenStreetMap contributors (ODbL) and Google, verified by Num. This attribution must be displayed wherever these results are shown.",
  "contact": "partners@itsnum.com"
}