Taste Match

resmi

İsviçre'de ve çevresinde restoranları kolayca bulun ve rezervasyon yapın.

Taste Match MCP ile neler yapabilirsiniz?

  • Önce eşleşme sayısını öğrenin — Satırları getirmeden önce bir filtre kümesine uyan kaç mekân olduğunu count_restaurants kullanarak sorun.
  • Özelliklere göre filtreleyin — Mekânları konuma, açık oldukları güne veya sundukları hizmete, mutfağa, menü ve içecek seçeneklerine ya da rezervasyon yapılabilirliğine göre filter_restaurants ile arayın.
  • Belirli bir yemeği bulun — Menüleri, konuğun kendi ifadeleriyle belirttiği bir yemek için arayın ve hangi mekânlarda sunulduğunu search_dishes ile görün.
  • Mekânı adına göre arayın — Restoranları adına veya bilinen adlarına göre, isteğe bağlı olarak bir bölgeyle sınırlandırarak search_restaurants ile bulun.
  • Popüler seçenekleri görün — Belirli bir bölgedeki en çok beğenilen mekânları list_popular_restaurants ile listeleyin.
  • Benzer yerler bulun — Elinizde anahtarı bulunan bir mekânın damak zevkine yakın mekânları list_similar_restaurants kullanarak bulun.

Barındırılan MCP Sunucusu

npx add-mcp 'https://mcp.tastematch.io/'

Claude Code, Codex, Cursor ve daha fazlasına kurulur

Dokümantasyon

Genel hizmet URL'sihttps://mcp.tastematch.io/
Gizlilik bildirimi URL'sihttps://tastematch.io/mcp/privacy.html

İsviçre'de ve daha uzaklarda size en uygun restoranları bulmanıza yardımcı olan Streamable HTTP MCP Toolkit. Yukarıdaki URL'yi kullanarak bir MCP istemcisine ekleyin. Keşif herkese açıktır.

KİMLİK DOĞRULAMA

MCP sunucumuza erişmek için hizmetinizin, /.well-known/oauth-protected-resource/mcp içinde authorization_servers altında adı geçen yetkilendirme sunucusunda DCR (OAuth 2.0 Dynamic Client Registration) kullanarak kendi kaydını oluşturması gerekir; bu sunucunun kendi meta veri belgesi registration_endpoint bilgisini içerir.

Kimliği doğrulanmış uç noktaları desteklemek için kullanıcılarınızın, /.well-known/oauth-protected-resource/mcp içinde scopes_supported tarafından listelenen kapsamları isteyerek aynı yetkilendirme sunucusunda OpenID Connect (PKCE ile yetkilendirme kodu) kullanarak kimlik doğrulaması yapması gerekir.

  • 🟢 Oturum açma gerekmez: araç herkese yanıt verir.
  • 🟡 Bazı bağımsız değişkenler için oturum açma gerekir; ör. list_recommended_restaurants resolve_key. Diğer çağrılar herkese açıktır ve kullanıcıya özgü parametrelere izin verir; bu parametrelerin kullanımı yalnızca oturum açıldığında başarılı olur. Oturum açma hatası için aşağıya bakın.
  • 🔴 Oturum açma gerekir: araç bir kullanıcı adına işlem yapar. Kullanıcılar anonim olabilir. Belirteç olmadan çağrıldığında, /.well-known/oauth-protected-resource/mcp adresini gösteren bir WWW-Authenticate sorgulamasıyla HTTP 401 yanıtı verilir ve istemci kişiyi OAuth (PKCE ile yetkilendirme kodu) kullanarak oturum açtırır. Kimliği doğrulanmış kişi, kimlik olarak kullanılır.
  • Kademe: anonymous oturum açmış herkesi kapsar. reservation ad ve soyadı, bir iletişim bilgisi ve kabul edilmiş Koşullar bilgisini ekler; rezervasyon için gerektiğinde bunları promote_identity toplar.
  • Hız sınırı: çağrılar oturum açmış kişi başına sayılır; belirteç olmadan çağrı yapan herkes aynı kotayı paylaşır. Sınırı aşan çağrı bir kodla reddedilir; bekleyin, ardından daha az çağrı gönderin.

KEŞFET

🟢 count_restaurants oku Bir faset kümesinin eşleştiği mekân sayısını, satırları döndürmeden verir. Bir filtre alanını keşfederken filter_restaurants öncesinde çağırın: belgeleri döndürmeden aynı soruyu yanıtlar.

Restoranları say

Bir faset kümesinin eşleştiği mekân sayısını, satırları döndürmeden verir. Bir filtre alanını keşfederken filter_restaurants öncesinde çağırın: belgeleri döndürmeden aynı soruyu yanıtlar.

