Find and book a local service pro
Server Details
Find a local service company by US ZIP code (garage door, locks, HVAC and more) and book a visit.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool occupies a distinct stage of a single pipeline: find_pros searches by ZIP, get_availability inspects one returned company, and book_visit commits the booking. There is no plausible way to confuse these actions, and the descriptions explicitly chain them (book_visit references find_pros output and the booking_id).
All three names follow a clean verb_noun pattern (find_pros, get_availability, book_visit) in consistent snake_case. Verbs are semantically accurate to their actions: find for search, get for read-only retrieval, book for the write/mutation.
Three tools is at the low end but each maps to an indispensable step of the search-then-book workflow, with no filler or overlap. It sits right at the minimum for a useful surface rather than feeling padded or artificially thin.
The core discover-and-book path is fully covered, but the lifecycle dead-ends after booking: there is no way to view existing bookings, cancel, or reschedule a visit, all of which are natural follow-up requests. No tool also exposes richer filtering (trade type, date) beyond ZIP, limiting find_pros to a single-shot query.
Available Tools
3 toolsbook_visitBook a visitAIdempotentInspect
Book a visit with a company from find_pros. Only when the customer clearly asked to book, using their own name, phone and address. Confirm the company, day and time window with the customer first. The company confirms by text or a call.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ZIP code | |
| city | No | ||
| date | Yes | YYYY-MM-DD, one of the open days from get_availability | |
| name | Yes | Customer full name | |
| No | Customer email (optional) | ||
| notes | No | What is wrong, in the customer’s words | |
| phone | Yes | Customer phone number | |
| state | No | 2-letter state | |
| window | Yes | Time window id from get_availability | |
| address | No | Street address of the visit | |
| service | Yes | One of the services from get_availability | |
| booking_id | Yes | booking_id from find_pros |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=true, openWorld=true and destructive=false, so the safety profile is covered. The description adds genuinely new behavior: the booking is not final at call time because 'the company confirms by text or a call', which tells the agent the result is a pending request rather than a confirmed appointment.
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?
Four short sentences, front-loaded with the action, then the precondition, then the confirmation requirement, then the outcome. No sentence is redundant and nothing is buried.
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 12-parameter mutation with no output schema, the description covers the workflow chain (find_pros → get_availability → book), the prerequisites, and the post-call confirmation behavior. It does not say what a failed or rejected booking looks like, but the essential calling context is present.
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 92%, so the schema already documents nearly every field, including the booking_id/date/window provenance. The description only reinforces that name, phone and address must be the customer's own, adding little beyond the structured data. Baseline 3 is appropriate.
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 ('Book a visit with a company from find_pros') and anchors it to the sibling tool that supplies the company. It is clearly distinguishable from find_pros and get_availability, though the differentiation is implied by the workflow rather than stated as an explicit contrast.
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 an explicit gating condition ('Only when the customer clearly asked to book'), a data-provenance rule (their own name, phone and address), and a required pre-step ('Confirm the company, day and time window with the customer first'). An agent knows exactly when to call this and what must happen before it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_prosFind a local service proARead-onlyInspect
Find home and business service companies (garage door, locksmith, plumbing, HVAC, electrical, appliance and other trades) that cover a US ZIP code and take online bookings. Returns up to 5 companies, each with a booking_id.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | 5-digit US ZIP code where the work is | |
| city | No | City (optional, helps) | |
| service | No | What the customer needs, in their words, e.g. "garage door spring broke" or "locked out" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description sensibly spends its words elsewhere: it discloses the filtering criteria (ZIP coverage plus online-booking acceptance) and the result cap of 5 with a booking_id per company. Still missing is what happens on zero matches and whether results are ranked.
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?
Two sentences, zero filler: the first carries scope and the filter conditions, the second carries the return shape. The most decision-relevant constraint (ZIP coverage + online bookings) is front-loaded.
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 read-only search with no output schema, the description covers the query semantics and the essential shape of the return (up to 5 companies, each with a booking_id). It could go one step further on empty-result behavior, but nothing an agent needs to call it correctly is absent.
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 100%, so all three parameters are already documented, including the example phrasing for 'service'. The description reinforces that the service trade list is closed-ish and that city is optional, but adds no syntax or matching behavior beyond the schema, so the baseline 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?
States a specific verb ('Find') plus a tightly scoped resource (home/business service companies that cover a US ZIP and take online bookings), with trade examples that make the domain unmistakable. An agent can tell this is the search step that precedes book_visit and get_availability without opening the schema.
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: the tool finds companies and returns a booking_id, which suggests the follow-on booking flow, but the description never says 'call this before book_visit' or when to prefer it over get_availability. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_availabilitySee open days and timesARead-onlyInspect
For one company from find_pros: what it does and the days and time windows open for booking.
| Name | Required | Description | Default |
|---|---|---|---|
| booking_id | Yes | booking_id from find_pros |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that results are limited to one company and include open days/time windows, but it does not describe return format, pagination, or error behavior.
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?
The definition is a single efficient sentence with no wasted wording. It is slightly awkwardly phrased but remains front-loaded and easy to parse.
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 simple one-parameter read tool with annotations and no output schema, the description covers the core purpose and return scope adequately. Minor gaps around output shape are acceptable given the tool's low complexity.
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 100%, and the single booking_id parameter is already documented as coming from find_pros. The description reinforces that dependency but adds no syntax or format details beyond the schema.
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 as availability for one company from find_pros, including open days and time windows. It is clear enough to distinguish from book_visit, though the phrasing 'what it does' is slightly vague.
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?
It implies usage after find_pros by requiring a booking_id from that tool, but it does not explicitly state when to use this versus book_visit or any exclusions. The dependency provides some guidance but stops short of explicit routing.
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.
3 tool updates
- First observed
book_visit - First observed
find_pros - First observed
get_availability
Related MCP Connectors
Find enrolled home-service and trade businesses by trade and ZIP, and send a booking request.
Find and book local service businesses (plumbers, HVAC, detailers) at real prices, with approval.
Find participating local service providers and book live appointment times.
Find, get quotes from and book local service businesses on their own Square or Google calendar.
Related MCP Servers
- 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 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 gradedqualityCmaintenanceEnables 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 gradedqualityBmaintenanceEnables an assistant to report repair issues, compare source-backed quotes, propose appointment times, and retrieve, list, or cancel local repair tasks with explicit household confirmation.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.