{"serverId":"mcp-registry/io.github.posdo-io/mcp-server","tools":[{"name":"book_flow_reservation","fixed":{"name":"book_flow_reservation","description":"Make a reservation at a Flow-discounted time slot. Phone must be E.164 (e.g. +34911234567). To make retries safe, send the same Idempotency-Key HTTP header on retries (any UUID); replays within 24h return the original reservation. Rate limited to 5 reservations per email per day and 10 attempts per IP per minute.","inputSchema":{"type":"object","required":["slug","yield_offer_id","guest_name","guest_email","guest_phone"],"properties":{"slug":{"type":"string","description":"Restaurant URL slug."},"notes":{"type":"string"},"guest_name":{"type":"string"},"party_size":{"type":"integer","default":2,"maximum":20,"minimum":1},"guest_email":{"type":"string","format":"email"},"guest_phone":{"type":"string","pattern":"^\\+[1-9]\\d{7,14}$","description":"E.164 format, e.g. +34911234567."},"yield_offer_id":{"type":"integer","description":"Offer ID returned by get_flow_offers."}}},"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":258,"tokensAfter":258},{"name":"find_restaurants_near_landmark","fixed":{"name":"find_restaurants_near_landmark","description":"Find restaurants near a famous landmark (monument, museum, park). Returns landmark info from Wikidata + nearby restaurants sorted by walking distance. Examples: 'Sagrada Familia', 'Colosseum', 'Central Park', 'Tour Eiffel'.","inputSchema":{"type":"object","required":["landmark"],"properties":{"city":{"type":"string","description":"City hint for landmark disambiguation."},"limit":{"type":"integer","default":10,"maximum":15,"minimum":1},"radius":{"type":"integer","default":1000,"maximum":5000,"minimum":200,"description":"Search radius in meters."},"landmark":{"type":"string","description":"Landmark name."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":187,"tokensAfter":187},{"name":"get_cultural_context_around_restaurant","fixed":{"name":"get_cultural_context_around_restaurant","description":"Get cultural context around a restaurant: nearby monuments, museums, parks, historical sites with distance and heritage status. Powered by Wikidata.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Restaurant URL slug."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":96,"tokensAfter":96},{"name":"get_flow_offers","fixed":{"name":"get_flow_offers","description":"POS.DO Flow time-based offers for a restaurant. Off-peak hours have bigger discounts. Returns time slots with discount percentages and remaining covers. Tagline: 'Tu hora, tu precio'.","inputSchema":{"type":"object","required":["slug"],"properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Date YYYY-MM-DD (default: today)."},"slug":{"type":"string","description":"Restaurant URL slug."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"get_restaurant_details","fixed":{"name":"get_restaurant_details","description":"Get the full profile of a restaurant by URL slug. Returns name, address, coordinates, rating, reviews count, phone, opening hours, photos, services, cuisine type, price level, current Flow offers, and cultural context.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Restaurant URL slug. Example: 'anima-e-cuore-osteria-bilbao'."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"get_restaurant_reviews","fixed":{"name":"get_restaurant_reviews","description":"Get paginated reviews for a restaurant. Filter by star rating, sort by date or rating. Returns review text, author, rating, date, photos, language, owner response, and rating distribution.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Restaurant URL slug."},"sort":{"enum":["recent","rating_high","rating_low"],"type":"string","default":"recent"},"limit":{"type":"integer","default":10,"maximum":30,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"rating":{"type":"integer","maximum":5,"minimum":1,"description":"Filter by exact star rating."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":187,"tokensAfter":187},{"name":"search_restaurants","fixed":{"name":"search_restaurants","description":"Search restaurants in a specific city. Filter by cuisine type, price range, and features like outdoor seating, WiFi, delivery. Returns up to 20 results with name, rating, cuisine, price range, address, coordinates, photo, amenities, and current Flow offers.","inputSchema":{"type":"object","required":["city"],"properties":{"city":{"type":"string","description":"City name. Examples: 'Madrid', 'New York', 'Milano', 'Barcelona'."},"limit":{"type":"integer","default":10,"maximum":20,"minimum":1},"query":{"type":"string","description":"Free-text search: cuisine, occasion, features (e.g. 'romantic italian terrace')."},"cuisine":{"type":"string","description":"Cuisine filter. Examples: 'italian', 'mexican', 'sushi', 'spanish', 'indian'."},"features":{"type":"string","description":"Comma-separated feature filters: terrace, wifi, parking, delivery, accessible."},"price_max":{"type":"integer","maximum":4,"minimum":1,"description":"Max price level 1=budget, 4=fine dining."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":285,"tokensAfter":285}],"toolsChanged":7,"tokensSaved":0,"todo":[{"tool":"book_flow_reservation","params":["notes","guest_name","party_size","guest_email"]},{"tool":"find_restaurants_near_landmark","params":["limit"]},{"tool":"get_restaurant_reviews","params":["sort","limit","offset"]},{"tool":"search_restaurants","params":["limit"]}],"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."}