ParametreTürAçıklama
drinkOptionsobjectiçecek listesinin neleri içermesi gerektiği
drinkOptions.beerSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
drinkOptions.cocktailSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
drinkOptions.natureWineSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
drinkOptions.wineSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
kitchenobjecthazırladığı mutfak türü
kitchen.cuisinearray<string>koşulu karşılayan mutfak türü slug'ları; liste get_vocabulary içindedir
locationobjectaranacak yer: bir regionId veya yarıçaplı bir nokta
location.latnumberarama merkezinin enlemi; lng ile birlikte kullanılır
location.lngnumberarama merkezinin boylamı
location.radiusMetersintegernoktanın çevresinde aranacak mesafe
location.regionIdstringlist_regions veya resolve_key içinden aranacak bölge
menuOptionsobjectmenünün neleri içermesi gerektiği
menuOptions.fishDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.glutenFreeDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.halalDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.lactoseFreeDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.meatDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.veganDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.vegetarianDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
nutritionobjectmekânın genel niteliği
nutrition.veganRestaurantsbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
nutrition.vegetarianRestaurantsbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
openingobjectmekânın açık olduğu zamanlar
opening.daytimestringaçık olması gereken servis: öğle yemeği veya akşam yemeği
opening.openOnarray<integer>açık olması gereken haftanın günleri; Pazar 0'dır
reservationobjectrezervasyon yapılma biçimi
reservation.hasWidgetbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
reservation.liveAvailabilitybooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Count restaurants"
  },
  "description": "How many venues a facet set matches, with no rows. Call this before filter_restaurants when exploring a filter space: it answers the same question without the documents.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "drinkOptions": {
        "additionalProperties": false,
        "description": "what the drinks list must carry",
        "properties": {
          "beerSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "cocktailSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "natureWineSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "wineSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "kitchen": {
        "additionalProperties": false,
        "description": "the kitchen it cooks",
        "properties": {
          "cuisine": {
            "description": "cuisine slugs, any one of which satisfies it; the list is in get_vocabulary",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "location": {
        "additionalProperties": false,
        "description": "where to search: a regionId, or a point with a radius",
        "properties": {
          "lat": {
            "description": "latitude of the search centre, paired with lng",
            "type": "number"
          },
          "lng": {
            "description": "longitude of the search centre",
            "type": "number"
          },
          "radiusMeters": {
            "description": "how far around the point to look",
            "type": "integer"
          },
          "regionId": {
            "description": "the region to search in, from list_regions or resolve_key",
            "type": "string"
          }
        },
        "type": "object"
      },
      "menuOptions": {
        "additionalProperties": false,
        "description": "what the menu must carry",
        "properties": {
          "fishDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "glutenFreeDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "halalDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "lactoseFreeDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "meatDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "veganDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "vegetarianDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "nutrition": {
        "additionalProperties": false,
        "description": "what the venue is as a whole",
        "properties": {
          "veganRestaurants": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "vegetarianRestaurants": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "opening": {
        "additionalProperties": false,
        "description": "when the venue is open",
        "properties": {
          "daytime": {
            "description": "the service to be open for: lunch or dinner",
            "type": "string"
          },
          "openOn": {
            "description": "weekdays it must be open on, Sunday is 0",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "reservation": {
        "additionalProperties": false,
        "description": "how it can be booked",
        "properties": {
          "hasWidget": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "liveAvailability": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "required": [],
    "type": "object"
  },
  "name": "count_restaurants",
  "title": "Count restaurants"
}

🟢 filter_restaurants oku Mekânları fasetlere göre arayın: nerede oldukları, ne zaman açık oldukları, hangi mutfağı sundukları, menü ve içecek listelerinde neler bulunduğu ve nasıl rezervasyon yapılabildiği. Her faset sonuçları, bu koşulu karşılayan mekânlarla sınırlar; bu nedenle yalnızca misafirin istediği koşulları gönderin. Tanımlayıcı ve mutfak değerleri get_vocabulary içinden alınır — uydurulmuş bir değer yok sayılmak yerine reddedilir. Popülerliğe göre sıralanır; tat vektörü uygulanmaz.

Restoranları filtrele

Mekânları fasetlere göre arayın: nerede oldukları, ne zaman açık oldukları, hangi mutfağı sundukları, menü ve içecek listelerinde neler bulunduğu ve nasıl rezervasyon yapılabildiği. Her faset sonuçları, bu koşulu karşılayan mekânlarla sınırlar; bu nedenle yalnızca misafirin istediği koşulları gönderin. Tanımlayıcı ve mutfak değerleri get_vocabulary içinden alınır — uydurulmuş bir değer yok sayılmak yerine reddedilir. Popülerliğe göre sıralanır; tat vektörü uygulanmaz.

ParametreTürAçıklama
drinkOptionsobjectiçecek listesinin neleri içermesi gerektiği
drinkOptions.beerSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
drinkOptions.cocktailSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
drinkOptions.natureWineSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
drinkOptions.wineSelectionbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
kitchenobjecthazırladığı mutfak türü
kitchen.cuisinearray<string>koşulu karşılayan mutfak türü slug'ları; liste get_vocabulary içindedir
limitintegerdöndürülecek satır sayısı; en fazla 50
locationobjectaranacak yer: bir regionId veya yarıçaplı bir nokta
location.latnumberarama merkezinin enlemi; lng ile birlikte kullanılır
location.lngnumberarama merkezinin boylamı
location.radiusMetersintegernoktanın çevresinde aranacak mesafe
location.regionIdstringlist_regions veya resolve_key içinden aranacak bölge
menuOptionsobjectmenünün neleri içermesi gerektiği
menuOptions.fishDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.glutenFreeDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.halalDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.lactoseFreeDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.meatDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.veganDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
menuOptions.vegetarianDishesbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
nutritionobjectmekânın genel niteliği
nutrition.veganRestaurantsbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
nutrition.vegetarianRestaurantsbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile sayfalar arasında gezinir
openingobjectmekânın açık olduğu zamanlar
opening.daytimestringaçık olması gereken servis: öğle yemeği veya akşam yemeği
opening.openOnarray<integer>açık olması gereken haftanın günleri; Pazar 0'dır
reservationobjectrezervasyon yapılma biçimi
reservation.hasWidgetbooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin
reservation.liveAvailabilitybooleantrue, bunu içeren mekânlarla sınırlar; bu ölçüte göre daraltmamak için belirtmeyin

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Filter restaurants"
  },
  "description": "Search venues by facet: where, when open, what kitchen, what the menu and the drinks list carry, and how it can be booked. Every facet narrows the result to the venues carrying it, so pass only what the guest asked for. Descriptor and cuisine values come from get_vocabulary — an invented one is refused rather than ignored. Ranked by popularity; no taste vector is applied.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "drinkOptions": {
        "additionalProperties": false,
        "description": "what the drinks list must carry",
        "properties": {
          "beerSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "cocktailSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "natureWineSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "wineSelection": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "kitchen": {
        "additionalProperties": false,
        "description": "the kitchen it cooks",
        "properties": {
          "cuisine": {
            "description": "cuisine slugs, any one of which satisfies it; the list is in get_vocabulary",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "location": {
        "additionalProperties": false,
        "description": "where to search: a regionId, or a point with a radius",
        "properties": {
          "lat": {
            "description": "latitude of the search centre, paired with lng",
            "type": "number"
          },
          "lng": {
            "description": "longitude of the search centre",
            "type": "number"
          },
          "radiusMeters": {
            "description": "how far around the point to look",
            "type": "integer"
          },
          "regionId": {
            "description": "the region to search in, from list_regions or resolve_key",
            "type": "string"
          }
        },
        "type": "object"
      },
      "menuOptions": {
        "additionalProperties": false,
        "description": "what the menu must carry",
        "properties": {
          "fishDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "glutenFreeDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "halalDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "lactoseFreeDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "meatDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "veganDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "vegetarianDishes": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "nutrition": {
        "additionalProperties": false,
        "description": "what the venue is as a whole",
        "properties": {
          "veganRestaurants": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "vegetarianRestaurants": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      },
      "opening": {
        "additionalProperties": false,
        "description": "when the venue is open",
        "properties": {
          "daytime": {
            "description": "the service to be open for: lunch or dinner",
            "type": "string"
          },
          "openOn": {
            "description": "weekdays it must be open on, Sunday is 0",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "reservation": {
        "additionalProperties": false,
        "description": "how it can be booked",
        "properties": {
          "hasWidget": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          },
          "liveAvailability": {
            "description": "true narrows to venues carrying it; omit it to not narrow on it",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "required": [],
    "type": "object"
  },
  "name": "filter_restaurants",
  "title": "Filter restaurants"
}

🟢 list_popular_restaurants oku Bir bölgedeki en beğenilen mekânlar. Bölge belirtmek zorunludur: bölge belirtilmezse elimizdeki tüm mekânlar listelenir.

Popüler restoranları listele

Bir bölgedeki en beğenilen mekânlar. Bölge belirtmek zorunludur: bölge belirtilmezse elimizdeki tüm mekânlar listelenir.

ParametreTürAçıklama
regionId gereklistringlist_regions içinden okunacak bölge
limitintegerdöndürülecek satır sayısı; en fazla 50
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile sayfalar arasında gezinir

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List popular restaurants"
  },
  "description": "The most-liked venues of one region. A region is required: without one this reads every venue we hold.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      },
      "regionId": {
        "description": "the region to read, from list_regions",
        "type": "string"
      }
    },
    "required": [
      "regionId"
    ],
    "type": "object"
  },
  "name": "list_popular_restaurants",
  "title": "List popular restaurants"
}

🟡 list_recommended_restaurants oku Oturum açmış misafire önerilen mekânlar, en yakın tat eşleşmesinden başlayarak sıralanır; oturum açılmadan önce kişiye özel değildir. bookableOnly\ yalnızca boş masası olan mekânları tutar; bu çok daha küçük bir kümedir ve oturum açmayı gerektirir.

Önerilen restoranları listele

Oturum açmış misafire önerilen mekânlar, en yakın tat eşleşmesinden başlayarak sıralanır; oturum açılmadan önce kişiye özel değildir. bookableOnly\ yalnızca boş masası olan mekânları tutar; bu çok daha küçük bir kümedir ve oturum açmayı gerektirir.

ParametreTürAçıklama
bookableOnlybooleanyalnızca anlık müsaitliği olan mekânları tut
interDiemintegerbookableOnly ile, boş masanın bulunabileceği en ileri gün sayısı
limitintegerdöndürülecek satır sayısı; en fazla 50
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile sayfalar arasında gezinir
regionIdstringönerilerin sunulacağı bölge; belirtilmezse kimliğin kendi bölgesi kullanılır

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List recommended restaurants"
  },
  "description": "Venues recommended for the signed-in guest, closest in taste first; before anyone signs in they are not personal. \`bookableOnly\` keeps only venues with a table free, which is a much smaller set and needs a sign-in.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "bookableOnly": {
        "description": "keep only venues with live availability",
        "type": "boolean"
      },
      "interDiem": {
        "description": "with bookableOnly, how many days ahead a free table may lie",
        "type": "integer"
      },
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      },
      "regionId": {
        "description": "the region to recommend in; the identity's own region when omitted",
        "type": "string"
      }
    },
    "required": [],
    "type": "object"
  },
  "name": "list_recommended_restaurants",
  "title": "List recommended restaurants"
}

🟢 list_similar_restaurants oku Zaten anahtarına sahip olduğunuz bir mekâna tat bakımından yakın mekânlar, en yakından başlayarak sıralanır. sameCategory\ bunları aynı mutfak ailesiyle sınırlar ve kapatılmadığı sürece etkindir.

Benzer restoranları listele

Zaten anahtarına sahip olduğunuz bir mekâna tat bakımından yakın mekânlar, en yakından başlayarak sıralanır. sameCategory\ bunları aynı mutfak ailesiyle sınırlar ve kapatılmadığı sürece etkindir.

ParametreTürAçıklama
restaurantKey gereklistringbenzerleri bulunacak mekân
limitintegerdöndürülecek satır sayısı; en fazla 50
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile sayfalar arasında gezinir
sameCategorybooleanaynı mutfak ailesinde tut; belirtilmediğinde true

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List similar restaurants"
  },
  "description": "Venues close in taste to one you already hold a key for, nearest first. \`sameCategory\` keeps them inside the same kitchen family and is on unless you turn it off.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      },
      "restaurantKey": {
        "description": "the venue to find neighbours of",
        "type": "string"
      },
      "sameCategory": {
        "description": "keep to the same kitchen family; true when omitted",
        "type": "boolean"
      }
    },
    "required": [
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "list_similar_restaurants",
  "title": "List similar restaurants"
}

🟢 search_dishes oku Adı verilen bir yemeği sunan mekânları bulun. Yemeği, misafirin söylediği biçimde, kendi sözcükleriyle ve sırasıyla arayın — bir yemeğin adı kimliğinin parçasıdır; bu nedenle yeniden ifade etmeyin, çevirmeyin veya kısaltmayın. Uzun sözcüklerde küçük yazım hataları tolere edilir; çok kısa olanlar tam eşleşmelidir. Her sonuçta yemek, menüde yazıldığı biçimde alıntılanır ve exact\ yalnızca ad sözcüğü sözcüğüne eşleştiğinde true olur. Bu araç açılış saatleri hakkında bilgi vermez — bunun için filter_restaurants kullanın. Menü kapsamı kısmi olabilir: boş sonuç, elimizdeki hiçbir menüde bu yemeğin adının geçmediği anlamına gelir; bu yemeği kimsenin pişirmediği anlamına gelmez.

Yemekleri ara

Adı verilen bir yemeği sunan mekânları bulun. Yemeği, misafirin söylediği biçimde, kendi sözcükleriyle ve sırasıyla arayın — bir yemeğin adı kimliğinin parçasıdır; bu nedenle yeniden ifade etmeyin, çevirmeyin veya kısaltmayın. Uzun sözcüklerde küçük yazım hataları tolere edilir; çok kısa olanlar tam eşleşmelidir. Her sonuçta yemek, menüde yazıldığı biçimde alıntılanır ve exact\ yalnızca ad sözcüğü sözcüğüne eşleştiğinde true olur. Bu araç açılış saatleri hakkında bilgi vermez — bunun için filter_restaurants kullanın. Menü kapsamı kısmi olabilir: boş sonuç, elimizdeki hiçbir menüde bu yemeğin adının geçmediği anlamına gelir; bu yemeği kimsenin pişirmediği anlamına gelmez.

ParametreTürAçıklama
q gereklistringkonuğun yemeğe verdiği ad
latnumberlng ile birlikte, çevresinde arama yapılacak enlem
limitintegerdöndürülecek satır sayısı, en fazla 50
lngnumberçevresinde arama yapılacak boylam
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile birlikte sayfalar arasında gezinmeyi sağlar
radiusMetersintegernoktanın çevresinde ne kadar uzağa bakılacağı
regionIdstringaramayı tek bir bölgeyle sınırlandır

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Search dishes"
  },
  "description": "Find the venues that serve a named dish. Search the dish as the guest said it, in their words and their order — the wording of a dish is part of its identity, so do not rephrase, translate or shorten it. Longer words survive a small spelling slip; very short ones must be exact. Every hit quotes the dish as the menu prints it, and \`exact\` is true only where the name matched word for word. This knows nothing of opening hours — use filter_restaurants for that. Menu coverage is partial: an empty result means no menu we hold names that dish, never that nobody cooks it.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "lat": {
        "description": "latitude to search around, paired with lng",
        "type": "number"
      },
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "lng": {
        "description": "longitude to search around",
        "type": "number"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      },
      "q": {
        "description": "the dish as the guest named it",
        "type": "string"
      },
      "radiusMeters": {
        "description": "how far around the point to look",
        "type": "integer"
      },
      "regionId": {
        "description": "bound the search to one region",
        "type": "string"
      }
    },
    "required": [
      "q"
    ],
    "type": "object"
  },
  "name": "search_dishes",
  "title": "Search dishes"
}

🟢 search_restaurants read Mekânları adlarına veya konuğun kendi sözleriyle nasıl adlandırdığına göre bulun. En az üç karakter girin. Bir bölge biliyorsanız aramayı o bölgeyle sınırlandırın. Konuk belirli bir mekânın adını değil, mekân türünü tarif ettiyse filter_restaurants kullanın.

Restoran ara

Mekânları adlarına veya konuğun kendi sözleriyle nasıl adlandırdığına göre bulun. En az üç karakter girin. Bir bölge biliyorsanız aramayı o bölgeyle sınırlandırın. Konuk belirli bir mekânın adını değil, mekân türünü tarif ettiyse filter_restaurants kullanın.

ParametreTürAçıklama
text gereklistringaranacak ifade, en az üç karakter
limitintegerdöndürülecek satır sayısı, en fazla 50
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile birlikte sayfalar arasında gezinmeyi sağlar
regionIdstringaramayı tek bir bölgeyle sınırlandır; belirtilmezse kapsadığımız tüm bölgelerde arama yapılır

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Search restaurants"
  },
  "description": "Find venues by name or by what they are called, in the guest's own words. Three characters at least. Bound it to a region when you know one. Use filter_restaurants when the guest described a kind of place rather than named one.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      },
      "regionId": {
        "description": "bound the search to one region; omitted it searches every region we cover",
        "type": "string"
      },
      "text": {
        "description": "what to search for, three characters or more",
        "type": "string"
      }
    },
    "required": [
      "text"
    ],
    "type": "object"
  },
  "name": "search_restaurants",
  "title": "Search restaurants"
}

PLACE

🟢 list_regions read TasteMatch'in kapsadığı bölgeler. Her bölgede, bölge kapsamındaki tüm araçların kullandığı regionId ve mekânların açılış saatleriyle rezervasyon saatlerinin yazıldığı IANA saat dilimi bulunur. En yakındakileri önce almak için bir nokta belirtin. Bu bölgelerin hiçbirinde bulunmayan bir yerde kayıtlı mekânımız yoktur.

Bölgeleri listele

TasteMatch'in kapsadığı bölgeler. Her bölgede, bölge kapsamındaki tüm araçların kullandığı regionId ve mekânların açılış saatleriyle rezervasyon saatlerinin yazıldığı IANA saat dilimi bulunur. En yakındakileri önce almak için bir nokta belirtin. Bu bölgelerin hiçbirinde bulunmayan bir yerde kayıtlı mekânımız yoktur.

ParametreTürAçıklama
latnumbermesafeye göre sıralama için kullanılacak enlem; lng ile birlikte
limitintegerdöndürülecek satır sayısı, en fazla 50
lngnumbermesafeye göre sıralama için kullanılacak boylam
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile birlikte sayfalar arasında gezinmeyi sağlar

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List regions"
  },
  "description": "The regions TasteMatch covers. Each carries the regionId every region-scoped tool takes, and the IANA timezone its venues' opening hours and slot times are written on. Pass a point to get them nearest first. A place not in any of these regions has no venues we hold.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "lat": {
        "description": "latitude to sort by distance from, paired with lng",
        "type": "number"
      },
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "lng": {
        "description": "longitude to sort by distance from",
        "type": "number"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      }
    },
    "required": [],
    "type": "object"
  },
  "name": "list_regions",
  "title": "List regions"
}

🟢 search_places read Konuğun adını verdiği kasaba, semt veya mahalleyi, onu kapsayan bölgeyle eşleştirin. Sonucun boş olması, adın yanlış olduğu değil, yerin kapsadığımız bölgelerin dışında kaldığı anlamına gelir.

Yer ara

Konuğun adını verdiği kasaba, semt veya mahalleyi, onu kapsayan bölgeyle eşleştirin. Sonucun boş olması, adın yanlış olduğu değil, yerin kapsadığımız bölgelerin dışında kaldığı anlamına gelir.

ParametreTürAçıklama
q gereklistringkonuğun yeri adlandırdığı biçim
countryCodestringeşleşmeyi sınırlandırmak için ISO 3166-1 alpha-2 kodu
limitintegerdöndürülecek satır sayısı, en fazla 50
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile birlikte sayfalar arasında gezinmeyi sağlar

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Search places"
  },
  "description": "Match a town, district or quarter the guest named to the region that contains it. An empty result means the place is outside every region we cover, not that the name was wrong.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "countryCode": {
        "description": "ISO 3166-1 alpha-2 code to restrict the match to",
        "type": "string"
      },
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      },
      "q": {
        "description": "the place as the guest named it",
        "type": "string"
      }
    },
    "required": [
      "q"
    ],
    "type": "object"
  },
  "name": "search_places",
  "title": "Search places"
}

RESTAURANT

🟢 get_restaurant read Tek bir mekânı okuyun. Varsayılan görünüm yalındır — ad, anahtarlar, bölge, adres, tanımlayıcılar, rezervasyon yöntemi ve açılış saatlerinin özeti. Ayrıntılı alanlar yalnızca fields\ içinde adlarını belirttiğinizde gelir: ContactInformation, MenuCards, MenuCardsV2, labelVector, coverPictures, socialScore, matchInfo, tmType, eventId, businessPro, likesByUser, likesByFollowees, likesUserAvatars, likesFolloweeAvatars. Görünümde alanları belirtmeden alınan bir belge, görevinizin geri kalanından daha büyük olabilir.

Restoranı getir

Tek bir mekânı okuyun. Varsayılan görünüm yalındır — ad, anahtarlar, bölge, adres, tanımlayıcılar, rezervasyon yöntemi ve açılış saatlerinin özeti. Ayrıntılı alanlar yalnızca fields\ içinde adlarını belirttiğinizde gelir: ContactInformation, MenuCards, MenuCardsV2, labelVector, coverPictures, socialScore, matchInfo, tmType, eventId, businessPro, likesByUser, likesByFollowees, likesUserAvatars, likesFolloweeAvatars. Görünümde alanları belirtmeden alınan bir belge, görevinizin geri kalanından daha büyük olabilir.

