{"name":"dev.hatchloop/appointment-booking","slug":"hatchloop-appointment-booking","title":"Appointment Booking","description":"Find real businesses and book appointments. Books via Cal.com; imports 12 platforms.","url":"https://mcp.market/server/hatchloop-appointment-booking","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":1,"downloads_week":null,"last_push_at":"2026-09-10T02:36:46.000Z","license":"MIT"},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-09-20T03:56:01.464Z","last_ok_at":"2026-09-20T03:56:01.464Z","latency_ms":178},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/basilalshukaili/agentbroker","website":"https://hatchloop.dev/agent-broker/","version":"0.2.13","remotes":[{"type":"streamable-http","url":"https://hatchloop.dev/mcp/appointment-booking"}],"packages":[],"tools":[{"name":"check_booking_link","description":"Free, instant pre-flight check for a booking URL. Classifies which booking platform a URL belongs to and tells you whether import_booking_url will accept it, WITHOUT fetching the page or spending money. Returns the platform, the exact smb_id import_booking_url would assign, the channels the booking will route through, and the inferred country. Use it to de-risk a paid booking BEFORE calling import_booking_url + schedule_appointment. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Full http(s) URL to classify, e.g. 'https://cal.com/jane' or…"}},"required":["url"]}},{"name":"find_business","description":"Given criteria (vertical, location, capability, price band, availability window), return ranked candidate businesses from our supply network. THE NETWORK IS SMALL AND STILL MOSTLY SAMPLE DATA: entries that are not real are named [DEMO] and flagged is_demo - check that field before acting on a result. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"vertical":{"type":"string","enum":["personal_services","home_services","professional_services"],"description":"Service vertical to search within"},"location":{"type":"object","required":["zip_or_city"],"properties":{"zip_or_city":{"type":"string"},"radius_miles":{"type":"number","default":10}}},"capability":{"type":"string","description":"Specific service capability required, e.g. 'haircut', 'plumbing',…"},"price_band":{"type":"object","properties":{"max_usd":{"type":"number"}}},"availability_window":{"type":"object","properties":{"start_iso":{"type":"string","format":"date-time"},"end_iso":{"type":"string","format":"date-time"}},"description":"Accepted but NOT APPLIED - it does not narrow results. We do not hold live…"},"max_results":{"type":"integer","default":5,"maximum":20}},"required":["vertical","location"]}},{"name":"get_outcome","description":"Retrieve the final OutcomeReceipt for a completed operation. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"operation_id":{"type":"string"}},"required":["operation_id"]}},{"name":"get_status","description":"Query the current state of any in-flight async operation by operation_id. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"operation_id":{"type":"string"}},"required":["operation_id"]}},{"name":"import_booking_url","description":"Turn ANY public booking URL (Cal.com, Calendly, Doctolib, Booksy, Fresha, OpenTable, Setmore, Square, Acuity, Schedulista, Squarespace, BookMyCity) into a callable smb_id you can immediately use with schedule_appointment, send_message, or capture_lead. Idempotent — calling twice returns the same smb_id. [free, requires key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"booking_url":{"type":"string","format":"uri","description":"Full URL the user supplied. Must point at one of the 12 supported booking…"},"business_name":{"type":"string","description":"Optional override. If omitted, the business name is auto-extracted from the…"},"vertical":{"type":"string","enum":["personal_services","home_services","professional_services","restaurants","retail","healthcare","fitness"],"description":"Best-guess vertical. If omitted, inferred from the platform (e.g., Doctolib ->…"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 (e.g. 'US', 'FR'). Used for compliance routing on later…"},"contact_phone":{"type":"string","description":"Optional. If omitted, the platform integration handles outreach."},"contact_email":{"type":"string","description":"Optional."},"capabilities":{"type":"array","items":{"type":"string"},"description":"Free-form capability tags (e.g., ['haircut','color','blowdry'])."},"idempotency_key":{"type":"string","maxLength":128,"description":"Optional client-supplied key for safe retries. Replaying the same key within 24h returns the original receipt - the operation is NOT re-executed and NOT re-charged."}},"required":["booking_url"]}},{"name":"preview_cost","description":"Return an expected cost estimate, latency estimate, and success-probability estimate for a proposed call before execution. Returns the exact price when it is fixed, and a min/max range when the cost depends on channel or outcome. It does not promise an accuracy percentage - check cost_range. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"operation":{"type":"string"},"params":{"type":"object","description":"The same request body you would pass to the operation"}},"required":["operation","params"]}},{"name":"schedule_appointment","description":"Availability lookup, hold, confirm, reschedule, or cancel appointments with an SMB. Routes through the SMB's native booking system if available, falls back to voice AI or web form. [from $0.15/call, variable] [async→get_outcome]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"smb_id":{"type":"string"},"action":{"type":"string","enum":["book","reschedule","cancel","check_availability"]},"service":{"type":"string"},"customer":{"type":"object","properties":{"name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"}}},"requested_time":{"type":"object","properties":{"preferred_iso":{"type":"string","format":"date-time"},"window_start_iso":{"type":"string","format":"date-time"},"window_end_iso":{"type":"string","format":"date-time"},"duration_minutes":{"type":"integer"}}},"existing_appointment_id":{"type":"string","description":"Required for reschedule/cancel"},"notes":{"type":"string"},"idempotency_key":{"type":"string","maxLength":128,"description":"Optional client-supplied key for safe retries. Replaying the same key within 24h returns the original receipt - the operation is NOT re-executed and NOT re-charged."}},"required":["smb_id","action"]}},{"name":"self_test","description":"Service health probe: runs 6 internal checks and reports how many passed. Confirms the server is up and responding - it does NOT probe each tool individually. Use to verify connectivity before production use. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"verify_business","description":"Look up what we know about a business in our supply network: its contact channels, capabilities, and when the record was last verified. This is a DIRECTORY LOOKUP - it does not contact the business. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"smb_id":{"type":"string"},"capability_to_verify":{"type":"string"}},"required":["smb_id"]}}],"scan":{"score":89,"grade":"A","scanned_at":"2026-09-20T05:06:02.278Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:06:02.165Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1147ms"]},"poisoning":{"score":15,"max":15,"notes":["9 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 10 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://hatchloop.dev/mcp/appointment-booking","reachable":true,"authRequired":false,"latencyMs":1147,"serverInfo":{"name":"appointment-booking","version":"0.2.13"}}],"packages":[],"repo":{"found":true,"owner":"basilalshukaili","repo":"agentbroker","archived":false,"pushedAt":"2026-09-10T02:36:46Z","stars":0,"forks":1,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/189737461?v=4","ownerCreatedAt":"2024-11-26T11:57:49Z","license":"MIT"},"icon":{"url":"https://hatchloop.dev/icon.png?icon.03a62_e3b0jbn.png","source":"site","width":512,"height":512},"presence":{"stars":0,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-10T02:36:46.000Z","score":23}}}},"grade_history":[],"reviews":[]}