Skip to content

Booqer

by booqer.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.booqer

Verified Booqer shops. A keyless consult is confirmed when the slot is open.

Deletes · 2Changes · 2

8 tools: 2 can delete or cancel things, 2 change things and 4 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http booqer https://booqer.ai/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "request_service" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "request_service" says "request": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Deletes or cancels 2Claude Code: deny
  • request_bookingUse this when the user wants to book a local home-service appointment and has already chosen an open time.No findings

    Why it is in this group

    • The name "request_booking" says "request": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Request a consult
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
  • submit_service_requestSends the user's quote request (name, email, optional phone, service location, preferred time) to the chosen business.No findings

    Why it is in this group

    • The name "submit_service_request" says "submit": a word for a change.
    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Sends the user's quote request (name, email, optional phone, service location, preferred time) to the chosen business. Called by the quote form only.

    Annotations the server declares

    • title: Submit a service request
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 2Claude Code: ask
  • check_availabilityUse this when the user wants to check availability for a local home-service appointment before booking.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Check availability
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • request_serviceUse this when the user wants to open a quote form for a local home-service business rather than book a confirmed appointment time.1 finding

    Why it is in this group

    • The name "request_service" says "request": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "request_service" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "request_service" says "request": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Request a quote
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 4Claude Code: allow
  • get_booking_statusUse this when the user wants to check the status of a local home-service appointment.No findings

    Why it is in this group

    • The name "get_booking_status" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Booking status
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_businessUse this when the user wants to read one enrolled local home-service business and search_businesses or resolve_business already returned its id.No findings

    Why it is in this group

    • The name "get_business" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get a business
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • resolve_businessUse this when the user wants to resolve one enrolled local home-service business from a domain, a place, or a phone number.No findings

    Why it is in this group

    • The name "resolve_business" says "resolve": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Resolve a business
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • search_businessesUse 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.No findings

    Why it is in this group

    • The name "search_businesses" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Search businesses
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http booqer https://booqer.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__booqer__search_businesses",
      "mcp__booqer__get_business",
      "mcp__booqer__resolve_business",
      "mcp__booqer__get_booking_status"
    ],
    "ask": [
      "mcp__booqer__check_availability",
      "mcp__booqer__request_service"
    ],
    "deny": [
      "mcp__booqer__request_booking",
      "mcp__booqer__submit_service_request"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as booqer. Review it before you use it.