ParametreTürAçıklama
restaurantKey gereklistringmekânın anahtarı
accessTypestringkonuk bu mekânı açmanızı istediğinde ona nasıl ulaştığı — filtered, searched, recommended, similar, popular, spotlight seçeneklerinden biri. Böylece açma işlemi konuğa ait olarak sayılır; mekânı yalnızca kendiniz kontrol ediyorsanız bu alanı belirtmeyin.
fieldsarray<string>döndürülecek alanlar; varsayılan görünüm yalındır ve anahtarlar her zaman eklenir

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get restaurant"
  },
  "description": "Read one venue. The default projection is lean — name, keys, region, address, descriptors, how it can be booked and its opening summary. The heavy parts arrive only when you name them in \`fields\`: ContactInformation, MenuCards, MenuCardsV2, labelVector, coverPictures, socialScore, matchInfo, tmType, eventId, businessPro, likesByUser, likesByFollowees, likesUserAvatars, likesFolloweeAvatars. An unprojected document can be larger than the rest of your task.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "accessType": {
        "description": "when the guest asked to open this venue, how they reached it — one of filtered, searched, recommended, similar, popular, spotlight. The open is then counted as theirs; leave it out when you are only checking a venue for yourself.",
        "type": "string"
      },
      "fields": {
        "description": "the fields to return; the default projection is lean, and keys are always included",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "get_restaurant",
  "title": "Get restaurant"
}

🔴 like_restaurant write Bu mekânı, işlem yapan kimliğin beğendiğini kaydedin. Beğeniler sonraki önerileri iyileştirir ve bu, sizin değil konuğun beyanıdır — konuğun beğendiğini söylediği şeyi beğenin.

Restoranı beğen

Bu mekânı, işlem yapan kimliğin beğendiğini kaydedin. Beğeniler sonraki önerileri iyileştirir ve bu, sizin değil konuğun beyanıdır — konuğun beğendiğini söylediği şeyi beğenin.

ParametreTürAçıklama
idempotencyKey gereklistringbu yazma işlemi için size ait bir anahtar; aynı anahtarın yeniden gönderilmesi ikinci kez yazmak yerine ilk sonucu döndürür
restaurantKey gereklistringmekânın anahtarı

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Like restaurant"
  },
  "description": "Record that the acting identity likes this venue. Liking is what makes the recommendations that follow better, and it is the guest's statement, not yours — like what they said they liked.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "like_restaurant",
  "title": "Like restaurant"
}

🔴 submit_restaurant_impressions write Kimliğin gerçekte hangi mekânları gördüğünü ve hangileriyle ilgili işlem yaptığını bize bildirin. Her turda bir toplu gönderim yapın ve tüm konuşma boyunca aynı kalan, size ait bir sessionId kullanın. Niyetinizi değil, gerçekleşeni bildirin: öneri sistemi bu sinyallerden öğrenir.

Restoran izlenimlerini gönder

Kimliğin gerçekte hangi mekânları gördüğünü ve hangileriyle ilgili işlem yaptığını bize bildirin. Her turda bir toplu gönderim yapın ve tüm konuşma boyunca aynı kalan, size ait bir sessionId kullanın. Niyetinizi değil, gerçekleşeni bildirin: öneri sistemi bu sinyallerden öğrenir.

ParametreTürAçıklama
idempotencyKey gereklistringbu yazma işlemi için size ait bir anahtar; aynı anahtarın yeniden gönderilmesi ikinci kez yazmak yerine ilk sonucu döndürür
impressions gerekliarray<object>gösterilen veya işlem yapılanlar
impressions[].accessType gereklistringfiltered, searched, recommended, similar, popular, spotlight seçeneklerinden biri
impressions[].restaurantKey gereklistring
sessionId gereklistringsize ait bir UUID; konuşmadaki her toplu gönderimde aynı olmalı

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Submit restaurant impressions"
  },
  "description": "Tell us which venues the identity actually saw, and which of them it acted on. One batch per turn, with a sessionId of your own that stays the same for the whole conversation. Report what happened, never what you intend: these are the signals the recommender learns from.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "impressions": {
        "description": "what was shown or acted on",
        "items": {
          "additionalProperties": false,
          "properties": {
            "accessType": {
              "description": "one of filtered, searched, recommended, similar, popular, spotlight",
              "type": "string"
            },
            "restaurantKey": {
              "type": "string"
            }
          },
          "required": [
            "accessType",
            "restaurantKey"
          ],
          "type": "object"
        },
        "type": "array"
      },
      "sessionId": {
        "description": "a UUID of your own, the same for every batch in one conversation",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "impressions",
      "sessionId"
    ],
    "type": "object"
  },
  "name": "submit_restaurant_impressions",
  "title": "Submit restaurant impressions"
}

🔴 unlike_restaurant write Bir beğeniyi geri alın. Mekân katalogda kalır; yalnızca kimliğin mekân hakkındaki görüşü kaldırılır.

Restoran beğenisini geri al

Bir beğeniyi geri alın. Mekân katalogda kalır; yalnızca kimliğin mekân hakkındaki görüşü kaldırılır.

ParametreTürAçıklama
idempotencyKey gereklistringbu yazma işlemi için size ait bir anahtar; aynı anahtarın yeniden gönderilmesi ikinci kez yazmak yerine ilk sonucu döndürür
restaurantKey gereklistringmekânın anahtarı

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Unlike restaurant"
  },
  "description": "Take back a like. The venue stays in the catalogue; only the identity's opinion of it is removed.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "unlike_restaurant",
  "title": "Unlike restaurant"
}

AVAILABILITY

🟢 get_reservation_info read Bu mekânın rezervasyonları nasıl kabul ettiğini öğrenin. mode\, masaların anında ve canlı olarak onaylandığı durumda instant; mekândan birinin kabul etmesi gerektiğinde request olur. Mekân hiç rezervasyon kabul etmiyorsa araç isteği reddeder. Önce bunu okuyun: create_instant_reservation mı yoksa create_reservation_request mi çağıracağınızı belirler. maxPeople\, herhangi bir yere yerleştirebileceğimiz en büyük gruptur. Bu yalnızca okuma işlemidir — rezervasyon yapmaz ve hiçbir şeyi kaydetmez.

Rezervasyon bilgilerini getir

Bu mekânın rezervasyonları nasıl kabul ettiğini öğrenin. mode\, masaların anında ve canlı olarak onaylandığı durumda instant; mekândan birinin kabul etmesi gerektiğinde request olur. Mekân hiç rezervasyon kabul etmiyorsa araç isteği reddeder. Önce bunu okuyun: create_instant_reservation mı yoksa create_reservation_request mi çağıracağınızı belirler. maxPeople\, herhangi bir yere yerleştirebileceğimiz en büyük gruptur. Bu yalnızca okuma işlemidir — rezervasyon yapmaz ve hiçbir şeyi kaydetmez.

ParametreTürAçıklama
restaurantKey gereklistringmekânın anahtarı

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get reservation info"
  },
  "description": "How this venue takes reservations. \`mode\` is instant when tables are confirmed live, request when someone at the venue has to accept, and the tool refuses when the venue takes none at all. Read this first: it decides whether you call create_instant_reservation or create_reservation_request. \`maxPeople\` is the largest party we can place anywhere. This reads only — it books nothing and records nothing.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "get_reservation_info",
  "title": "Get reservation info"
}

🟢 list_availability_slots read Bir mekânda tek bir günde boş olan masalar. Saatler mekânın yerel saatidir ve sabit bir zaman aralığına bağlı değildir — seçtiğiniz yuvarlak bir saat yerine burada gördüğünüz bir saati rezerve edin. request modundaki bir mekân bunun yerine windows\ içinde yanıt verir: istek kabul edebileceği zaman aralıkları. Her ikisinin de boş olması, mekânın o gün kapalı olduğu veya rezervasyon ufkunun aşıldığı anlamına gelir.

Uygunluk saatlerini listele

Bir mekânda tek bir günde boş olan masalar. Saatler mekânın yerel saatidir ve sabit bir zaman aralığına bağlı değildir — seçtiğiniz yuvarlak bir saat yerine burada gördüğünüz bir saati rezerve edin. request modundaki bir mekân bunun yerine windows\ içinde yanıt verir: istek kabul edebileceği zaman aralıkları. Her ikisinin de boş olması, mekânın o gün kapalı olduğu veya rezervasyon ufkunun aşıldığı anlamına gelir.

ParametreTürAçıklama
date gereklistringokunacak gün; bölgenin UTC farkını içeren RFC3339 biçiminde
restaurantKey gereklistringmekânın anahtarı
paxintegerkişi sayısı; bu sayı için yetersiz kalan saatleri elemek üzere

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List availability slots"
  },
  "description": "The tables free at one venue on one day. Times are the venue's own wall clock, and they sit on no fixed grid — book a time you read here rather than a round number you chose. A request-mode venue answers in \`windows\` instead: the spans it will consider a request inside. Both empty means shut that day, or past the booking horizon.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "date": {
        "description": "the day to read, RFC3339 with the region's UTC offset",
        "type": "string"
      },
      "pax": {
        "description": "party size, to drop slots too small for it",
        "type": "integer"
      },
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "date",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "list_availability_slots",
  "title": "List availability slots"
}

RESERVATION

🔴 cancel_reservation destructive Kimliğin sahibi olduğu bir rezervasyonu iptal edin. Bu işlem geri alınamaz ve masa başkasına verilir. Önce rezervasyonu okuyun, mekânı ve saati konuğa tekrar söyleyin, yanıtını bekleyin ve ardından ikisini de burada aynen belirtin: confirmRestaurantName\ ve confirmDateTime\, kayıtlardaki rezervasyonla eşleşmelidir; aksi hâlde çağrı reddedilir. Ne kadar emin olursanız olun, yalnızca anahtara bakarak asla iptal etmeyin.

Rezervasyonu iptal et

Kimliğin sahibi olduğu bir rezervasyonu iptal edin. Bu işlem geri alınamaz ve masa başkasına verilir. Önce rezervasyonu okuyun, mekânı ve saati konuğa tekrar söyleyin, yanıtını bekleyin ve ardından ikisini de burada aynen belirtin: confirmRestaurantName\ ve confirmDateTime\, kayıtlardaki rezervasyonla eşleşmelidir; aksi hâlde çağrı reddedilir. Ne kadar emin olursanız olun, yalnızca anahtara bakarak asla iptal etmeyin.

ParametreTürAçıklama
confirmDateTime gereklistringkonuğa söylediğiniz biçimiyle rezervasyon saati, RFC3339
confirmRestaurantName gereklistringkonuğa söylediğiniz biçimiyle mekânın adı
idempotencyKey gereklistringbu yazma işlemi için size ait bir anahtar; aynı anahtarın yeniden gönderilmesi ikinci kez yazmak yerine ilk sonucu döndürür
reservationKey gereklistringiptal edilecek rezervasyon; list_reservations içindeki sahip olunan rezervasyonlar arasından

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Cancel reservation"
  },
  "description": "Cancel a reservation the identity owns. This cannot be undone and the table is given up. Read the reservation first, say the venue and the time back to the guest, wait for them, and then echo both here: \`confirmRestaurantName\` and \`confirmDateTime\` must match the reservation on file or the call is refused. Never cancel on a key alone, however sure you are of it.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "confirmDateTime": {
        "description": "the reservation's time as you said it to the guest, RFC3339",
        "type": "string"
      },
      "confirmRestaurantName": {
        "description": "the venue's name as you said it to the guest",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "reservationKey": {
        "description": "the reservation to cancel, from the owned set of list_reservations",
        "type": "string"
      }
    },
    "required": [
      "confirmDateTime",
      "confirmRestaurantName",
      "idempotencyKey",
      "reservationKey"
    ],
    "type": "object"
  },
  "name": "cancel_reservation",
  "title": "Cancel reservation"
}

🔴 create_instant_reservation write Şu anda boş olan bir masayı ayırtın. Bu, instant mekânlar içindir ve işlem döndüğünde masa onaylanmış olur. list_availability_slots aracından aldığınız bir dateTime\ için rezervasyon yapın — mekânın saatleri sabit aralıklara bağlı olmadığından yuvarlak bir saat genellikle uygun saatlerden biri değildir. Konuk esnek olduğunu söylemedikçe approxMinutes\ değerini 0 bırakın: sıfırdan farklı bir değer, mekânın yakın bir saat için rezervasyon yapmasına izin verir ve yanıt bunu adjusted\ ile bookedDate\ içinde belirtir. Rezervasyon kayıtlı kimlik üzerinden yapılır; instant mekân için bu kimliğin hem e-posta adresi hem de telefon numarası bulunmalıdır.

Anında rezervasyon oluştur Şu anda boş olan bir masayı alın. Bu, anında rezervasyon yapan mekânlar içindir ve masa, yanıt döndüğünde onaylanmış olur. list_availability_slots listesinden aldığınız bir dateTime\ ayırtın — mekânın saatleri sabit aralıklara bağlı değildir, bu yüzden yuvarlak bir saat genellikle seçeneklerden biri olmaz. Konuk esnek olduğunu söylemedikçe approxMinutes\ değerini 0 bırakın: sıfırdan farklı bir değer, mekânın bunun yerine yakın bir saat ayırtmasına izin verir ve yanıt bunu adjusted\ ile bookedDate\ içinde belirtir. Rezervasyon kayıtlı kimlik üzerinden yapılır; anında rezervasyon yapan bir mekân için bu kimlikte hem e-posta hem de telefon bulunmalıdır.

