Zaptu
Server Details
Connect people with independent local home-service contractors. For plumbing, the person dials.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
get_lead_status and list_supported_services are clearly distinct (lookup vs. catalog/rules). The only overlap is request_cleaning, which is explicitly a shortcut onto the same pipeline as request_home_service; the description clarifies it is a pre-scoped variant of the same submission, so confusion is possible but low-risk since either path works.
All four names follow a consistent verb_noun snake_case pattern (get_lead_status, list_supported_services, request_cleaning, request_home_service). The repeated 'request_' prefix is a coherent family for submission tools rather than an inconsistency.
Four tools is well within a sensible scope for a lead-intake service, and each maps to a real step (discover services, submit, track). The only slight inefficiency is that two of the four are near-duplicates of the same submission operation, leaving three effectively distinct capabilities.
The surface covers the stated lifecycle: discover accepted services, submit a lead with consent, and check status by lead_id. It deliberately stops short of booking, but lacks any cancel/update or list-my-leads operation, which agents may occasionally need as a workaround.
Available Tools
4 toolsget_lead_statusCheck lead statusBRead-onlyIdempotentInspect
Look up a previously submitted service request by lead_id.
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | ID returned by request_home_service. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety and repeat-call profile is fully covered structurally. The description adds only the fact that it targets a previously submitted request (implying existence/lookup semantics), with no note on error behavior for unknown IDs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded before the key parameter. It is appropriately sized, though it is arguably slightly under-informative rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and this is a trivial one-parameter read. The main residual gap is not telling the agent what a returned 'status' can be or what to do if the lead_id is unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single lead_id parameter is documented as the ID returned by request_home_service. The description adds no format, validation, or lookup semantics beyond that, so the schema carries the entire burden and the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Look up a previously submitted service request by lead_id'), which is clearer than the tool name's vague 'lead status'. It does not, however, explicitly differentiate itself from the similar sibling get_plumbing_call_number, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as the other lookup/status siblings. The only implicit signal is the schema note tying lead_id to request_home_service, which the agent must infer applies to usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_servicesList supported servicesARead-onlyIdempotentInspect
Which services Zaptu accepts requests for, plus the rules for agents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds that the response also carries 'rules for agents', hinting at policy content beyond a plain list, but it never explains what those rules govern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding, and the core resource is front-loaded. The second clause is vague enough that it does not fully earn its place as written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and there are no parameters to document. The only shortfall is that 'rules for agents' is left undefined, so an agent cannot anticipate what policy content it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify; baseline 4 applies. Schema coverage is 100% and the absence of inputs is consistent with the stated purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('services Zaptu accepts requests for') and scope clearly enough that an agent can distinguish it from request_cleaning/request_home_service siblings. It lacks an explicit verb, and the trailing phrase 'plus the rules for agents' is cryptic, which keeps it below 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer it should check accepted services before issuing a request, but the description never says when to call this versus the sibling request tools or whether it is a prerequisite. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_cleaningRequest house cleaningBInspect
Shortcut for residential house cleaning (collecting; not a booking). Same pipeline as request_home_service. Consent means details may be shared with Polyares and its service-provider partners for this request.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| notes | No | ||
| state | No | ||
| bedrooms | No | ||
| zip_code | Yes | US 5-digit ZIP for the home. | |
| bathrooms | No | ||
| frequency | No | one_time | |
| square_feet | No | ||
| customer_name | Yes | Customer's full name. | |
| customer_email | No | ||
| customer_phone | Yes | US phone number. | |
| preferred_date | No | ||
| consent_to_contact | Yes | Must be true: the person agreed that details may be shared with Polyares and its service-provider partners, and that Polyares, those partners, or Zaptu may call or text about this request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (non-destructive, open-world, non-idempotent). The description adds real value by clarifying this produces a collected lead rather than a confirmed booking and explains the data-sharing/consent consequence with Polyares and partners — context not encoded in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the key purpose and the 'not a booking' clarification first. Slightly compressed parenthetical phrasing but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter collection tool with low schema coverage, the description should characterize the optional service attributes, but it is silent on them. It does adequately explain the collection-vs-booking nature and consent implication, and an output schema exists to cover returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 13 parameters and only 31% schema description coverage, the schema leaves much unexplained, yet the description says nothing about the service fields (bedrooms, bathrooms, frequency, preferred_date, etc.). The only parameter-adjacent content is the consent note, which the schema already documents verbatim in consent_to_contact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('residential house cleaning') and clarifies the operation is lead collection, not booking. It also names the sibling pipeline (request_home_service), giving an agent a way to relate the two tools, though the distinction between them remains implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(collecting; not a booking)' signals intent and the 'same pipeline as request_home_service' hints at relatedness, but there is no explicit guidance on when to pick this over request_home_service or list_supported_services.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_home_serviceRequest a home serviceAInspect
Submit a home-service request (a lead, not a booking).
Every service, plumbing included, works the same way: the request is passed along when a participating provider covers the ZIP code, so do not promise a callback. Requires name, phone, ZIP, and the person's explicit consent. Tell the person details may be shared with Polyares and its service-provider partners, and Polyares, those partners, or Zaptu may call or text about this request. Never place a call for them.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| notes | No | What the person needs, in their words. | |
| state | No | 2-letter US state code. | |
| dry_run | No | Validate only; nothing is saved or passed along. | |
| bedrooms | No | ||
| zip_code | Yes | US 5-digit ZIP for the job site. | |
| bathrooms | No | ||
| frequency | No | one_time | |
| home_type | No | ||
| square_feet | No | ||
| address_line | No | ||
| service_type | Yes | Type of local service requested. | |
| source_agent | No | Your agent or product name. | mcp |
| customer_name | Yes | Customer's full name. | |
| customer_email | No | ||
| customer_phone | Yes | US phone number for follow-up contact about this request. | |
| flexible_dates | No | ||
| preferred_date | No | Preferred date as YYYY-MM-DD, if any. | |
| consent_to_contact | Yes | Must be true: the person agreed that details may be shared with Polyares and its service-provider partners, and that Polyares, those partners, or Zaptu may call or text about this request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: the request is only passed along when a participating provider covers the ZIP, so no callback can be promised, and details are shared with third parties. These are material behavioral facts (conditional routing, downstream disclosure) that the readOnly/openWorld/idempotent hints do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the key fact (lead, not booking) in the first sentence and then layers the operational constraints in short, scannable clauses. No filler; every sentence carries a rule the agent must follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter, non-idempotent write tool with an output schema, the description covers the high-risk dimensions (consent, disclosure, no callback guarantee) well. It is thin on the optional scheduling and property-detail parameters, which an agent must infer from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 53%, so the description should compensate but only partially does: it names the four required inputs (name, phone, ZIP, consent) and restates the consent disclosure. It says nothing about service_type, notes, dry_run, frequency, or the optional home attributes, leaving about half the parameters to the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Submit a home-service request') and immediately clarifies the output semantics ('a lead, not a booking'). It does not differentiate itself from the sibling request_cleaning, which appears to overlap for cleaning services, so it falls just short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong operational guidance: don't promise a callback, requires explicit consent, must disclose data sharing with Polyares/partners/Zaptu, and never place a call on the person's behalf. It does not tell the agent when to prefer this over request_cleaning or how to verify ZIP coverage first (e.g., via list_supported_services).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Removed
get_plumbing_call_number - Changed
request_home_service2 fields changed- changed
Input schema / properties / consent_to_contact / descriptionPrevious value: -"Must be true for non-plumbing services: the person agreed that details may be shared with Polyares and its service-provider partners, and that Polyares, those partners, or Zaptu may call or text about this request."New value: +"Must be true: the person agreed that details may be shared with Polyares and its service-provider partners, and that Polyares, those partners, or Zaptu may call or text about this request." - changed
Input schema / properties / service_type / descriptionPrevious value: -"Type of local service requested. For plumbing, prefer get_plumbing_call_number."New value: +"Type of local service requested."
2 tool updates
- Changed
request_cleaning1 field changed- changed
Input schema / properties / consent_to_contact / descriptionPrevious value: -"Must be true: the person agreed to a call or text about this request."New value: +"Must be true: the person agreed that details may be shared with Polyares and its service-provider partners, and that Polyares, those partners, or Zaptu may call or text about this request."
- Changed
request_home_service1 field changed- changed
Input schema / properties / consent_to_contact / descriptionPrevious value: -"Must be true for non-plumbing services: the person agreed to a call or text about this request."New value: +"Must be true for non-plumbing services: the person agreed that details may be shared with Polyares and its service-provider partners, and that Polyares, those partners, or Zaptu may call or text about this request."
1 tool update
- Changed
request_home_service1 field changed- changed
Input schema / properties / service_type / enumPrevious value: -[ - "house_cleaning", - "deep_cleaning", - "move_in_out_cleaning", - "recurring_cleaning", - "pest_control", - "plumbing", - "hvac", - "handyman", - "other" -]New value: +[ + "house_cleaning", + "deep_cleaning", + "move_in_out_cleaning", + "recurring_cleaning", + "pest_control", + "garage_door", + "plumbing", + "hvac", + "handyman", + "other" +]
5 tool updates
- First observed
get_lead_status - First observed
get_plumbing_call_number - First observed
list_supported_services - First observed
request_cleaning - First observed
request_home_service
Related MCP Connectors
Find one verified local pro for anyone: plumbers, roofers, cleaners, 110+ services. Free.
Agent-first booking of home-service contractors in Canada and the US: quotes, availability, booking.
Book local tradespeople — plumber, electrician, HVAC, and 7 more — via your AI agent. All US.
Find and book verified local home service professionals through AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to submit and track local household-service requests such as house cleaning or pest control, validating details and passing each as a routed opportunity to external providers or buyer networks. Exposes service-discovery, submission, and status-check tools so those requests flow through one consistent intake pipeline.MIT
- AlicenseNot gradedqualityBmaintenanceHome Services MCP by HireNimbus lets AI agents find, compare, and book verified local pros for handyman, renovation, HVAC, plumbing, electrical, and landscaping jobs in supported US metro markets.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables voice assistants to find nearby service providers, connect users to live video representatives for natural conversation, and handle appointment booking. It also returns confirmed bookings so the assistant can add them to its calendar.MIT
- AlicenseNot gradedqualityAmaintenanceEnables users to prepare and conduct phone calls for errands, gathering context before dialing and looking up missing information through connected tools during the conversation.4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.