Booqer
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Verified Booqer shops. A keyless consult is confirmed when the slot is open.
| Author | ai.booqer |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 402 ms |
| Last measured | 2026-10-26 |
Measured statistics
| Tools measured | 8 |
|---|---|
| Latency, 30-day median (L1) | 402 ms |
| Latency, latest (L1) | 402 ms |
| Safe-call success | 1/1 (100%) |
| 30-day success rate (L2) | 100% |
| Last checked | 2026-10-26 |
| Total checks | 4 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Booqer": {
"url": "https://booqer.ai/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
search_businessesread-onlyUse this when the user wants to find a local home-service business or appointment: plumber, HVAC, electrician, gate, fence, or security install, pole barn, or builder. Searches the Booqer directory of enrolled home-service businesses by name, category, service, location, or phone. Coverage is limited to enrolled businesses (currently Florida pole barn and gate/security). Returns id, name, domain, booking URL, and booking status. A trade that is not enrolled returns no businesses and the message says no shop is available. A city outside a business's service area is left out. booqer-demo-shop is omitted unless the query is that shop's exact name or id.
Parameters:
query(required) — string — What the user wants found. Examples: "pole barn Clermont", "gate repair Winter Garden", "plumber Orlando". At least 2 characters.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
get_businessread-onlyUse this when the user wants to read one enrolled local home-service business and search_businesses or resolve_business already returned its id. Returns one enrolled shop as JSON: id, brand, legal_name, page, booking_url, phone when published, sms, services as id and name, hours, timezone, verification status and verify_url, and booking_rules and emergency_phone when that shop has them.
Parameters:
shop_id(required) — string — Enrolled shop id from search_businesses. Examples: florida-pole-barn, florida-security-concepts, booqer-demo-shop.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
resolve_businessread-onlyUse this when the user wants to resolve one enrolled local home-service business from a domain, a place, or a phone number. An ambiguous match is refused. Returns that one identity. No phone, email, or street address is returned.
Parameters:
phone— string — Published phone number. Example: (352) 282-0692.place— string — City or county. Example: Orange County. Refuses a place that matches more than one shop.domain— string — Business website domain. Example: floridapolebarn.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
check_availabilityread-onlyUse this when the user wants to check availability for a local home-service appointment before booking. Lists the open 30-minute slots for one shop and one date. Booked and blocked times are left out. Each start and end is ISO-8601 with an offset. The shop timezone is America/New_York. date is YYYY-MM-DD, or start is an ISO-8601 timestamp. offering selects that shop's rules from get_business. Does not reserve a slot. Rate limited per IP and per shop.
Parameters:
shop_id(required) — string — Enrolled shop id from search_businesses. Examples: florida-pole-barn, florida-security-concepts, booqer-demo-shop.date— string — Calendar date in the shop timezone, America/New_York. Format YYYY-MM-DD. Example: 2026-10-21. Provide date or start.start— string — ISO-8601 timestamp with an offset. Example: 2026-10-20T14:00:00-04:00. At least 2 hours ahead and no more than 21 days ahead.offering— string — Service id from get_business. Example: project_consult.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
request_bookingdestructiveUse this when the user wants to book a local home-service appointment and has already chosen an open time. Confirms a free consult when the slot is open. Calling this again with the same details can create a second booking; if unsure, check get_booking_status first. Requires consent: before calling, show the user the consent text in the consent field and get their agreement. Also requires a name, a valid email, and a problem description. service_address is optional for a phone consult and required for an on-site visit. Disposable, reserved, and blocked email domains are rejected. job_summary falls back to problem. service_area is inferred from the address or city, otherwise the shop city. A phone consult accepts a street, a city and ZIP, or a PO Box. An on-site visit needs a street address. Shop-specific booking rules and emergency_phone come from get_business. offering is an id from get_business. start is an ISO-8601 timestamp, for example 2026-10-20T14:00:00-04:00. The start is at least 2 hours ahead and no more than 21 days ahead. A start outside that window names the field start. Returns status confirmed, a cancel link, and verify_url when the signed receipt is ready. The receipt page does not show the customer. An optional idempotency_key repeats the same result for that shop. Rate limited per IP and per shop, with a per-shop daily cap.
Parameters:
shop_id(required) — string — Enrolled shop id from search_businesses. Examples: florida-pole-barn, florida-security-concepts, booqer-demo-shop.offering(required) — string — Service id from get_business. Example: project_consult.name(required) — string — Customer name. Example: Ada Lovelace.email(required) — string — Customer email on a real domain. Example: [email protected]. Disposable and example.com addresses are rejected.start(required) — string — ISO-8601 timestamp with an offset. Example: 2026-10-20T14:00:00-04:00. At least 2 hours ahead and no more than 21 days ahead.consent(required) — boolean — Required. Before you call this tool, show the user this exact text and get their agreement: "I agree to Booqer's Terms and Privacy Policy and consent to Booqer sharing my request with this shop so they can contact me about it." Terms: https://booqer.ai/terms. Privacy Policy: https://booqer.ai/privacy. Set true only after the user agrees. Without consent true the call is rejected and nothing is stored.problem(required) — string — What is wrong, in the customer's words. Example: Gate will not close.phone— string — Customer phone. Example: 3525550100. Optional.job_summary— string — Short job summary. Falls back to problem when omitted.service_area— string — City or county. Inferred from the address when omitted. Example: Clermont.idempotency_key— string — Optional key of 8 to 80 letters, numbers, dots, underscores, colons, or hyphens. A repeat with the same key and shop returns the first booking instead of creating another.service_address— string — Street, city and ZIP, or PO Box. Optional for a phone consult. Required for an on-site visit. Example: 100 Demo Drive, Clermont FL 34711.
Hints: read-only no · destructive yes · idempotent not declared · open-world yes
get_booking_statusread-onlyUse this when the user wants to check the status of a local home-service appointment. status is confirmed, pending, canceled, or failed. No customer name, phone, or email.
Parameters:
request_id(required) — string — Booking id returned by request_booking. UUID. Example: 11111111-1111-4111-8111-111111111111.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
request_serviceread-onlyUse this when the user wants to open a quote form for a local home-service business rather than book a confirmed appointment time. Opens the quote widget for one enrolled business. business_id is the provider_business_id from the business feed. shop_id is accepted when business_id is empty. The widget is ui://widget/request-service.html. This call does not store a request and does not confirm a booking. It is rate-limited.
Parameters:
business_id(required) — string — Enrolled business id from search_businesses. Example: florida-pole-barn.shop_id— string — Enrolled shop id. Used only when business_id is empty. Example: florida-security-concepts.
Hints: read-only yes · destructive no · idempotent yes · open-world no
submit_service_requestdestructiveSends the user's quote request (name, email, optional phone, service location, preferred time) to the chosen business. Called by the quote form only.
Parameters:
business_id(required) — string — Enrolled business id. Example: florida-pole-barn.offering(required) — string — Service id from get_business. Example: project_consult.name(required) — string — Customer name. Example: Ada Lovelace.email(required) — string — Customer email on a real domain. Example: [email protected].start(required) — string — Preferred time as an ISO-8601 timestamp. Example: 2026-10-21T14:00:00-04:00.consent(required) — boolean — Required. Before you call this tool, show the user this exact text and get their agreement: "I agree to Booqer's Terms and Privacy Policy and consent to Booqer sharing my request with this shop so they can contact me about it." Terms: https://booqer.ai/terms. Privacy Policy: https://booqer.ai/privacy. Set true only after the user agrees. Without consent true the call is rejected and nothing is stored.phone— string — Customer phone. Optional when an email is present. Example: 3525550100.service_address— string — Street address. Optional for a phone consult. Required for an on-site visit. Example: 100 Demo Drive, Clermont FL 34711.
Hints: read-only no · destructive yes · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.