ParametreTürAçıklama
dateTime requiredstringayırtılacak saat; list_availability_slots listesinden alındığı biçimiyle, bölgenin UTC farkını içeren RFC3339
idempotencyKey requiredstringbu yazma işlemi için size ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
pax requiredintegerkişi sayısı
restaurantKey requiredstringmekânın anahtarı
approxMinutesintegermekânın dateTime değerinden ne kadar saparak rezervasyon yapabileceği; 0, bu saat ya da hiçbir şey anlamına gelir
areaIdstringseçtiğiniz saat diliminden alınan oturma alanı; aramayı daraltır ve rezervasyon saatini hiçbir zaman değiştirmez
commentstringkonuk tarafından ifade edildiği şekliyle mekâna not

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Create instant reservation"
  },
  "description": "Take a table that is free now. This is for instant venues and the table is confirmed when it returns. Book a \`dateTime\` you read from list_availability_slots — the venue's slots sit on no grid, so a round number is usually not one of them. Leave \`approxMinutes\` at 0 unless the guest said they are flexible: a non-zero value lets the venue book a nearby time instead, and the answer says so in \`adjusted\` and \`bookedDate\`. The booking runs on the stored identity, which needs both an email and a phone for an instant venue.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "approxMinutes": {
        "description": "how far from dateTime the venue may book instead; 0 means this time or nothing",
        "type": "integer"
      },
      "areaId": {
        "description": "the area to seat in, from the slot you chose; it narrows the search and never moves the booking",
        "type": "string"
      },
      "comment": {
        "description": "a note for the venue, in the guest's words",
        "type": "string"
      },
      "dateTime": {
        "description": "the slot to take, RFC3339 with the region's UTC offset, as read from list_availability_slots",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "pax": {
        "description": "party size",
        "type": "integer"
      },
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "dateTime",
      "idempotencyKey",
      "pax",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "create_instant_reservation",
  "title": "Create instant reservation"
}

🔴 create_reservation_offer write Kendi widget'ı üzerinden rezervasyon alan bir mekânda rezervasyon başlatın. Bu işlem yazma yapar: işlemi yapan kimliğe atfedilen bir taslak oluşturur ve konuğun tamamlaması için tek kullanımlık bir widgetUrl\ üretir. URL'yi konuğa iletin, ardından döndürdüğü reservationKey\ üzerinde get_reservation_status sorgulamasını yapın. Her rezervasyon denemesi için bir kez çağırın — ikinci çağrı ikinci bir taslak oluşturur. Yerel olarak rezervasyon alan bir mekân için teklif gerekmez: bunun yerine create_instant_reservation veya create_reservation_request kullanın.

Rezervasyon teklifi oluştur

Kendi widget'ı üzerinden rezervasyon alan bir mekânda rezervasyon başlatın. Bu işlem yazma yapar: işlemi yapan kimliğe atfedilen bir taslak oluşturur ve konuğun tamamlaması için tek kullanımlık bir widgetUrl\ üretir. URL'yi konuğa iletin, ardından döndürdüğü reservationKey\ üzerinde get_reservation_status sorgulamasını yapın. Her rezervasyon denemesi için bir kez çağırın — ikinci çağrı ikinci bir taslak oluşturur. Yerel olarak rezervasyon alan bir mekân için teklif gerekmez: bunun yerine create_instant_reservation veya create_reservation_request kullanın.

ParametreTürAçıklama
idempotencyKey requiredstringbu yazma işlemi için size ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
restaurantKey requiredstringmekânın anahtarı

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Create reservation offer"
  },
  "description": "Open a booking at a venue that books through its own widget. This writes: it mints a draft attributed to the acting identity and a single-use \`widgetUrl\` for the guest to finish in. Hand the URL to the guest, then poll get_reservation_status on the \`reservationKey\` it returns. Call it once per booking attempt — a second call mints a second draft. A venue that books natively needs no offer: use create_instant_reservation or create_reservation_request instead.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "create_reservation_offer",
  "title": "Create reservation offer"
}

🔴 create_reservation_request write Bir mekândan masa isteyin. Bu, istek modundaki mekânlar içindir: rezervasyon beklemede olarak döner ve mekândan biri isteği kabul ya da reddeder; bu nedenle konuğa henüz masa ayrılmadığını söyleyin. Saat, list_availability_slots tarafından bildirilen zaman aralıklarından birinin içinde olmalıdır. Rezervasyon kayıtlı kimlik üzerinden yapılır — ad ve iletişim bilgileri bu çağrıdan değil, kayıttan alınır.

Rezervasyon isteği oluştur

Bir mekândan masa isteyin. Bu, istek modundaki mekânlar içindir: rezervasyon beklemede olarak döner ve mekândan biri isteği kabul ya da reddeder; bu nedenle konuğa henüz masa ayrılmadığını söyleyin. Saat, list_availability_slots tarafından bildirilen zaman aralıklarından birinin içinde olmalıdır. Rezervasyon kayıtlı kimlik üzerinden yapılır — ad ve iletişim bilgileri bu çağrıdan değil, kayıttan alınır.

ParametreTürAçıklama
dateTime requiredstringistenen saat; bölgenin UTC farkını içeren RFC3339
idempotencyKey requiredstringbu yazma işlemi için size ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
pax requiredintegerkişi sayısı
restaurantKey requiredstringmekânın anahtarı
commentstringkonuk tarafından ifade edildiği şekliyle mekâna not

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Create reservation request"
  },
  "description": "Ask a venue for a table. This is for request-mode venues: the reservation comes back pending and someone at the venue accepts or declines it, so tell the guest it is not yet a table. The time must fall inside one of the windows list_availability_slots reported. The booking runs on the stored identity — its name and contact are read from the record, not from this call.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "comment": {
        "description": "a note for the venue, in the guest's words",
        "type": "string"
      },
      "dateTime": {
        "description": "the time asked for, RFC3339 with the region's UTC offset",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "pax": {
        "description": "party size",
        "type": "integer"
      },
      "restaurantKey": {
        "description": "the venue's key",
        "type": "string"
      }
    },
    "required": [
      "dateTime",
      "idempotencyKey",
      "pax",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "create_reservation_request",
  "title": "Create reservation request"
}

🔴 get_reservation_status read İşlemi yapan kimliğin rezervasyonlarından birinin durumunu gösterir. Bir tekliften sonra bunu sorgulayın: widget üzerinden yapılan rezervasyon, ancak mekân onayladığında kesinleşir ve bu onay durum bilgisiyle iletilir.

Rezervasyon durumunu al

İşlemi yapan kimliğin rezervasyonlarından birinin durumunu gösterir. Bir tekliften sonra bunu sorgulayın: widget üzerinden yapılan rezervasyon, ancak mekân onayladığında kesinleşir ve bu onay durum bilgisiyle iletilir.

ParametreTürAçıklama
reservationKey requiredstringlist_reservations listesinden alınan rezervasyon anahtarı

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get reservation status"
  },
  "description": "Where one reservation of the acting identity stands. Poll this after an offer: a widget booking becomes real only once the venue confirms it, and the status is how that arrives.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "reservationKey": {
        "description": "the reservation's key, from list_reservations",
        "type": "string"
      }
    },
    "required": [
      "reservationKey"
    ],
    "type": "object"
  },
  "name": "get_reservation_status",
  "title": "Get reservation status"
}

🔴 list_reservation_slots read Mevcut bir rezervasyonun taşınabileceği saatleri gösterir. Bu, list_availability_slots listesinden farklı bir sorgudur: rezervasyona ve mekânın izin verdiği değişikliklere özeldir. Yalnızca canlı müsaitliği olan bir mekândaki kabul edilmiş rezervasyon taşınabilir.

Rezervasyon saatlerini listele

Mevcut bir rezervasyonun taşınabileceği saatleri gösterir. Bu, list_availability_slots listesinden farklı bir sorgudur: rezervasyona ve mekânın izin verdiği değişikliklere özeldir. Yalnızca canlı müsaitliği olan bir mekândaki kabul edilmiş rezervasyon taşınabilir.

ParametreTürAçıklama
reservationKey requiredstringlist_reservations listesinden alınan taşınacak rezervasyon
fromDatestringbakılacak ilk gün; belirtilmezse rezervasyonun kendi günü kullanılır, RFC3339

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List reservation slots"
  },
  "description": "Where an existing reservation could move to. This is a different question from list_availability_slots: it is scoped to the reservation and to what the venue will let it become. Only an accepted reservation at a venue with live availability can move.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "fromDate": {
        "description": "the first day to look at, RFC3339; the reservation's own day when omitted",
        "type": "string"
      },
      "reservationKey": {
        "description": "the reservation to move, from list_reservations",
        "type": "string"
      }
    },
    "required": [
      "reservationKey"
    ],
    "type": "object"
  },
  "name": "list_reservation_slots",
  "title": "List reservation slots"
}

🔴 list_reservations read İşlemi yapan kimliğin sahip olduğu tüm rezervasyonlar. owned\ üzerinde işlem yapılabilir — yazma araçlarının kabul ettiği anahtarlar bunlardır. foundByEmail\ başka bir sahibine devredilmiştir: hakkında bilgi verebilmeniz için gösterilir, ancak üzerinde yapılan tüm yazma işlemleri reddedilir.

Rezervasyonları listele

İşlemi yapan kimliğin sahip olduğu tüm rezervasyonlar. owned\ üzerinde işlem yapılabilir — yazma araçlarının kabul ettiği anahtarlar bunlardır. foundByEmail\ başka bir sahibine devredilmiştir: hakkında bilgi verebilmeniz için gösterilir, ancak üzerinde yapılan tüm yazma işlemleri reddedilir.

Parametre yok.

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List reservations"
  },
  "description": "Every reservation the acting identity holds. \`owned\` is actionable — those keys are the ones the write tools take. \`foundByEmail\` was reassigned to another owner: it is shown so you can speak about it, and every write on it is refused.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "required": [],
    "type": "object"
  },
  "name": "list_reservations",
  "title": "List reservations"
}

🔴 update_reservation write Kimliğin sahip olduğu bir rezervasyonu taşıyın veya kişi sayısını değiştirin. Yalnızca değişen bilgileri belirtin. Yeni saat, bu rezervasyon için list_reservation_slots tarafından sunulan saatlerden biri olmalıdır.

Rezervasyonu güncelle

Kimliğin sahip olduğu bir rezervasyonu taşıyın veya kişi sayısını değiştirin. Yalnızca değişen bilgileri belirtin. Yeni saat, bu rezervasyon için list_reservation_slots tarafından sunulan saatlerden biri olmalıdır.

ParametreTürAçıklama
idempotencyKey requiredstringbu yazma işlemi için size ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
reservationKey requiredstringlist_reservations listesindeki sahip olunan rezervasyonlar arasından değiştirilecek rezervasyon
dateTimestringyeni saat; bölgenin UTC farkını içeren RFC3339
paxintegeryeni kişi sayısı

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Update reservation"
  },
  "description": "Move a reservation the identity owns, or change its party size. Name only what changes. A new time must be one list_reservation_slots offered for that reservation.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "dateTime": {
        "description": "the new time, RFC3339 with the region's UTC offset",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "pax": {
        "description": "the new party size",
        "type": "integer"
      },
      "reservationKey": {
        "description": "the reservation to change, from the owned set of list_reservations",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "reservationKey"
    ],
    "type": "object"
  },
  "name": "update_reservation",
  "title": "Update reservation"
}

KİMLİK

🔴 get_identity read İşlem yaptığınız kimliği gösterir. Konuğa herhangi bir şey sormadan önce okuyun: kayıtlardaki bir değer asla değiştirilmez ve elimizdeki bilgiyi yeniden sormak, konuğu dinlemiyormuşuz izlenimi verir.

Kimliği al

İşlem yaptığınız kimliği gösterir. Konuğa herhangi bir şey sormadan önce okuyun: kayıtlardaki bir değer asla değiştirilmez ve elimizdeki bilgiyi yeniden sormak, konuğu dinlemiyormuşuz izlenimi verir.

Parametre yok.

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get identity"
  },
  "description": "The identity you are acting for. Read it before asking the guest for anything: a value already on file is never replaced, and asking again for what we hold reads as not listening.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "required": [],
    "type": "object"
  },
  "name": "get_identity",
  "title": "Get identity"
}

🟢 get_session read Bu bağlantının erişebildiği şeyleri gösterir: açık yolculukları ve adına işlem yaptığınız, oturum açmış kişiyi ve onun kademesini — acting\ oturum açılana kadar mevcut değildir. Oturum açmış biri olup olmadığından emin değilseniz önce bunu çağırın; mevcut kademede eksik olan bilgileri toplayan aracı öğrenmek için climbWith\ okuyun.

Oturumu al

Bu bağlantının erişebildiği şeyleri gösterir: açık yolculukları ve adına işlem yaptığınız, oturum açmış kişiyi ve onun kademesini — acting\ oturum açılana kadar mevcut değildir. Oturum açmış biri olup olmadığından emin değilseniz önce bunu çağırın; mevcut kademede eksik olan bilgileri toplayan aracı öğrenmek için climbWith\ okuyun.

Parametre yok.

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get session"
  },
  "description": "What this connection reaches: the journeys open to it, and the signed-in person you act for with their rung — \`acting\` is absent until someone signs in. Call it first when unsure whether anyone is signed in, and read \`climbWith\` for the tool that collects whatever the current rung is missing.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "required": [],
    "type": "object"
  },
  "name": "get_session",
  "title": "Get session"
}

