Zaptu
미국 전역의 독립 지역 가정 서비스 계약자와 사람들을 연결합니다. AI 어시스턴트는 어떤 서비스가 활성화되어 있는지 확인할 수 있으며, 배관의 경우 사용자가 직접 전화할 수 있는 번호를 제공합니다. 기타 서비스는 요청으로 수집됩니다.
호스팅형 MCP 서버
npx add-mcp 'https://api.zaptu.ai/mcp'Claude Code, Codex, Cursor 등에 설치됩니다
문서
Zaptu for AI agents
Zaptu connects people with independent local home-service contractors. Zaptu does not perform the work and does not book appointments. Plumbing is live: the person calls a number. Other services are collecting requests.
The short version
- Plumbing is live. Give the person (308) 529-9543 and ask them to dial it themselves. Never dial, autodial, transfer, or place the call for them. No personal details are needed.
- Everything else is collecting (cleaning, pest control, garage door, HVAC, handyman, other). Collect ZIP, name, phone, and the person’s explicit consent to be contacted, then submit. Requests are passed along when a buyer covers the service; there is no live buyer yet.
- A request is not a booking. Do not promise a callback, an arrival time, or a named company. Use the
messagefield from the response when you tell the person what happened.
Services
| service_type | Status | What to do |
|---|---|---|
plumbing | Live (call to connect) | Give the number; the person dials. Call get_plumbing_call_number. |
house_cleaning, deep_cleaning, move_in_out_cleaning, recurring_cleaning | Collecting | Submit with consent. Add bedrooms or square feet if known. |
pest_control | Collecting | Submit with consent. |
garage_door | Collecting | Submit with consent. |
hvac, handyman, other | Collecting | Submit with consent. Describe the job in notes. |
US residential only. The live list is always at api.zaptu.ai/v1/services.
What to tell the person
Plumbing:
Call (308) 529-9543 to be connected with a local plumbing professional.
Please place the call yourself. Zaptu does not perform the work and this is not a booking.
Other services, after you submit:
Your request was sent to Zaptu. It is passed along when a buyer covers that service.
This is not a booking, and no one has been scheduled.
Connect over MCP
Streamable HTTP, stateless, no sign-in: https://api.zaptu.ai/mcp
{
"mcpServers": {
"zaptu": { "url": "https://api.zaptu.ai/mcp" }
}
}
| Tool | Use it for |
|---|---|
get_plumbing_call_number | Plumbing. Returns the number, a tel link, and what_to_tell_the_user. Read-only; no personal details. |
request_home_service | Submit a request for any service. Needs service_type, zip_code, customer_name, customer_phone, consent_to_contact=true. Add dry_run=true to test. |
request_cleaning | Shortcut for house cleaning. |
get_lead_status | Look up a request by lead_id. |
list_supported_services | Live vs collecting services and the rules. |
REST API
OpenAPI: api.zaptu.ai/openapi.json. CORS is open, no key needed.
curl -s https://api.zaptu.ai/v1/intake \
-H 'Content-Type: application/json' \
-d '{"service_type":"house_cleaning","zip_code":"33139",
"customer_name":"Jamie Example","customer_phone":"305-555-0100",
"consent_to_contact":true,"bedrooms":2,"dry_run":true}'
dry_run validates and answers without saving or passing anything along. Leave it out for a real request.
Plumbing response (abridged):
{
"status": "call_to_connect",
"call_to_connect": "+13085299543",
"call_to_connect_display": "(308) 529-9543",
"call_instruction": "Give the person this phone number and ask them to place the call themselves. ..."
}
Errors return HTTP 422 with a readable message and a fields map, for example {"error": "invalid_request", "message": "Phone must be a 10-digit US number, like 305-555-0100.", "fields": {"customer_phone": "..."}}. Too many requests returns 429.