Corex Booking
Server Details
Find and book a local home-service business, with a card deposit, from your AI.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool occupies a distinct step in the funnel: search_businesses finds businesses, get_business returns details for one, get_open_times lists slots, and book_with_deposit holds a slot and creates a payment link. There is no resource or action overlap, and the output/input chaining (business_id, start value) is explicitly documented.
All names are snake_case verb_noun (search_businesses, get_business, get_open_times) with one minor deviation, book_with_deposit, which uses a verb_with_noun form. The pattern is still highly predictable and readable.
Four tools is a tight, well-scoped surface for a search-to-booking workflow, and each tool corresponds to a necessary stage. Nothing appears redundant or missing at this granularity.
The core lifecycle — find business, inspect it, view availability, book with deposit — is fully covered. Gaps exist around post-booking operations (cancel/reschedule, check booking status, or retrieve a payment link again), but an agent can still complete the primary task without dead ends.
Available Tools
4 toolsbook_with_depositBook With DepositAInspect
Hold a time for the homeowner and get a card payment link for the deposit. Ask the homeowner for their name, phone, service address and a short description of the problem first. The time is held for 20 minutes and is booked only when they pay. Tell them: The deposit comes off your final bill. Refunds are up to the business.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| No | |||
| phone | Yes | ||
| address | Yes | ||
| problem | Yes | ||
| slot_start | Yes | ||
| business_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say it is a non-destructive, open-world write. The description adds the traits that actually matter: a 20-minute hold, booking confirmed only on payment, deposit credited to the final bill, and refunds at the business's discretion. It also supplies the disclosure script the agent must read to the homeowner, which is behavior no annotation or schema field conveys.
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 with the action front-loaded, then the data-collection requirement, then the hold semantics, then the customer script. Every sentence carries content, though the script clause reads as imperative copy rather than tool documentation.
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 7-parameter, 6-required mutation with no output schema, key details are missing: what the call returns (a link URL? a hold identifier? an expiry?), and no statement of permission or business-side requirements. The two-phase hold/pay model is well covered, but an agent still cannot predict the response shape.
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 0%, so the description must carry parameter meaning. It explains intent for four of seven fields (name, phone, address, problem) as things to ask the homeowner, but leaves business_id, slot_start and the optional email entirely unexplained — notably the format and source of slot_start, which is the parameter most likely to be malformed.
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?
"Hold a time for the homeowner and get a card payment link for the deposit" names a specific two-part action on a specific resource. It is clearly distinct from the sibling read tools get_business, get_open_times and search_businesses, which cannot hold time or produce a payment link.
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?
Provides genuine sequencing guidance: collect name, phone, service address and problem description before invoking, which implies this runs after get_open_times yields a slot. It does not explicitly name get_open_times as the prerequisite alternative, so the agent must infer that step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_businessGet BusinessARead-onlyInspect
Details for one business from search_businesses: name, services, hours, deposit and the refund policy.
| Name | Required | Description | Default |
|---|---|---|---|
| business_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered by structured data. The description's only added behavioral value is listing returned fields (useful given no output schema), but it says nothing about failure behavior for an invalid or stale business_id, or about deposit/refund field mutability.
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 sentence with no waste; the resource identity is front-loaded and the returned fields follow immediately. Nothing could be trimmed without losing information.
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 one-parameter read tool with annotations and no output schema, the description conveys the essential contract: what it looks up, where the ID comes from, and roughly what comes back. The only real gap is not clarifying its relationship to get_open_times for hours data.
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?
There is one parameter, business_id, with 0% schema description coverage, so the description carries the burden. It does implicitly indicate the ID originates from search_businesses results, which is genuinely helpful, but it adds nothing about format, length limits, or whether an ID from a different source would work.
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 ('one business') and enumerates the payload ('name, services, hours, deposit and the refund policy'), and ties itself to the sibling 'search_businesses' as the source. The verb is only implicit ('Details for...'), so it is clear but not as crisp as an explicit 'Fetch'/'Get' phrasing.
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 phrase 'from search_businesses' implies the workflow (look up an ID via search first, then call this), which is meaningful guidance. It gives no explicit exclusions, however, and notably does not distinguish itself from the sibling 'get_open_times' even though it claims to return 'hours'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_timesGet Open TimesARead-onlyInspect
Open appointment times for a business over the next days (default 7, max 14). Pass a start value to book_with_deposit.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| business_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the lookahead window constraint (default 7, max 14), which is useful, but says nothing about result ordering, timezone, grouping by day, or whether unavailable days are omitted — meaningful gaps for an availability tool.
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 tight sentences with the core capability front-loaded and the chaining hint second — no filler. Minor deduction for the ambiguous 'start value' phrasing, which could confuse an agent scanning for an input parameter.
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?
This is a simple two-parameter read tool, and the description covers the lookahead scope and the downstream chaining, which is enough to call it. With no output schema, however, the return shape (e.g. what a 'start' value looks like, how days are grouped) is left entirely implicit.
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 0%, so the description must carry the load. It does well on 'days' — supplying the default of 7 (which the schema does not encode via a default keyword) and restating the 14 cap — but business_id is left entirely undefined, and the phrase 'Pass a start value' risks being misread as a parameter name when no 'start' parameter exists in 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?
States a specific verb plus resource ('Open appointment times for a business') and scopes it to a time window with default and maximum. It is clearly distinct from the booking and business-lookup siblings, though it never explicitly names an alternative the way a 5 would.
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 sentence 'Pass a start value to book_with_deposit' establishes the workflow context — this is the availability step that feeds booking — which is real when-to-use guidance. It lacks any explicit when-not-to-use condition or direct naming of get_business/search_businesses as alternatives, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessesSearch BusinessesARead-onlyInspect
Find local service businesses that take AI bookings with a deposit, by trade (plumbing, hvac, appliance repair, cleaning, electrical, pest control...) and 5-digit zip. Returns business_id values for the other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | ||
| trade | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered; the description adds substantive behavior the annotations can't convey, namely that the result set is pre-filtered to businesses that take AI bookings with a deposit. That constraint materially changes what the agent will get back and prevents it from treating this as a general directory search. Missing are result-count limits and empty-result 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?
Two sentences, no filler. The domain constraint leads and the return-value note closes, so the agent can stop reading once it has what it needs.
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 two-required-parameter lookup with no output schema and clean annotations, the definition covers what the tool searches over and what it hands back. The only meaningful gap is match semantics for the free-text trade parameter, which is the one thing an agent could plausibly get wrong here.
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 0%, so the description must carry parameter meaning, and it partially does: it constrains zip to "5-digit" (tightening the schema's 5-10 char allowance) and gives an enumerated flavor for trade via examples like plumbing, hvac, appliance repair. It still doesn't say whether trade must match those exact tokens or accepts free text/substring matching, which is the key ambiguity for an unenumerated string parameter.
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 ("Find local service businesses") plus the scoping qualifier that matters most (accepts AI bookings with a deposit), and explicitly says it returns business_id values. That distinguishes it cleanly from get_business, get_open_times and book_with_deposit, which all appear to consume an id rather than produce one.
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 closing clause "Returns business_id values for the other tools" positions this as the entry point of the workflow, which is real routing guidance the agent can act on. It doesn't state what to do when zero results come back or whether results are capped, so it stops short of full when/when-not coverage.
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.
4 tool updates
- First observed
book_with_deposit - First observed
get_business - First observed
get_open_times - First observed
search_businesses
Related MCP Connectors
Find and book verified local home service professionals through AI agents.
Book local service pros from your AI assistant: real availability, instant booking, easy cancels.
Book local tradespeople — plumber, electrician, HVAC, and 7 more — via your AI agent. All US.
Verified local businesses, bookable by AI agents: services, prices, availability and appointments.
Related MCP Servers
- 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 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

@qasperai/mcp-serverofficial
AlicenseAqualityCmaintenanceEnables AI assistants to discover and book local service businesses like barbers, plumbers, and mechanics directly through MCP-compatible tools.952 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.