🔴 promote_identity write Eksik bilgileri sağlayarak rezervasyon yapabilecek kademeye yükseltin: ad ve soyad, bir iletişim kanalı ve kabul edilmiş Terms. Yalnızca konuğun bu konuşmada verdiği bilgileri gönderin. Anında rezervasyon yapan bir mekân için hem e-posta hem de telefon gerekir; konuk onaylanmış bir masa istiyorsa ikisini de alın.

Kimliği yükselt

Eksik bilgileri sağlayarak rezervasyon yapabilecek kademeye yükseltin: ad ve soyad, bir iletişim kanalı ve kabul edilmiş Terms. Yalnızca konuğun bu konuşmada verdiği bilgileri gönderin. Anında rezervasyon yapan bir mekân için hem e-posta hem de telefon gerekir; konuk onaylanmış bir masa istiyorsa ikisini de alın.

ParametreTürAçıklama
idempotencyKey requiredstringbu yazma işlemi için size ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
acceptTermsbooleankonuk https://www.tastematch.io/agb adresindeki Terms'ü kabul ettiğinde true
emailstringiletişim e-postası
firstNamestringkonuğun adı
lastNamestringkonuğun soyadı
phonestringuluslararası biçimde iletişim telefonu

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Promote identity"
  },
  "description": "Climb to the rung that can reserve, by supplying what the identity is missing: a first and last name, one contact channel, and accepted Terms. Only send what the guest told you in this conversation. An instant venue needs both an email and a phone, so collect both when the guest wants a confirmed table.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "acceptTerms": {
        "description": "true when the guest accepts the Terms at https://www.tastematch.io/agb",
        "type": "boolean"
      },
      "email": {
        "description": "contact email",
        "type": "string"
      },
      "firstName": {
        "description": "the guest's first name",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "lastName": {
        "description": "the guest's last name",
        "type": "string"
      },
      "phone": {
        "description": "contact phone in international format",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey"
    ],
    "type": "object"
  },
  "name": "promote_identity",
  "title": "Promote identity"
}

🔴 update_identity write Kimlik bilgilerini düzeltin veya tamamlayın. Boş bir alan doldurulur, yanlış bir alan düzeltilir; ancak konuğun doğruladığı bir iletişim kanalı buradan değiştirilemez. Yalnızca değişen bilgileri gönderin.

Kimliği güncelle

Kimlik bilgilerini düzeltin veya tamamlayın. Boş bir alan doldurulur, yanlış bir alan düzeltilir; ancak konuğun doğruladığı bir iletişim kanalı buradan değiştirilemez. Yalnızca değişen bilgileri gönderin.

ParametreTürAçıklama
idempotencyKey requiredstringbu yazma işlemi için size ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
acceptTermsbooleankonuk https://www.tastematch.io/agb adresindeki Terms'ü kabul ettiğinde true
emailstringiletişim e-postası
firstNamestringkonuğun adı
lastNamestringkonuğun soyadı
phonestringuluslararası biçimde iletişim telefonu

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Update identity"
  },
  "description": "Correct or complete the identity. A blank field is filled and a wrong one is corrected, but a channel the guest has validated cannot be replaced from here. Send only what changed.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "acceptTerms": {
        "description": "true when the guest accepts the Terms at https://www.tastematch.io/agb",
        "type": "boolean"
      },
      "email": {
        "description": "contact email",
        "type": "string"
      },
      "firstName": {
        "description": "the guest's first name",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "lastName": {
        "description": "the guest's last name",
        "type": "string"
      },
      "phone": {
        "description": "contact phone in international format",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey"
    ],
    "type": "object"
  },
  "name": "update_identity",
  "title": "Update identity"
}

ZEVK

🔴 get_taste_profile read Bu kimliğin kayıtlı zevk profilini gösterir: içerdiği tanımlayıcıları, her biri için belirtilen güven düzeyini ve bunlardan türetilen zevk türünü. Zevki yeniden belirtmeden önce okuyun — yeni bir profil oluşturmuyor, mevcut profili düzeltiyorsunuz.

Zevk profilini al

Bu kimliğin kayıtlı zevk profilini gösterir: içerdiği tanımlayıcıları, her biri için belirtilen güven düzeyini ve bunlardan türetilen zevk türünü. Zevki yeniden belirtmeden önce okuyun — yeni bir profil oluşturmuyor, mevcut profili düzeltiyorsunuz.

Parametre yok.

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get taste profile"
  },
  "description": "What this identity's taste is on file as: the descriptors it carries, the confidence stated for each, and the taste type derived from them. Read it before stating taste again — you are correcting a profile, not starting one.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "required": [],
    "type": "object"
  },
  "name": "get_taste_profile",
  "title": "Get taste profile"
}

🔴 submit_taste_profile write Konuğun zevkini, her tanımlayıcı için 0 ile 1 arasında bir güven düzeyiyle belirtin ve konuşmanın desteklediği kadar çok tanımlayıcı çıkarın. Bu, kayıtlı bilgilerin yerini alır; bu nedenle düzeltme değil, profilin tamamını gönderin. Tanımlayıcılar, weights\ tarafından adlandırılan ve get_vocabulary tarafından yayımlanan tanımlayıcılardır — diğerleri reddedilir. Özel günler ve menü özellikleri profilin geri kalanıyla birlikte saklanır, ancak mekân nitelikleridir; bu nedenle zevk vektörü yerine filtreleri şekillendirirler. İsteğe bağlıdır: keşif, listeler ve rezervasyon bunlar olmadan da çalışır; yalnızca list_recommended_restaurants sonuçlarını kişiselleştirir.

Zevk profilini gönder Misafirin damak zevkini, her tanımlayıcı için 0 ile 1 arasında bir güven değeriyle belirtin ve konuşmanın desteklediği kadar çok tanımlayıcı çıkarın. Bu, kayıtlı olanların yerini alır; bu yüzden bir düzeltme yerine tüm bilgileri gönderin. Tanımlayıcılar, weights\ tarafından adlandırılan ve tamamı get_vocabulary ile yayımlanan tanımlayıcılardır — diğerleri reddedilir. Özel günler ve menü özellikleri geri kalan bilgilerle birlikte saklanır, ancak mekân özellikleridir; bu nedenle damak zevki vektörü yerine filtreleri şekillendirirler. İsteğe bağlıdır: keşif, listeler ve rezervasyon onsuz da çalışır; yalnızca list_recommended_restaurants aracını kişiselleştirir.

ParametreTürAçıklama
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
weights zorunlumap<string, number>her tanımlayıcı için 0 ile 1 arasında güven değeri; şu tanımlayıcılardan biri: apero, breakfast, brunch, dinner, dishCocktails, dishCraftBeer, dishNatureWine, dishWine, fineDining, late, lunch, menuFish, menuMeat, menuVegan, menuVegetarian, occasionBusiness, occasionCasual, occasionCelebration, occasionChildren, occasionCulture, occasionGroups, occasionImpressive, occasionRomantic, occasionSolo, priceCheap, pricePricey, salty, sweets

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Submit taste profile"
  },
  "description": "State the guest's taste as a confidence from 0 to 1 per descriptor, and infer as many as the conversation supports. This replaces what was on file, so send the whole picture rather than a correction. The descriptors are the ones \`weights\` names, all published by get_vocabulary — any other is refused. Occasions and menu characters are stored with the rest but are venue attributes, so they shape filters rather than the taste vector. Optional: discovery, lists and booking all work without it; it only makes list_recommended_restaurants personal.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "weights": {
        "additionalProperties": {
          "type": "number"
        },
        "description": "confidence 0 to 1 per descriptor, one of apero, breakfast, brunch, dinner, dishCocktails, dishCraftBeer, dishNatureWine, dishWine, fineDining, late, lunch, menuFish, menuMeat, menuVegan, menuVegetarian, occasionBusiness, occasionCasual, occasionCelebration, occasionChildren, occasionCulture, occasionGroups, occasionImpressive, occasionRomantic, occasionSolo, priceCheap, pricePricey, salty, sweets",
        "type": "object"
      }
    },
    "required": [
      "idempotencyKey",
      "weights"
    ],
    "type": "object"
  },
  "name": "submit_taste_profile",
  "title": "Submit taste profile"
}

LİSTELER

🔴 add_restaurant_to_list yazma Bir mekânı kimliğin listelerinden birine ekleyin. Zaten listede olan bir mekânı eklemek hiçbir şeyi değiştirmez.

Restoranı listeye ekle

Bir mekânı kimliğin listelerinden birine ekleyin. Zaten listede olan bir mekânı eklemek hiçbir şeyi değiştirmez.

ParametreTürAçıklama
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
listKey zorunlustringeklenecek liste
restaurantKey zorunlustringeklenecek mekân

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Add restaurant to list"
  },
  "description": "Put a venue on one of the identity's lists. Adding one that is already there changes nothing.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "listKey": {
        "description": "the list to add to",
        "type": "string"
      },
      "restaurantKey": {
        "description": "the venue to add",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "listKey",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "add_restaurant_to_list",
  "title": "Add restaurant to list"
}

🔴 create_list yazma Kimlik için adlandırılmış bir liste oluşturun. Amacına uygun bir ad verin — misafir bu adı bir sonraki gelişinde yeniden görecek, siz de göreceksiniz.

Liste oluştur

Kimlik için adlandırılmış bir liste oluşturun. Amacına uygun bir ad verin — misafir bu adı bir sonraki gelişinde yeniden görecek, siz de göreceksiniz.

ParametreTürAçıklama
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
title zorunlustringlistenin ne amaçla oluşturulduğu, misafirin dilinde

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Create list"
  },
  "description": "Start a named list for the identity. Name it for what it is for — the guest will see the name again next time, and so will you.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "title": {
        "description": "what the list is for, in the guest's language",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "title"
    ],
    "type": "object"
  },
  "name": "create_list",
  "title": "Create list"
}

🔴 delete_list yıkıcı Kimliğin listelerinden birini ve listedeki her şeyi silin. Önce listeyi okuyun ve misafire nelerin silineceğini söyleyin; bu işlem geri alınamaz.

Listeyi sil

Kimliğin listelerinden birini ve listedeki her şeyi silin. Önce listeyi okuyun ve misafire nelerin silineceğini söyleyin; bu işlem geri alınamaz.

ParametreTürAçıklama
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
listKey zorunlustringsilinecek liste

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Delete list"
  },
  "description": "Delete one of the identity's lists and everything on it. Read the list first and tell the guest what will go; this cannot be undone.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "listKey": {
        "description": "the list to delete",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "listKey"
    ],
    "type": "object"
  },
  "name": "delete_list",
  "title": "Delete list"
}

🔴 get_list okuma İşlem yapan kimliğin listelerinden birini, içindeki tüm mekânlarla birlikte okuyun. Başka bir kimliğin listesi okunamaz.

Listeyi getir

İşlem yapan kimliğin listelerinden birini, içindeki tüm mekânlarla birlikte okuyun. Başka bir kimliğin listesi okunamaz.

ParametreTürAçıklama
listKey zorunlustringlist_lists aracından alınan listenin anahtarı

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get list"
  },
  "description": "Read one of the acting identity's lists in full, with every venue on it. Another identity's list is not readable.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "listKey": {
        "description": "the list's key, from list_lists",
        "type": "string"
      }
    },
    "required": [
      "listKey"
    ],
    "type": "object"
  },
  "name": "get_list",
  "title": "Get list"
}

🔴 list_lists okuma Kimliğin kendi listelerini, her biri için öğe sayısı ve kapak görseliyle birlikte gösterir. Geri dönen bir konuşmanın başında bunu okuyun: misafirin son seferde sakladığı şey budur.

Listeleri listele

Kimliğin kendi listelerini, her biri için öğe sayısı ve kapak görseliyle birlikte gösterir. Geri dönen bir konuşmanın başında bunu okuyun: misafirin son seferde sakladığı şey budur.

ParametreTürAçıklama
limitintegerdöndürülecek satır sayısı, en fazla 50
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile birlikte sayfalar arasında gezinmeyi sağlar

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List lists"
  },
  "description": "The identity's own lists, with a count and a cover for each. Read this at the start of a returning conversation: it is what the guest kept last time.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      }
    },
    "required": [],
    "type": "object"
  },
  "name": "list_lists",
  "title": "List lists"
}

🔴 remove_restaurant_from_list yıkıcı Bir mekânı kimliğin listelerinden birinden çıkarın. Çağırmadan önce misafire hangi mekânı hangi listeden çıkaracağınızı söyleyin — bu işlem verileri siler.

Restoranı listeden çıkar

Bir mekânı kimliğin listelerinden birinden çıkarın. Çağırmadan önce misafire hangi mekânı hangi listeden çıkaracağınızı söyleyin — bu işlem verileri siler.

ParametreTürAçıklama
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
listKey zorunlustringmekânın çıkarılacağı liste
restaurantKey zorunlustringçıkarılacak mekân

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Remove restaurant from list"
  },
  "description": "Take a venue off one of the identity's lists. Say which venue and which list to the guest before you call it — this removes data.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "listKey": {
        "description": "the list to remove from",
        "type": "string"
      },
      "restaurantKey": {
        "description": "the venue to remove",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "listKey",
      "restaurantKey"
    ],
    "type": "object"
  },
  "name": "remove_restaurant_from_list",
  "title": "Remove restaurant from list"
}

🔴 update_list yazma Kimliğin listelerinden birinin adını değiştirin. Listedeki mekânlar etkilenmez.

