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.