{"name":"dev.hatchloop/sms-whatsapp-messaging","slug":"hatchloop-sms-whatsapp-messaging","title":"SMS and WhatsApp Messaging","description":"Send WhatsApp, SMS, email or voice to a business with the compliance gate enforced.","url":"https://mcp.market/server/hatchloop-sms-whatsapp-messaging","rating":null,"grade":"B","score":76,"certified":false,"status":"active","category":"email","tags":["email"],"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.789Z","last_ok_at":"2026-09-20T03:56:01.789Z","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/sms-whatsapp-messaging"}],"packages":[],"tools":[{"name":"check_compliance","description":"Free, instant pre-flight for the compliance gate. Runs the SAME TCPA / GDPR / CASL / CAN-SPAM / 10DLC gate that send_message and call_business run — but in preview mode, so NO message is sent and NO state changes. Tells you whether a (recipient, channel, message_type, content) send would be permitted BEFORE you pay for it, and if not, names the exact rule and how to remediate. Use it to de-risk a paid send the same way check_booking_link… [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"recipient_id":{"type":"string","description":"Phone in E.164 (e.g. '+14045550100') or email address the message would go to."},"content":{"type":"string","description":"The actual message body you intend to send. The gate classifies the real text,…"},"channel":{"type":"string","enum":["sms","email","voice"],"description":"Delivery channel. Omit to auto-infer sms/email from recipient_id; set 'voice'…"},"message_type":{"type":"string","description":"Intent tag: transactional, marketing, reminder, follow_up, notification.…","default":"transactional"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 (e.g. 'US', 'DE', 'CA'). Auto-inferred from phone if…"},"state_code":{"type":"string","description":"US state code (e.g. 'CA') for state-specific rules."}},"required":["recipient_id","content"]}},{"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_conversation","description":"Read a two-way conversation thread you started: its state, every message exchanged, and how many replies the business has sent. [free, no key]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"conversation_id":{"type":"string","description":"From the send_message receipt (preferred)."},"reference":{"type":"string","description":"The 4-digit request reference, e.g. '4821'. Requires business_number."},"business_number":{"type":"string","description":"Scopes a `reference` to one business (references are reused across businesses)."}}}},{"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":"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":"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":"send_message","description":"Send a message on behalf of an agent's user or an SMB across WhatsApp (free during launch), SMS, email, or voice. Five message types: transactional, reminder, follow_up, notification, marketing. Every send routes through a non-bypassable compliance gate (TCPA, GDPR, CASL, PDPL across 26 jurisdictions) that enforces opt-in consent for marketing/promotional content — marketing without recorded consent is rejected at runtime with a structured… [from $0.02/call, variable] [async→get_outcome]","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"recipient":{"type":"object","required":["id_type","id_value"],"properties":{"id_type":{"type":"string","enum":["phone","email","smb_id","customer_id"]},"id_value":{"type":"string"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2, required for compliance routing"}}},"message_type":{"type":"string","description":"Intent tag for the message. Five permitted types. 'marketing' is allowed only…","enum":["transactional","marketing","reminder","follow_up","notification"]},"content":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"subject":{"type":"string","description":"For email channel"},"template_id":{"type":"string"},"template_vars":{"type":"object"}}},"preferred_channel":{"type":"string","enum":["whatsapp","sms","email","voice","auto"],"default":"auto"},"send_at_iso":{"type":"string","format":"date-time","description":"NOT SUPPORTED YET. We do not schedule messages. Supplying a time more than 2…"},"on_behalf_of":{"type":"string","description":"Who this message is FOR (your end-user's name/label). On WhatsApp this opens a…"},"business_id":{"type":"string","description":"Optional stable id for the recipient business. Enables global demand shaping…"},"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":["recipient","message_type","content"]}},{"name":"send_transactional_confirmation","description":"Idempotent transactional messages: OTPs, booking confirmations, payment receipts, cancellation notices. Falls back across configured channels; an unconfigured channel fails honestly rather than reporting a delivery that did not happen. [$0.02/per_call] [async→get_outcome]","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"recipient":{"type":"object","required":["phone_or_email"],"properties":{"phone_or_email":{"type":"string"},"name":{"type":"string"}}},"confirmation_type":{"type":"string","enum":["otp","booking_confirmation","payment_receipt","cancellation_notice","reminder"]},"data":{"type":"object","description":"Type-specific payload; e.g., {otp_code} for otp, {appointment_time, smb_name}…"},"preferred_channel":{"type":"string","enum":["sms","email","auto"],"default":"sms"},"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":["recipient","confirmation_type","data"]}},{"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":76,"grade":"B","scanned_at":"2026-09-20T05:06:00.805Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:06:00.735Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2072ms"]},"poisoning":{"score":15,"max":15,"notes":["10 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"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":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://hatchloop.dev/mcp/sms-whatsapp-messaging","reachable":true,"authRequired":false,"latencyMs":2072,"serverInfo":{"name":"sms-whatsapp-messaging","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":[]}