Listeyi güncelle

Kimliğin listelerinden birinin adını değiştirin. Listedeki mekânlar etkilenmez.

ParametreTürAçıklama
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
listKey zorunlustringyeniden adlandırılacak liste
title zorunlustringyeni ad

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Update list"
  },
  "description": "Rename one of the identity's lists. The venues on it are untouched.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "listKey": {
        "description": "the list to rename",
        "type": "string"
      },
      "title": {
        "description": "the new name",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "listKey",
      "title"
    ],
    "type": "object"
  },
  "name": "update_list",
  "title": "Update list"
}

GRUP

🔴 close_group_match yazma Grup eşleşmesine yeni oy verilmesini durdurun. Eşleşme ve tüm oylar okunabilir kalır; yalnızca oylama durur. Grup kararını verdikten sonra eşleşmeyi kapatın, ardından kazanan için rezervasyon yapın.

Grup eşleşmesini kapat

Grup eşleşmesine yeni oy verilmesini durdurun. Eşleşme ve tüm oylar okunabilir kalır; yalnızca oylama durur. Grup kararını verdikten sonra eşleşmeyi kapatın, ardından kazanan için rezervasyon yapın.

ParametreTürAçıklama
groupMatchKey zorunlustringkapatılacak eşleşme
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Close group match"
  },
  "description": "Close a group match to further votes. The match and every vote stay readable; only voting stops. Close it once the group has decided, then book the winner.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "groupMatchKey": {
        "description": "the match to close",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      }
    },
    "required": [
      "groupMatchKey",
      "idempotencyKey"
    ],
    "type": "object"
  },
  "name": "close_group_match",
  "title": "Close group match"
}

🔴 create_group_match yazma Bir grup kararı başlatın: birkaç mekân, birkaç tarih ve fikri sorulacak kişiler. Yanıtta bir paylaşım bağlantısı bulunur — misafire bunu başkalarına göndermesini söyleyin; davetlilerin bu bağlantı üzerinden oy vermek için TasteMatch kimliğine ihtiyacı yoktur. Seçenekleri az tutun: bu bir katalog değil, karar sürecidir.

Grup eşleşmesi oluştur

Bir grup kararı başlatın: birkaç mekân, birkaç tarih ve fikri sorulacak kişiler. Yanıtta bir paylaşım bağlantısı bulunur — misafire bunu başkalarına göndermesini söyleyin; davetlilerin bu bağlantı üzerinden oy vermek için TasteMatch kimliğine ihtiyacı yoktur. Seçenekleri az tutun: bu bir katalog değil, karar sürecidir.

ParametreTürAçıklama
dateOptions zorunluarray<string>aralarında seçim yapılacak tarihler; bölgenin UTC farkını içeren RFC3339 biçiminde
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
restaurantKeys zorunluarray<string>aralarında seçim yapılacak mekânlar
title zorunlustringgrubun neye karar verdiği, misafirin kendi sözleriyle
inviteesarray<object>her biri adı ve e-posta adresiyle belirtilen, fikri sorulacak kişiler
invitees[].displayName zorunlustringgrubun göreceği ad
invitees[].email zorunlustringdavetin gönderileceği yer

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Create group match"
  },
  "description": "Start a group decision: a few venues, a few dates, and the people to ask. The answer carries a share link — give that to the guest to send on, because an invitee needs no TasteMatch identity to vote through it. Keep the options few: this is a decision, not a catalogue.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "dateOptions": {
        "description": "the dates to choose between, RFC3339 with the region's UTC offset",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "invitees": {
        "description": "the people to ask, each by name and email",
        "items": {
          "additionalProperties": false,
          "properties": {
            "displayName": {
              "description": "the name the group will see",
              "type": "string"
            },
            "email": {
              "description": "where the invitation goes",
              "type": "string"
            }
          },
          "required": [
            "displayName",
            "email"
          ],
          "type": "object"
        },
        "type": "array"
      },
      "restaurantKeys": {
        "description": "the venues to choose between",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "title": {
        "description": "what the group is deciding, in the guest's words",
        "type": "string"
      }
    },
    "required": [
      "dateOptions",
      "idempotencyKey",
      "restaurantKeys",
      "title"
    ],
    "type": "object"
  },
  "name": "create_group_match",
  "title": "Create group match"
}

🔴 delete_group_match yıkıcı Grup eşleşmesini silin. Paylaşım bağlantısı, bu bağlantıya sahip herkes için çalışmayı durdurur ve oylar da silinir. Çağırmadan önce eşleşmeyi okuyun ve misafire nelerin silineceğini söyleyin.

Grup eşleşmesini sil

Grup eşleşmesini silin. Paylaşım bağlantısı, bu bağlantıya sahip herkes için çalışmayı durdurur ve oylar da silinir. Çağırmadan önce eşleşmeyi okuyun ve misafire nelerin silineceğini söyleyin.

ParametreTürAçıklama
groupMatchKey zorunlustringsilinecek eşleşme
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Delete group match"
  },
  "description": "Delete a group match. The share link stops working for everyone who holds it, and the votes go with it. Read the match and tell the guest what will go before you call this.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "groupMatchKey": {
        "description": "the match to delete",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      }
    },
    "required": [
      "groupMatchKey",
      "idempotencyKey"
    ],
    "type": "object"
  },
  "name": "delete_group_match",
  "title": "Delete group match"
}

🔴 get_group_match okuma Kimliğin oluşturduğu tek bir grup eşleşmesi: mekânlar, tarih seçenekleri, davet edilenler, kimin neye oy verdiği ve paylaşım bağlantısı.

Grup eşleşmesini getir

Kimliğin oluşturduğu tek bir grup eşleşmesi: mekânlar, tarih seçenekleri, davet edilenler, kimin neye oy verdiği ve paylaşım bağlantısı.

ParametreTürAçıklama
groupMatchKey zorunlustringlist_group_matches aracından alınan eşleşmenin anahtarı

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get group match"
  },
  "description": "One group match the identity created: the venues, the date options, who was invited, who has voted and for what, and the share link.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "groupMatchKey": {
        "description": "the match's key, from list_group_matches",
        "type": "string"
      }
    },
    "required": [
      "groupMatchKey"
    ],
    "type": "object"
  },
  "name": "get_group_match",
  "title": "Get group match"
}

🔴 list_group_matches okuma Bu kimliğin oluşturduğu grup eşleşmelerini, kaç kişinin davet edildiği ve kaç kişinin oy verdiği bilgileriyle birlikte gösterir. Yalnızca davet edildiği eşleşmeler burada yer almaz.

Grup eşleşmelerini listele

Bu kimliğin oluşturduğu grup eşleşmelerini, kaç kişinin davet edildiği ve kaç kişinin oy verdiği bilgileriyle birlikte gösterir. Yalnızca davet edildiği eşleşmeler burada yer almaz.

ParametreTürAçıklama
limitintegerdöndürülecek satır sayısı, en fazla 50
offsetintegeratlanacak satır sayısı; sonuçtaki totalCount ile birlikte sayfalar arasında gezinmeyi sağlar

Wire tanımı (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List group matches"
  },
  "description": "The group matches this identity created, with how many were invited and how many have voted. Matches it was merely invited to are not here.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "limit": {
        "description": "rows to return, at most 50",
        "type": "integer"
      },
      "offset": {
        "description": "rows to skip; with totalCount in the result this pages through them",
        "type": "integer"
      }
    },
    "required": [],
    "type": "object"
  },
  "name": "list_group_matches",
  "title": "List group matches"
}

🔴 submit_group_match_vote yazma Açık bir grup eşleşmesinde bir kişinin oyunu kullanın. Adıyla davet edilen biri için memberId\ gönderin; paylaşım bağlantısından katılan biri için bunun yerine displayName\ gönderin. Yalnızca kişinin gerçekten söylediği tercihi oylayın: eşleşme anahtarına sahip olmak, yetkilendirme için yeterlidir ve o kişiden almadığınız bir memberId, onun oyunu değiştirir. Eşleşme hâlâ açık olmalıdır.

Grup eşleşmesi oyu gönder

Açık bir grup eşleşmesinde bir kişinin oyunu kullanın. Adıyla davet edilen biri için memberId\ gönderin; paylaşım bağlantısından katılan biri için bunun yerine displayName\ gönderin. Yalnızca kişinin gerçekten söylediği tercihi oylayın: eşleşme anahtarına sahip olmak, yetkilendirme için yeterlidir ve o kişiden almadığınız bir memberId, onun oyunu değiştirir. Eşleşme hâlâ açık olmalıdır.

ParametreTürAçıklama
groupMatchKey zorunlustringoy verilen eşleşme
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür
picks zorunluarray<object>kişinin kabul ettiği her mekân ve tarih çifti için bir seçim
picks[].dateOptionIdx zorunluintegersıfırdan başlayarak sayılan tarih seçeneğinin indeksi
picks[].restaurantKey zorunlustring
displayNamestringbağlantı üzerinden katılan ve adıyla davet edilmemiş kişinin adı
memberIdstringbu oyun ait olduğu davetli; get_group_match aracından alınır

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Submit group match vote"
  },
  "description": "Cast one person's vote in an open group match. Pass \`memberId\` for someone who was invited by name; pass \`displayName\` instead for someone joining off the share link. Vote only what that person actually said: possession of the match key is the whole authorisation, and a memberId you did not collect from that person overwrites their vote. The match must still be open.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "displayName": {
        "description": "the name of someone joining off the link, when they were not invited by name",
        "type": "string"
      },
      "groupMatchKey": {
        "description": "the match being voted in",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "memberId": {
        "description": "the invitee this vote belongs to, from get_group_match",
        "type": "string"
      },
      "picks": {
        "description": "one pick per venue and date pair the person accepts",
        "items": {
          "additionalProperties": false,
          "properties": {
            "dateOptionIdx": {
              "description": "the index of the date option, counting from zero",
              "type": "integer"
            },
            "restaurantKey": {
              "type": "string"
            }
          },
          "required": [
            "dateOptionIdx",
            "restaurantKey"
          ],
          "type": "object"
        },
        "type": "array"
      }
    },
    "required": [
      "groupMatchKey",
      "idempotencyKey",
      "picks"
    ],
    "type": "object"
  },
  "name": "submit_group_match_vote",
  "title": "Submit group match vote"
}

PAYLAŞIM

🔴 cancel_shared_reservation yıkıcı Misafirin düzenleme bağlantısına sahip olduğu bir rezervasyonu iptal edin. Bu işlem geri alınamaz. Çağırmadan önce mekânı ve saati misafire tekrar söyleyin ve onayını bekleyin. İşlem yapan kimliğin sahibi olduğu bir rezervasyon için bunun yerine cancel_reservation kullanın; bu araç onayı sizin için kontrol eder.

Paylaşılan rezervasyonu iptal et

Misafirin düzenleme bağlantısına sahip olduğu bir rezervasyonu iptal edin. Bu işlem geri alınamaz. Çağırmadan önce mekânı ve saati misafire tekrar söyleyin ve onayını bekleyin. İşlem yapan kimliğin sahibi olduğu bir rezervasyon için bunun yerine cancel_reservation kullanın; bu araç onayı sizin için kontrol eder.

ParametreTürAçıklama
editToken zorunlustringmisafirin kendi düzenleme bağlantısındaki belirteç
idempotencyKey zorunlustringbu tek yazma işlemi için kendinizin belirlediği bir anahtar; aynı anahtarı tekrar göndermek, iki kez yazmak yerine ilk sonucu döndürür

Wire tanımı (tools/list)

{
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Cancel shared reservation"
  },
  "description": "Cancel a reservation the guest holds an edit link for. This cannot be undone. Say the venue and the time back to the guest and wait for them before you call it. For a reservation the acting identity owns, use cancel_reservation instead, which checks that echo for you.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "editToken": {
        "description": "the token from the guest's own edit link",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      }
    },
    "required": [
      "editToken",
      "idempotencyKey"
    ],
    "type": "object"
  },
  "name": "cancel_shared_reservation",
  "title": "Cancel shared reservation"
}

🔴 create_share_key write Misafirin başka birine gönderebileceği bir bağlantı oluşturun. Yalnızca okuma amaçlıdır: bağlantıyı açan herkes içeriği görebilir, ancak düzenleyemez. Aynı nesne için iki kez bağlantı oluşturmak aynı bağlantıyı döndürür. Yalnızca misafirin sorduğu bir mekân veya oturum açmış kimliğin sahibi olduğu bir rezervasyon için bağlantı oluşturun — bağlantıya sahip olan herkes içeriği okuyabilir ve rezervasyon bağlantısı mekânı, tarihi ve kişi sayısını gösterir.

Paylaşım anahtarı oluştur

Misafirin başka birine gönderebileceği bir bağlantı oluşturun. Yalnızca okuma amaçlıdır: bağlantıyı açan herkes içeriği görebilir, ancak düzenleyemez. Aynı nesne için iki kez bağlantı oluşturmak aynı bağlantıyı döndürür. Yalnızca misafirin sorduğu bir mekân veya oturum açmış kimliğin sahibi olduğu bir rezervasyon için bağlantı oluşturun — bağlantıya sahip olan herkes içeriği okuyabilir ve rezervasyon bağlantısı mekânı, tarihi ve kişi sayısını gösterir.

