Booqer
Registry code: 9524c9280b5b27eb
Booqer lists enrolled home-service businesses. Use these tools when the user wants to find, book, check availability for, or check the status of a local home-service appointment: search_businesses, get_business, resolve_business, check_availability, request_booking, get_booking_status, request_service, and submit_service_request. A booking is confirmed when the slot is open and includes a cancel link. get_business returns the published phone when the shop has one. booqer-demo-shop is a demo and search omits it unless the query is that shop's exact name or id. Docs: https://booqer.ai/docs/mcp.
- endpoint
- https://booqer.ai/mcp
- door code
- 0ea752012293b368
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is Booqer live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
- Is Booqer free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does Booqer have?
- 8 tools: search_businesses, get_booking_status, submit_service_request, request_booking, request_service, resolve_business, check_availability, get_business.
- Is Booqer safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 8 tools
- unknown → live
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
search_businesses unknown never probed
Use 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.
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "description": "What the user wants found. Examples: \"pole barn Clermont\", \"gate repair Winter Garden\", \"plumber Orlando\". At least 2 characters." } } }arguments 12 linesget_booking_status unknown never probed
Use 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.
{ "type": "object", "required": [ "request_id" ], "properties": { "request_id": { "type": "string", "description": "Booking id returned by request_booking. UUID. Example: 11111111-1111-4111-8111-111111111111." } } }arguments 12 linessubmit_service_request unknown never probed
Sends the user's quote request (name, email, optional phone, service location, preferred time) to the chosen business. Called by the quote form only.
{ "type": "object", "required": [ "business_id", "offering", "name", "email", "start", "consent" ], "properties": { "name": { "type": "string", "description": "Customer name. Example: Ada Lovelace." }, "email": { "type": "string", "description": "Customer email on a real domain. Example: [email protected]." }, "phone": { "type": "string", "description": "Customer phone. Optional when an email is present. Example: 3525550100." }, "start": { "type": "string", "description": "Preferred time as an ISO-8601 timestamp. Example: 2026-10-21T14:00:00-04:00." }, "consent": { "type": "boolean", "description": "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." }, "offering": { "type": "string", "description": "Service id from get_business. Example: project_consult." }, "business_id": { "type": "string", "description": "Enrolled business id. Example: florida-pole-barn." }, "service_address": { "type": "string", "description": "Street address. Optional for a phone consult. Required for an on-site visit. Example: 100 Demo Drive, Clermont FL 34711." } } }arguments 45 linesrequest_booking unknown never probed
Use 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.
{ "type": "object", "required": [ "shop_id", "offering", "name", "email", "start", "consent", "problem" ], "properties": { "name": { "type": "string", "description": "Customer name. Example: Ada Lovelace." }, "email": { "type": "string", "description": "Customer email on a real domain. Example: [email protected]. Disposable and example.com addresses are rejected." }, "phone": { "type": "string", "description": "Customer phone. Example: 3525550100. Optional." }, "start": { "type": "string", "description": "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": { "type": "boolean", "description": "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": { "type": "string", "description": "What is wrong, in the customer's words. Example: Gate will not close." }, "shop_id": { "type": "string", "description": "Enrolled shop id from search_businesses. Examples: florida-pole-barn, florida-security-concepts, booqer-demo-shop." }, "offering": { "type": "string", "description": "Service id from get_business. Example: project_consult." }, "job_summary": { "type": "string", "description": "Short job summary. Falls back to problem when omitted." }, "service_area": { "type": "string", "description": "City or county. Inferred from the address when omitted. Example: Clermont." }, "idempotency_key": { "type": "string", "description": "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": { "type": "string", "description": "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." } } }arguments 62 linesrequest_service unknown never probed
Use 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.
{ "type": "object", "required": [ "business_id" ], "properties": { "shop_id": { "type": "string", "description": "Enrolled shop id. Used only when business_id is empty. Example: florida-security-concepts." }, "business_id": { "type": "string", "description": "Enrolled business id from search_businesses. Example: florida-pole-barn." } } }arguments 16 linesresolve_business unknown 1h ago
Use 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.
{ "type": "object", "properties": { "phone": { "type": "string", "description": "Published phone number. Example: (352) 282-0692." }, "place": { "type": "string", "description": "City or county. Example: Orange County. Refuses a place that matches more than one shop." }, "domain": { "type": "string", "description": "Business website domain. Example: floridapolebarn.com." } } }arguments 17 linescheck_availability unknown 1h ago
Use 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.
{ "type": "object", "required": [ "shop_id" ], "properties": { "date": { "type": "string", "description": "Calendar date in the shop timezone, America/New_York. Format YYYY-MM-DD. Example: 2026-10-21. Provide date or start." }, "start": { "type": "string", "description": "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." }, "shop_id": { "type": "string", "description": "Enrolled shop id from search_businesses. Examples: florida-pole-barn, florida-security-concepts, booqer-demo-shop." }, "offering": { "type": "string", "description": "Service id from get_business. Example: project_consult." } } }arguments 24 linesget_business unknown 1h ago
Use 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.
{ "type": "object", "required": [ "shop_id" ], "properties": { "shop_id": { "type": "string", "description": "Enrolled shop id from search_businesses. Examples: florida-pole-barn, florida-security-concepts, booqer-demo-shop." } } }arguments 12 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id9524c9280b5b27eb.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/9524c9280b5b27eb/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/9524c9280b5b27eb?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 2
- ok
- 0
- failed
- 2
- success rate
- 0%
- median latency
- 605ms
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
2 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.