{"ok":true,"name":"place_order","description":"Place a coffee order for delivery. Only call this after the person has seen the quote and explicitly approved the total. Returns payment_url, a Cafecito link to Stripe's secure payment page; the order is confirmed once it's paid.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["items","customer_name","street_address","city","zip_code","expected_total","expected_delivery_date"],"properties":{"ref":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,64}$","description":"The ref from the order link, if the person ordered through one"},"city":{"type":"string","maxLength":100,"minLength":1,"description":"One of the delivery cities in get_delivery_info"},"email":{"type":"string","maxLength":254,"description":"Email for the receipt (phone or email required)"},"items":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","maxLength":100,"minLength":1,"description":"Coffee id from search_coffee"},"quantity":{"type":"integer","default":1,"maximum":99,"minimum":1,"description":"Number of bags"}}},"maxItems":50,"minItems":1,"description":"The same bags that were quoted"},"phone":{"type":"string","maxLength":40,"description":"Phone for delivery coordination (phone or email required)"},"zip_code":{"type":"string","maxLength":20,"minLength":1},"customer_name":{"type":"string","maxLength":200,"minLength":1},"delivery_type":{"enum":["regular","rush"],"type":"string","default":"regular","description":"The delivery_type from the approved quote"},"delivery_notes":{"type":"string","maxLength":1000,"description":"Gate code, where to leave it, etc."},"expected_total":{"type":"number","description":"The total from the quote that the person approved"},"street_address":{"type":"string","maxLength":300,"minLength":1,"description":"Street address including unit number"},"expected_delivery_date":{"type":"string","maxLength":20,"minLength":1,"description":"The delivery_date from the quote the person approved (YYYY-MM-DD). If the cutoff passed since, the order is refused instead of moving to a later day."}}},"serverUrl":"https://cafecito.bot/mcp","transport":"http","handshake":"ok","host":"cafecito.bot","score":34,"grade":"D","auth":"none","lastScannedAt":"2026-10-30T13:13:26.500Z","stale":false,"permalink":"https://agentboardai.app/mcp/cafecito.bot/place_order","page":"https://agentboardai.app/site/cafecito.bot"}