ParametreTürAçıklama
idempotencyKey requiredstringbu tek yazma işlemi için kendinize ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
kind requiredstringpaylaşılacak şey: restaurant, reservation
objectKey requiredstringpaylaşılacak mekânın veya rezervasyonun anahtarı

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Create share key"
  },
  "description": "Mint a link the guest can send to someone else. Read-kind only: whoever opens it can look, never edit. Minting twice for the same object returns the same link. Mint only for a venue the guest asked about or a reservation the acting identity owns — a link is readable by anyone who holds it, and a reservation's link shows the venue, the date and the party size.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "kind": {
        "description": "what to share: restaurant, reservation",
        "type": "string"
      },
      "objectKey": {
        "description": "the key of the venue or reservation to share",
        "type": "string"
      }
    },
    "required": [
      "idempotencyKey",
      "kind",
      "objectKey"
    ],
    "type": "object"
  },
  "name": "create_share_key",
  "title": "Create share key"
}

🟢 get_share_sitemap read Paylaşılabilir tüm mekânların ve listelerin XML biçimindeki herkese açık dizini. Büyük bir dosyadır: tek bir soruyu yanıtlamak için değil, nelerin mevcut olduğunu keşfetmek için okuyun.

Paylaşım site haritasını al

Paylaşılabilir tüm mekânların ve listelerin XML biçimindeki herkese açık dizini. Büyük bir dosyadır: tek bir soruyu yanıtlamak için değil, nelerin mevcut olduğunu keşfetmek için okuyun.

Parametre yok.

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get share sitemap"
  },
  "description": "The public index of every shareable venue and list, as XML. Large: read it to discover what exists at all, not to answer one question.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "required": [],
    "type": "object"
  },
  "name": "get_share_sitemap",
  "title": "Get share sitemap"
}

🟢 resolve_share_public_id read tastematch.io mekân veya liste URL'sindeki okunabilir herkese açık sayfa kimliğini, adlandırdığı nesneye ve nesnenin anahtarına dönüştürün.

Herkese açık paylaşım kimliğini çözümle

tastematch.io mekân veya liste URL'sindeki okunabilir herkese açık sayfa kimliğini, adlandırdığı nesneye ve nesnenin anahtarına dönüştürün.

ParametreTürAçıklama
objectType requiredstringrestaurant veya list
publicId requiredstringherkese açık URL'deki okunabilir kimlik

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Resolve share public id"
  },
  "description": "Turn a public page id — the readable one in a tastematch.io venue or list URL — into the object it names and its key.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "objectType": {
        "description": "restaurant or list",
        "type": "string"
      },
      "publicId": {
        "description": "the readable id from the public URL",
        "type": "string"
      }
    },
    "required": [
      "objectType",
      "publicId"
    ],
    "type": "object"
  },
  "name": "resolve_share_public_id",
  "title": "Resolve share public id"
}

🟢 resolve_share_token read Misafirin yapıştırdığı paylaşım bağlantısını, işaret ettiği şeye — bir mekâna, rezervasyona veya grup eşleşmesine — ve devam etmek için gereken anahtara dönüştürün. Bağlantının son yol segmenti olan token'ı iletin. Süresi dolmuş veya bize ait olmayan bir bağlantı için yalnızca bulunamadı yanıtı verilir.

Paylaşım token'ını çözümle

Misafirin yapıştırdığı paylaşım bağlantısını, işaret ettiği şeye — bir mekâna, rezervasyona veya grup eşleşmesine — ve devam etmek için gereken anahtara dönüştürün. Bağlantının son yol segmenti olan token'ı iletin. Süresi dolmuş veya bize ait olmayan bir bağlantı için yalnızca bulunamadı yanıtı verilir.

ParametreTürAçıklama
token requiredstringpaylaşım bağlantısındaki token, yani son yol segmenti

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Resolve share token"
  },
  "description": "Turn a share link the guest pasted into the thing it points at — a venue, a reservation or a group match — and the key to carry on with. Pass the token, which is the last path segment of the link. A link that has expired or was never ours is simply not found.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "token": {
        "description": "the token from the share link, its last path segment",
        "type": "string"
      }
    },
    "required": [
      "token"
    ],
    "type": "object"
  },
  "name": "resolve_share_token",
  "title": "Resolve share token"
}

🔴 update_shared_reservation write Misafirin düzenleme bağlantısına sahip olduğu bir rezervasyonu değiştirin — bizim aracılığımızla değil, başka bir yerde oluşturulmuş bir rezervasyonu. Bağlantı yetkilendirme işlevi görür; bu nedenle misafirden bağlantıyı isteyin ve yalnızca adını verdiği rezervasyon için kullanın. Oturum açmış kimliğin sahibi olduğu bir rezervasyon için bunun yerine update_reservation kullanın.

Paylaşılan rezervasyonu güncelle

Misafirin düzenleme bağlantısına sahip olduğu bir rezervasyonu değiştirin — bizim aracılığımızla değil, başka bir yerde oluşturulmuş bir rezervasyonu. Bağlantı yetkilendirme işlevi görür; bu nedenle misafirden bağlantıyı isteyin ve yalnızca adını verdiği rezervasyon için kullanın. Oturum açmış kimliğin sahibi olduğu bir rezervasyon için bunun yerine update_reservation kullanın.

ParametreTürAçıklama
editToken requiredstringmisafirin kendi düzenleme bağlantısındaki token
idempotencyKey requiredstringbu tek yazma işlemi için kendinize ait bir anahtar; aynı anahtarı yeniden göndermek, iki kez yazmak yerine ilk sonucu döndürür
dateTimestringyeni saat; bölgenin UTC farkını içeren RFC3339 biçiminde
paxintegeryeni kişi sayısı

Wire definition (tools/list)

{
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": false,
    "title": "Update shared reservation"
  },
  "description": "Change a reservation the guest holds an edit link for — one made somewhere else, not through us. The link is the authorisation, so ask the guest for it and use it only for the reservation they named. For a reservation the acting identity owns, use update_reservation instead.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "dateTime": {
        "description": "the new time, RFC3339 with the region's UTC offset",
        "type": "string"
      },
      "editToken": {
        "description": "the token from the guest's own edit link",
        "type": "string"
      },
      "idempotencyKey": {
        "description": "a key of your own for this one write; sending the same key again returns the first result instead of writing twice",
        "type": "string"
      },
      "pax": {
        "description": "the new party size",
        "type": "integer"
      }
    },
    "required": [
      "editToken",
      "idempotencyKey"
    ],
    "type": "object"
  },
  "name": "update_shared_reservation",
  "title": "Update shared reservation"
}

YARDIMCI ARAÇLAR

🟢 get_skill read Bir veya daha fazla oyun kitabının tamamını okuyun. Her seferinde bir tane istemek yerine birkaçını birden isteyin.

Beceriyi al

Bir veya daha fazla oyun kitabının tamamını okuyun. Her seferinde bir tane istemek yerine birkaçını birden isteyin.

ParametreTürAçıklama
names requiredarray<string>list_skills aracından alınan, okunacak oyun kitapları

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get skill"
  },
  "description": "Read one or more playbooks in full. Ask for several at once rather than one per turn.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "names": {
        "description": "the playbooks to read, from list_skills",
        "items": {
          "type": "string"
        },
        "type": "array"
      }
    },
    "required": [
      "names"
    ],
    "type": "object"
  },
  "name": "get_skill",
  "title": "Get skill"
}

🟢 get_vocabulary read Filtrelerin kabul ettiği tüm değerleri eksenlerine göre ve bunları birleştirme kuralıyla birlikte gösterir. İlk filtrenizi kullanmadan önce okuyun ve konuşma boyunca aklınızda tutun — tahmin edilen bir tanımlayıcı reddedilir, tahmin edilen bir mutfak slug'ı ise sessizce hiçbir sonuçla eşleşmez.

Söz varlığını al

Filtrelerin kabul ettiği tüm değerleri eksenlerine göre ve bunları birleştirme kuralıyla birlikte gösterir. İlk filtrenizi kullanmadan önce okuyun ve konuşma boyunca aklınızda tutun — tahmin edilen bir tanımlayıcı reddedilir, tahmin edilen bir mutfak slug'ı ise sessizce hiçbir sonuçla eşleşmez.

Parametre yok.

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get vocabulary"
  },
  "description": "Every value the filters accept, by axis, with the rule for combining them. Read it before your first filter and keep it for the conversation — a guessed descriptor is refused, and a guessed cuisine slug quietly matches nothing.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "required": [],
    "type": "object"
  },
  "name": "get_vocabulary",
  "title": "Get vocabulary"
}

🟢 list_skills read Kullanılabilir oyun kitaplarını, her biri tek satırda listeler. Daha önce izlemediğiniz bir yolculuğa başlamadan önce bir oyun kitabını okuyun; araç açıklamalarında bulunmayan işlem sırasını ve dikkat edilmesi gereken noktaları içerirler.

Becerileri listele

Kullanılabilir oyun kitaplarını, her biri tek satırda listeler. Daha önce izlemediğiniz bir yolculuğa başlamadan önce bir oyun kitabını okuyun; araç açıklamalarında bulunmayan işlem sırasını ve dikkat edilmesi gereken noktaları içerirler.

Parametre yok.

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List skills"
  },
  "description": "The playbooks available, one line each. Read a playbook before a journey you have not done before; they carry the sequence and the traps that the tool descriptions cannot.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "required": [],
    "type": "object"
  },
  "name": "list_skills",
  "title": "List skills"
}

🟡 resolve_key read Misafirin söylediği bir adı, en olası eşleşme başta olacak şekilde, karşılık gelebileceği anahtarlara dönüştürün. kind\ ne aradığınızı belirtir: restaurant, region, list, reservation. list\ veya reservation\, oturum açmış kişiye aittir ve oturum açılmasını gerektirir. Her öğe için bir kez çözümleyin, ardından anahtarı sonraki işlemlerde kullanın: daha sonra yeniden çözümlenen bir ad farklı bir mekâna karşılık gelebilir. Birden fazla aday yakın eşleştiğinde etiketi misafire tekrar söyleyin.

Anahtarı çözümle

Misafirin söylediği bir adı, en olası eşleşme başta olacak şekilde, karşılık gelebileceği anahtarlara dönüştürün. kind\ ne aradığınızı belirtir: restaurant, region, list, reservation. list\ veya reservation\, oturum açmış kişiye aittir ve oturum açılmasını gerektirir. Her öğe için bir kez çözümleyin, ardından anahtarı sonraki işlemlerde kullanın: daha sonra yeniden çözümlenen bir ad farklı bir mekâna karşılık gelebilir. Birden fazla aday yakın eşleştiğinde etiketi misafire tekrar söyleyin.

ParametreTürAçıklama
kind requiredstringçözümlenecek öğe: restaurant, region, list, reservation
latnumberbir bölgeyi ad yerine koordinatlardan çözümlemek için enlem
lngnumberlat ile birlikte kullanılan boylam
regionIdstringrestaurant aramasını tek bir bölgeyle sınırlandırır
textstringmisafirin söylediği ad

Wire definition (tools/list)

{
  "annotations": {
    "idempotentHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Resolve key"
  },
  "description": "Turn a name the guest said into the keys it might mean, best first. \`kind\` says what you are looking for: restaurant, region, list, reservation. A \`list\` or a \`reservation\` is the signed-in person's own and needs a sign-in. Resolve once per thing and then thread the key: a name resolved again later can land on a different venue. Say the label back to the guest when more than one candidate came close.",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "kind": {
        "description": "what to resolve: restaurant, region, list, reservation",
        "type": "string"
      },
      "lat": {
        "description": "latitude, to resolve a region from a point instead of a name",
        "type": "number"
      },
      "lng": {
        "description": "longitude, paired with lat",
        "type": "number"
      },
      "regionId": {
        "description": "bound a restaurant search to one region",
        "type": "string"
      },
      "text": {
        "description": "the name as the guest said it",
        "type": "string"
      }
    },
    "required": [
      "kind"
    ],
    "type": "object"
  },
  "name": "resolve_key",
  "title": "Resolve key"
}

TALİMATLAR

