Book MCP — tools
Three tools, in the order you call them: search → availability → book. All reads are safe; only book writes, and only ever creates.
search_venues read
Section titled “search_venues ”Find restaurants on Forktime by location and cuisine. Returns each match with a slug you pass to the other tools. No internal ids, no private data.
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | no | Free-text search across name / city / cuisine. |
city |
string | no | Filter to a city. |
country |
string | no | Filter to a country. |
cuisine |
string | no | e.g. “Italian”, “Thai”, “vegan”. |
name |
string | no | Match a specific restaurant name. |
// search_venues → { city: "Toronto", cuisine: "Italian" }{ "venues": [ { "slug": "il-caminetto", "name": "Il Caminetto", "city": "Toronto", "cuisine": "Italian", "address": "…" } ]}get_availability read
Section titled “get_availability ”Bookable times for a venue on a given day and party size. Only real, open slots come back — a guest can’t be quoted a table that isn’t there.
| Parameter | Type | Required | Description |
|---|---|---|---|
venue |
string | yes | The slug from search_venues. |
date |
string | yes | The day, YYYY-MM-DD. |
partySize |
number | yes | Number of guests. |
time |
string | no | A preferred time to sort around (e.g. 19:00). |
// get_availability → { venue: "il-caminetto", date: "2026-08-15", partySize: 4 }{ "venue": { "slug": "il-caminetto", "name": "Il Caminetto" }, "date": "2026-08-15", "slots": [ { "time": "6:30 PM" }, { "time": "6:45 PM" }, { "time": "7:00 PM" } ]}book write
Section titled “book ”Create the reservation. Requires the guest’s real phone — the confirmation and the manage/cancel link are texted there.
| Parameter | Type | Required | Description |
|---|---|---|---|
venue |
string | yes | The venue slug. |
date |
string | yes | YYYY-MM-DD. |
time |
string | yes | A time returned by get_availability. |
partySize |
number | yes | Number of guests. |
name |
string | yes | The guest’s name. |
phone |
string | yes | The guest’s phone — where the manage link is sent. |
email |
string | no | For the confirmation email, if the guest has one. |
notes |
string | no | Special requests (high chair, allergies, occasion). |
// book → { venue: "il-caminetto", date: "2026-08-15", time: "7:00 PM",// partySize: 4, name: "Alex", phone: "+14165551234" }{ "confirmed": true, "reservationCode": "ZNB6GPTX", "message": "Booked. A text with a link to manage or cancel is on its way to the guest."}