{"serverId":"mcp-registry/io.github.junoventures/campobelo-sampa-br","tools":[{"name":"create_booking","fixed":{"name":"create_booking","description":"Book an appointment slot at a venue (Wix Bookings). NOTHING IS BOOKED UNTIL THE CUSTOMER PAYS: this returns a checkout URL, and the booking stays off the venue's calendar until a human opens that URL and completes payment on the venue's own site. Tell the user they must open the link. Call get_availability immediately before this — the slot is re-validated server-side and a taken slot is rejected. The contact email is NOT verified at this step; the checkout is what confirms it.","inputSchema":{"type":"object","required":["place_slug","serviceId","startDate","endDate","contact"],"properties":{"contact":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","description":"Full name."},"email":{"type":"string","description":"Email address."},"phone":{"type":"string","description":"Phone number, at least 10 digits. Any formatting is accepted."}},"description":"Who the booking is for. All three are required by the venue to confirm or reschedule."},"endDate":{"type":"string","description":"Slot end as an ISO instant, exactly as returned by get_availability."},"serviceId":{"type":"string","description":"Service ID from list_booking_services (called with the same place_slug)."},"startDate":{"type":"string","description":"Slot start as an ISO instant, exactly as returned by get_availability."},"place_slug":{"type":"string","description":"Venue place slug from search_places."},"resourceId":{"type":"string","description":"Optional staff/resource ID from the slot, when the user picked a specific professional."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":446,"tokensAfter":446},{"name":"create_checkout","fixed":{"name":"create_checkout","description":"Create a direct checkout URL for one or more store products (Wix Stores). The user clicks the URL to complete payment on the site — no login required on the AI agent side.","inputSchema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["productId"],"properties":{"quantity":{"type":"number","description":"Quantity (default 1)."},"productId":{"type":"string","description":"Product ID from list_products."}}},"description":"Products to add to cart."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"get_availability","fixed":{"name":"get_availability","description":"Get available time slots for a bookable service on a given date (Wix Bookings). Pass the serviceId from list_booking_services and a date in YYYY-MM-DD. Pass the same `place_slug` you used there — slot times are returned in the VENUE's timezone, which is not necessarily the directory's.","inputSchema":{"type":"object","required":["serviceId","date"],"properties":{"date":{"type":"string","description":"Date in YYYY-MM-DD format (e.g. \"2026-06-25\")."},"serviceId":{"type":"string","description":"Service ID from list_booking_services."},"place_slug":{"type":"string","description":"Venue place slug — use the same one passed to list_booking_services."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"get_event_tickets","fixed":{"name":"get_event_tickets","description":"Get ticket types and prices for a specific event (Wix Events). Pass the event slug from list_events. Returns ticket names, prices, sale status, and how many are left.","inputSchema":{"type":"object","required":["event_slug"],"properties":{"event_slug":{"type":"string","description":"Event slug from list_events."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"get_loyalty_info","fixed":{"name":"get_loyalty_info","description":"Get the loyalty/rewards program details for this site (Wix Loyalty). Returns program name, points currency name, and tier structure with required points per tier.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"get_place","fixed":{"name":"get_place","description":"Get full details for a specific place by its URL slug, including opening hours, a precomputed `open_now` boolean, amenity `attributes` (slugs), a `delivery` array of curated delivery-app deep-links (ifood, rappi, uber-eats — each `{ platform, url }`), ratings, address, and neighborhood.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"URL slug of the place, e.g. \"cafe-example\"."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":133,"tokensAfter":133},{"name":"get_restaurant_menus","fixed":{"name":"get_restaurant_menus","description":"Get the food menu for a specific restaurant on this site. Returns menus with their sections, dishes, descriptions, prices, and dietary labels (vegan, gluten-free, etc). Use search_places or list_categories first to find the restaurant's place_slug.","inputSchema":{"type":"object","required":["place_slug"],"properties":{"place_slug":{"type":"string","description":"The slug of the restaurant, e.g. \"bar-do-ze\" (from search_places or a place URL)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"get_reviews","fixed":{"name":"get_reviews","description":"Get published reviews for this site (Wix Reviews). Returns reviewer name, rating, title, and content.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max reviews to return (default 10, max 50)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"get_site_info","fixed":{"name":"get_site_info","description":"Returns basic information about this neighborhood directory: name, locale, domain, description, canonical URLs for key sections, plus the current LOCAL TIME and CURRENT WEATHER at the neighborhood (temperature, condition). Use this for any \"what time is it there\" or \"what's the weather like\" context.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"list_blog_posts","fixed":{"name":"list_blog_posts","description":"List recent published blog posts for this site (Wix Blog). Returns title, excerpt, author, published date, reading time, categories, and the post URL.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max posts to return (default 10, max 50)."},"category":{"type":"string","description":"Filter by category label. Case-insensitive substring match."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"list_booking_services","fixed":{"name":"list_booking_services","description":"List a venue's services — what it offers, with price and duration. Pass `place_slug` (from search_places) to list the services of a specific VENUE — a salon, clinic or studio listed in this directory; that is what you want in almost every case, and it is the only form whose serviceId works with create_booking. Omitting `place_slug` lists the directory site's own services instead, which most sites do not have. Returns name, description, price, duration in minutes, and `bookableViaMcp`. Services a","inputSchema":{"type":"object","required":[],"properties":{"place_slug":{"type":"string","description":"Venue place slug from search_places. Strongly recommended — without it you get the directory's own services, not a venue's."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":217,"tokensAfter":217},{"name":"list_categories","fixed":{"name":"list_categories","description":"Returns the full category taxonomy of this directory site: top-level groups with their subcategories, localized labels, schema.org types, and live place counts.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"list_events","fixed":{"name":"list_events","description":"List upcoming events in this neighborhood with date, venue, price, and URL. Events within the next 7 days include a weatherForecast (condition + min/max temperature) for the event day — use it to tell users e.g. \"the event is at X and it will be raining\". Pass `filter` to narrow by time or price; `filter: \"agora\"` answers \"what can I go to right now\" and is resolved live on every call, which no cached page can do.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max events to return (default 20, max 50)."},"filter":{"enum":["agora","hoje","amanha","fim-de-semana","gratis"],"type":"string","description":"Narrow the list: \"agora\" = on stage at this exact moment (season runs and day-granular sources are excluded, because their stored window says nothing about whether a session is on right now); \"hoje\"/\"amanha\"/\"fim-de-semana\" = running on those days, including multi-day runs; \"gratis\" = free to attend, including externally-ticketed events priced at 0."},"upcoming_only":{"type":"boolean","description":"Only return upcoming or in-progress events (default true)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":329,"tokensAfter":329},{"name":"list_faqs","fixed":{"name":"list_faqs","description":"Get all FAQ questions and answers for this site (Wix FAQ). Grouped by category. Use this to answer common questions about the site — opening hours, parking, policies, etc.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"list_forms","fixed":{"name":"list_forms","description":"List available contact/signup forms on this site (Wix Forms). Returns form name, ID, and field definitions (label, type, required). Use before submit_form to discover which fields to fill.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"list_guides","fixed":{"name":"list_guides","description":"List curated editorial guides (\"best of\" lists) published by this site — ranked places with editorial notes. The best source for \"best X in this neighborhood\" questions.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max guides to return (default 20, max 50)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"list_offers","fixed":{"name":"list_offers","description":"List active promotions and deals available in this neighborhood directory. Returns discount label, promo code (if any), CTA link, validity window, and which business/place it belongs to. FLASH offers have a countdown deadline.","inputSchema":{"type":"object","required":[],"properties":{"kind":{"enum":["STANDARD","FLASH"],"type":"string","description":"Filter by offer kind. FLASH = time-limited flash sale with countdown. Omit to return all active offers."},"limit":{"type":"number","description":"Max offers to return (default 20, max 60)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"list_pricing_plans","fixed":{"name":"list_pricing_plans","description":"List membership or subscription plans (Wix Pricing Plans). Pass `place_slug` (from search_places) to list the plans of a specific VENUE — a gym, studio or clinic listed in this directory (e.g. its monthly/annual membership); that is what you want in almost every case. Omitting `place_slug` lists the directory site's own plans instead, which most sites do not have. Returns plan name, description, price, billing cycle, perks, and a direct checkout URL.","inputSchema":{"type":"object","required":[],"properties":{"place_slug":{"type":"string","description":"Venue place slug from search_places. Strongly recommended — without it you get the directory's own plans, not a venue's."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"list_products","fixed":{"name":"list_products","description":"List products in this site's store (Wix Stores). Returns name, price, stock status, and product type.","inputSchema":{"type":"object","required":[],"properties":{"q":{"type":"string","description":"Optional search term matched against product name."},"limit":{"type":"number","description":"Max products to return (default 20, max 100)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"list_profiles","fixed":{"name":"list_profiles","description":"List solo service-provider profiles on this site — businesses without a fixed physical location (e.g. dog walkers, tutors, personal trainers). Returns name, profile URL, category, and any available metadata (age, height, etc.).","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max profiles to return (default 50)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"search_dishes","fixed":{"name":"search_dishes","description":"Find which restaurants serve a dish in this neighborhood. Searches every menu item across all restaurants on the site, grouped by dish — e.g. query \"feijoada\" returns each restaurant serving it with price, description, dietary labels, and the place URL. Omit the query to list the most-served dishes. Use this for any \"where can I eat X\" question.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max dishes to return (default 20, max 50)."},"query":{"type":"string","description":"Dish name or part of it, e.g. \"feijoada\", \"pizza margherita\". Omit to list top dishes."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":187,"tokensAfter":187},{"name":"search_places","fixed":{"name":"search_places","description":"Search for places (restaurants, cafes, shops, etc.) in this neighborhood. The `q` match is accent-insensitive and typo-tolerant (\"acai\" finds \"Açaí\", \"restaurnt\" finds \"Restaurante\"), ranked by relevance. Compose filters for multi-condition queries: `category`, `neighborhood`, `open_now` (true = open at this exact moment), and `attributes` (amenity slugs, ALL must match). Each result includes a precomputed `open_now` boolean, an `attributes` array (amenity slugs), a `delivery` array of curated d","inputSchema":{"type":"object","required":[],"properties":{"q":{"type":"string","description":"Free-text term matched against place name and address — accent-insensitive and typo-tolerant."},"limit":{"type":"number","description":"Max results to return (default 20, max 100)."},"category":{"type":"string","description":"Filter by category label (e.g. \"Café\"). Case-insensitive substring match."},"open_now":{"type":"boolean","description":"When true, return only places open at the current local time (computed server-side from their opening hours)."},"attributes":{"type":"array","items":{"type":"string"},"description":"Amenity slugs a place must ALL have, e.g. [\"wifi\",\"outdoor-seating\"]. Common slugs: wifi, outdoor-seating, wheelchair, dog-friendly, delivery, takeaway, reservations, live-music, vegan, gluten-free."},"neighborhood":{"type":"string","description":"Filter by neighborhood name. Case-insensitive substring match."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":415,"tokensAfter":415},{"name":"submit_form","fixed":{"name":"submit_form","description":"Submit a form on behalf of the user (Wix Forms). Call list_forms first to get the formId and field keys. Returns a submissionId on success.","inputSchema":{"type":"object","required":["formId","fields"],"properties":{"fields":{"type":"object","description":"Key-value pairs matching the field keys from list_forms. Example: { \"field_1\": \"João\", \"field_2\": \"joao@email.com\" }","additionalProperties":{"type":"string"}},"formId":{"type":"string","description":"Form ID from list_forms."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":149,"tokensAfter":149}],"toolsChanged":23,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}