TasteMatch çekirdeğini kullanan bir ajansınız — restoran keşfi, damak tadı eşleştirme ve rezervasyonlar. Yararlı olmak için TasteMatch vektörünü veya etiketleme sistemimizi anlamanız gerekmez. Herhangi bir filtreyi, ona yüklediğiniz yoruma göre kullanın. Asla bir tanımlayıcı uydurmayın — get_vocabulary çağırın. Tek bir kişi adına işlem yaparsınız: bu bağlantıda oturum açan kişi. Henüz kimse oturum açmadıysa keşif işlemleri çalışır; kişi gerektiren bir araç, oturum açılmasını ister. Yolculuklar: DISCOVER, PLACE, RESTAURANT, AVAILABILITY, RESERVATION, IDENTITY, TASTE, LISTS, GROUP, SHARE, UTILITY. Adlandırma kuralı — her araç bu kurala uyar: get_ | list_ | search_ | filter_ | count_ | resolve_ read create_ | update_ | delete_ | {verb}_ write Amaca göre yönlendirme: Bir ad, anahtar değil -> resolve_key, ardından anahtarla işlem yapın "X'e benzer restoranlar" -> filter_restaurants, get_vocabulary içindeki özellikler "kaç tane" -> count_restaurants; asla önce filtreleyip sonra satırları saymayın Belirli bir mekân -> get_restaurant, fields[] ile Belirli bir yemek -> search_dishes Rezervasyon -> get_reservation_info -> list_availability_slots -> create_instant_reservation veya create_reservation_request Daha sonra saklanacak bir şey -> bir liste Anahtarlarınızı saklayın. Bir adı bir kez çözümleyin, ardından yolculuğun geri kalanında anahtarı kullanın. Elinizde zaten anahtarı olan bir adı yeniden çözümlemeyin. Listeler sizin deponuzdur. Kısa listenizi, karşılaştırma kümenizi veya konuştuğunuz yerleri adlandırılmış bir listeye ekleyin: liste oturum açmış kimliğe aittir ve sonraki oturumda da orada kalır; bağlamınız ise kalmaz. Kimlik bilgileri yalnızca gerektiğinde, asla önceden alınır. Keşif hiçbir şey yazmaz ve oturum açmayı gerektirmez. Rezervasyon için rezervasyon basamağı gerekir: bir ad, bir iletişim kanalı ve kabul edilmiş Terms. Kimlik bilgileri nedeniyle isteği reddeden bir araç, eksik basamağı ve o basamağa çıkmanızı sağlayan aracı belirtir. Dosyada zaten bulunan bir değer, gönderdiğiniz hiçbir değerle değiştirilmez. Sosyal özellik yoktur: takip etme, engelleme, takipçiler, kullanıcı arama, bildirimler veya profillere göz atma. Grup eşleşmesi, birden fazla kişiyi içeren tek özelliktir ve paylaşım bağlantısıyla çalışır — davetlilerin TasteMatch kimliğine ihtiyacı yoktur. Veri verimliliği: varsayılan limit 10'dur; totalCount her zaman bildirilir. Her zaman filtre uygulayın. Tüm belgeler yerine fields[] isteyin. Döngüye girmek yerine toplu işlem yapın. Rezervasyon: önce mekânın rezervasyon yöntemini okuyun; anında rezervasyon ve talep farklı araçlardır. list_availability_slots aracından okuduğunuz bir zaman aralığını rezerve edin. Misafir esnek olduğunu söylemedikçe approxMinutes değerini 0 bırakın — sıfırdan farklı bir değer, mekânın istediğinizden farklı bir saat ayarlamasına izin verir ve yanıtta bu durum adjusted ve bookedDate alanlarında belirtilir. Yazma işlemleri: idempotencyKey gönderin — aynı anahtar iki kez gönderildiğinde iki kez yazmak yerine ilk sonuç döndürülür. Yıkıcı araçlar açıklama eklenerek belirtilmiştir; bunlardan birini çağırmadan önce hedefi okuyun ve misafire neyin kaldırılacağını söyleyin. cancel_reservation için önce onay alın: rezervasyonu okuyun, mekânı ve saati misafire tekrar söyleyin, yanıtını bekleyin ve çağrıda her ikisini de yineleyin. Anahtardan ne kadar emin olursanız olun, yalnızca anahtara dayanarak asla iptal etmeyin. Hata durumunda mesajı okuyun. Doğrulama, bulunamadı veya yasak yanıtı bizim tarafımızdan verilir ve çağrıyı nasıl düzelteceğinizi söyler — düzeltin, yeniden denemeyin. Tek başına verilen bir kod yeniden denenebilir değildir; bunu bildirin. Aksi istenmedikçe sonuçları ham JSON olarak değil, okunabilir özetler halinde sunun. Daha önce izlemediğiniz bir yolculuğa ait oyun kitapları için: list_skills, ardından get_skill.

BECERİLER

discover-to-reserve — tüm yolculuk: bir mekân bulma, rezervasyon yöntemini öğrenme, masa ayırtma

Önce mekânı, sonra rezervasyonu ele alın. 1. Misafirin bulunduğu yeri regionId'ye dönüştürün: kind region ile resolve_key kullanın veya list_regions çağırın. 2. Mekânları bulun: bir mekân türü için filter_restaurants, adı verilen bir mekân için search_restaurants, adı verilen bir yemek için search_dishes kullanın. İlk filtrenizden önce get_vocabulary aracını bir kez okuyun. 3. Misafirin tarifi belirsizse sonuçları getirmeden önce count_restaurants ile daraltın. 4. Mekânı okuyun: get_restaurant; varsayılan olarak yalnızca gerekli alanları alın, geri kalanı için fields[] kullanın. 5. Rezervasyon yöntemini okuyun: get_reservation_info. Sonraki aracı bu belirler; asla tahmin etmeyin. 6. Boş yerleri okuyun: list_availability_slots. Misafire gerçek saatleri sunun. 7. Kimlik bilgilerini ancak şimdi alın: misafir oturum açar, ardından rezervasyon yapabilen basamağa ulaşmak için promote_identity kullanın. 8. Masayı ayırtın: anında rezervasyon yapan bir mekânda create_instant_reservation, talep alan bir mekânda create_reservation_request, kendi widget'ı üzerinden rezervasyon yapan bir mekânda create_reservation_offer kullanın. Üç işlemden hangisinin gerçekleştiğini misafire söyleyin. Talep henüz masa ayırtılmış olduğu anlamına gelmez; misafir widget'ta işlemi tamamlayıp get_reservation_status bunu doğrulayana kadar teklif de masa ayırtılmış olduğu anlamına gelmez.

sign-in-and-identity — kimin adına işlem yaptığınız, basamaklar, hangi aracın hangi basamağa çıkardığı ve her basamağın sağladıkları Bu bağlantıda oturum açmış tek bir kişi adına işlem yaparsınız. Kimlik, oturum açma bilgisiyle belirlenir; başka hiçbir şey kimin verilerine dokunulacağını seçmez ve hiçbir argüman da bunu yapamaz. Herhangi biri oturum açmadan önce keşif işlemleri çalışır. Bir kişi adına işlem yapan bir araç, çağırdığınızda o kişiden oturum açmasını ister; bu nedenle misafirden önce oturum açmasını istemek yerine, ihtiyaç duyduğunda aracı çağırın. Kimliğin sahip olduklarına göre belirlenen basamaklar: anonim oturum açmış kişi keşif, listeler, grup eşleştirme ve tat tercihine ulaşır; ad ve soyadıyla rezervasyon yapabilir; iletişim bilgisiyle profil rezervasyonuna ve doğrulanmış iletişim bilgisine ulaşır, burada fazlası yoktur. promote_identity ile yükselin. Kimlik yetersizliği nedeniyle reddedilen bir işlem, eksik olan basamağı ve o basamağa çıkmanızı sağlayan aracı belirtir — yeniden denemek yerine bunu okuyun. Anında onaylanan bir mekân için hem e-posta hem telefon gerekir; bu nedenle misafir bir talep yerine onaylanmış bir masa istediğinde ikisini de alın. Dosyada zaten bulunan bir değer, gönderdiğiniz herhangi bir değerle asla değiştirilmez. Zaten elimizde olan bir şeyi misafirden istemeden önce get_identity aracını okuyun.

label-vocabulary — tanımlayıcı eksenleri, eşlemeyin doğrulayın ve özelliklerin nasıl birleştiği

get_vocabulary aracını çağırın ve sözcüklerini aynen kullanın. Asla yeni bir sözcük uydurmayın, çevirmeyin veya kısaltmayın. Eksenler: dims (mekânın nasıl olduğu), occasions (neye uygun olduğu), menuMetas (hangi servis), menuDescriptors (menünün neler içerdiği), cuisine (hangi mutfak). Özellikler arasında VE, aynı özellik içinde VEYA uygulanır. Her değer kapsamı daraltır. Misafirin istediğini ve yalnızca istediğini iletin — kimsenin istemediği bir filtre, beğenebilecekleri mekânları sessizce sonuçlardan çıkarır. menuDescriptors mekânın tarafını tanımlar, misafirin değil. Çölyak hastasının "glütensiz bir misafire" ihtiyacı yoktur; menüde glütensiz yemeklerin yer almasına ihtiyacı vardır. Bilinmeyen bir değer, özelliğin adını belirten bir mesajla reddedilir. Uydurulmuş bir mutfak slug'ı, aksi hâlde "burada bu türden hiçbir şey yok" gibi görünen boş bir liste döndürür.

availability-semantics — anında onay ile talep arasındaki fark, saat dilimi basamakları, approxMinutes ve adjusted

Bir mekânın rezervasyon modu kendine özgüdür. Araç seçmeden önce get_reservation_info ile okuyun. anında onaylanan masalar canlı olarak onaylanır -> create_instant_reservation mekândan birinin kabul ettiği talep -> create_reservation_request Saatler, mekânın kendi duvar saatindeki kendi basamaklarına göre belirlenir. Sabit bir ızgaraya bağlı değildir; bu nedenle 19:15'in rezerve edilebildiği bir yerde 19:00 çoğu zaman rezerve edilemez. list_availability_slots aracını okuyun ve size verdiği bir saati rezerve edin. pax değerini iletin; araç, parti için küçük olan saatleri ve alan başına minimumları da sonuçlardan çıkarır. Oturma düzenini sabitlemek için seçtiğiniz saatin areaId değerini iletin; bu, aramayı daraltır ve rezervasyonun yerini asla değiştirmez. approxMinutes varsayılan olarak 0'dır; yani yalnızca bu saat veya hiçbiri anlamına gelir. Yalnızca misafir esnek olduğunu söylediğinde bu değeri artırın; ardından yanıttaki adjusted\ ve bookedDate\ değerlerini okuyup gerçekte ne aldığını ona bildirin. Boş saatler ve boş zaman aralıkları, o günün kapalı olduğu veya rezervasyon ufkunun dışında kaldığı anlamına gelir. Yeniden denemek yerine başka bir gün önerin.

group-match — grup eşleştirmesi oluşturma, bağlantıyla davet etme, kimliği olmayan kişilerden oy toplama ve kapatma

Grup eşleştirmesi, birden fazla kişinin katıldığı tek özelliktir ve bağlantı üzerinden çalışır. 1. Birkaç mekân ve birkaç tarih içeren create_group_match çağrısı yapın. İkisini de kısa tutun: bu bir karar, katalog değil. 2. Yanıtta bir paylaşım bağlantısı bulunur. Dağıtması için misafire verin. Bağlantıyı açan herkes, hiçbir TasteMatch kimliği olmadan oy kullanabilir. 3. get_group_match, kimin oy kullandığını ve neye oy verdiğini gösterir. submit_group_match_vote, bağlantı yerine size ulaşan bir oy içindir — adıyla davet edilen biri için memberId, yeni biri için displayName kullanın. 4. Grup kararını verdiğinde close_group_match çağrısı yapın. Oylar okunabilir durumda kalır. 5. Ardından, ev sahipliği yapan kişi adına, kazanan mekân için rezervasyon yolculuğunu izleyin.

regions-and-places — bir yeri çözümleme ve regionId değerinin amacı

Bölge kapsamındaki her işlem bir regionId alır ve regionId değerini misafirden değil, bizden alırsınız. kind değeri region olan resolve_key; bir kasaba, semt, adres veya enlem ve boylam alır. list_regions, kapsadığımız tüm bölgeleri listeler; search_places ise daha küçük bir yeri, onu içeren bölgeyle eşleştirir. Bir bölge, mekânlarının saatlerinin yazıldığı IANA saat dilimini içerir. Gönderdiğiniz her dateTime, o bölgenin UTC farkını içermelidir; okuduğunuz her saat dilimi de bu saate göredir. Boş sonuç, orada mekânımız olmadığı anlamına gelir. Aramayı sessizce genişletmek yerine bunu söyleyin.

lists-as-store — bağlamda tutmak yerine listeye eklenmesi gerekenler

Bağlamınız konuşmayla birlikte sona erer. Liste sona ermez. Kısa listeyi, karşılaştırma kümesini veya misafirin daha önce reddettiği yerleri create_list ve add_restaurant_to_list ile adlandırılmış bir listeye ekleyin. Listeye amacını belirten bir ad verin; misafir bu adı daha sonra tekrar görür. Geri dönen bir konuşmaya list_lists ile başlayın. Bu, misafirin geçen sefer sakladığı şeydir. Listeler, işlem yapan kimliğe aittir ve burada özeldir — paylaşma, başkasının listelerine göz atma ve listeler arasında arama sosyal özelliklerdir; bu arayüzde sosyal özellikler yoktur. Biriktirmek yerine ayıklayın: remove_restaurant_from_list verileri kaldırır; bu nedenle önce hangi mekânı hangi listeden çıkaracağınızı misafire söyleyin.

bulk-and-pagination — filtrelemeden önce sayın, döngü yerine toplu işlem yapın, varsayılan sınırlar, fields[]

Daha azını isteyin. count_restaurants, satır döndürmeden "kaç tane" sorusunu yanıtlar. Daraltma sırasında bunu kullanın ve satırları bir kez alın. Her listeleme ve arama aracı limit ve offset alır, ayrıca totalCount bildirir. Varsayılan limit 10'dur. Aramayı yeniden çalıştırmak yerine offset ile sayfalar arasında ilerleyin. get_restaurant, varsayılan olarak yalın bir alan seçimi döndürür. Yalnızca misafire gerçekten söyleyeceğiniz alanlar için fields[] belirtin; etiket vektörü ve menü kartları büyüktür. Toplu işleme uygun olanları toplu işleyin: her turda bir impressions çağrısı, tek bir get_skill çağrısında birkaç skill. Bir adı bir kez çözümleyin ve anahtarı sonraki işlemlerde kullanın. Yeniden çözümleme hem ek bir gidiş-dönüş demektir hem de farklı bir mekâna ulaşma olasılığı yaratır.