protogrid

Search / com.thejohnsonbros/plumbing-booking

plumbing-booking

R0· no sign-in

Johnson Bros. Plumbing: check coverage, services, pricing, availability, and book by SMS.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality77good
Trust79of 100
Uptime, 30 days93%
Latency p50242 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "plumbing-booking": {
      "type": "http",
      "url": "https://thejohnsonbros.com/mcp"
    }
  }
}
claude mcp add --transport http plumbing-booking https://thejohnsonbros.com/mcp
[mcp_servers.plumbing-booking]
url = "https://thejohnsonbros.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "plumbing-booking": {
      "type": "remote",
      "url": "https://thejohnsonbros.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "plumbing-booking": {
      "type": "http",
      "url": "https://thejohnsonbros.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=plumbing-booking&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdGhlam9obnNvbmJyb3MuY29tL21jcCJ9"
}
{
  "servers": {
    "plumbing-booking": {
      "type": "http",
      "url": "https://thejohnsonbros.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "plumbing-booking": {
      "httpUrl": "https://thejohnsonbros.com/mcp"
    }
  }
}
extensions:
  "plumbing-booking":
    enabled: true
    name: "plumbing-booking"
    type: streamable_http
    uri: "https://thejohnsonbros.com/mcp"
    timeout: 300

Quality 77 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations16 of 16 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 5,139 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability50 · weight 15
  • pass
    stability.changes3 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

16 tools, about 5,139 tokens to load them all · tool set 816b4ed0c32a · tools last changed 2026-09-25 · checked 2026-10-19 10:52 UTC

Tool changes

  • check_service_areachangeddescription, output schemameaning changed
    before

    Check the service ZIP against the coverage database for Norfolk, Suffolk and Plymouth counties. A town alone returns needs_more_information: ask for the ZIP or full address. Unavailable coverage is unknown, not outside-area. This never proves that a particular appointment is available.

    after · 38% of words in common

    Check a service ZIP, or a Massachusetts town, city or neighborhood name on its own, against the coverage database for Norfolk, Suffolk and Plymouth counties. Answer "do you serve <town>?" directly with town (no ZIP needed): covered = yes; partially_covered = yes for the listed covered_zips, confirm the customer's ZIP only then; outside_service_area = not in the automatic-booking area (offer request_out_of_area_callback and the office number); unknown_town = ask for the ZIP. During new-customer intake run this check silently; never announce that you are checking the service area. Unavailable coverage is unknown, not outside-area. This never proves that a particular appointment is available.

  • request_out_of_area_callbackadded

    Use as soon as a caller is found to be outside the automatic-booking service area and agrees to a call from the office. Requires name, phone, city, state, service ZIP, issue_description and confirmed:true. The server rechecks coverage: in_service_area means continue normal booking (no callback is created). For a Massachusetts address it flags the office to call back ASAP (status office_callback_requested); tell the caller the office will call them soon and that they are also welcome to call (617) 479-9911. Outside Massachusetts returns outside_massachusetts and creates nothing. It never books an appointment. Retries within 30 minutes return the same request (duplicate:true).

  • submit_customer_infochangeddescription, output schema
    before

    After asking Have you used us before?, use for NEW customers only after they approve full name, address, email, phone and where they found us. Include the customer-approved issue_description when the service or symptoms are already known. Saves an in-area customer; outside database coverage saves a lead with the supplied description for office review and never books a job. Say the description was saved only when issue_description_saved is true; in-area booking notes are saved later with request_booking. Lead submissions can notify the office and send a transactional SMS acknowledgment; they do not authorize marketing texts.

    after · 86% of words in common

    After asking Have you used us before?, use for NEW customers only after they approve full name, address, email, phone and where they found us. Include the customer-approved issue_description when the service or symptoms are already known. Saves an in-area customer; outside database coverage saves a lead with the supplied description for office review and never books a job. For a Massachusetts address outside the area that lead is also flagged for an ASAP office callback (office_callback_requested:true), so do not call request_out_of_area_callback afterwards. Say the description was saved only when issue_description_saved is true; in-area booking notes are saved later with request_booking. Lead submissions can notify the office and send a transactional SMS acknowledgment; they do not authorize marketing texts.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 79 / 100

no-repository
provenance55
liveness97
freshness85
hygiene80

+dns-namespace +website +reachable +uptime-93% ~updated-58d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://thejohnsonbros.com/mcp streamable-httpnoneyes93%242 ms2025-11-252026-10-19

Tools (16)

business_inforead-onlyStart here for a self-contained Johnson Bros. business briefing: locations, services, hours, service area, dispatch fee, pricing and booking policies, credentials, payment methods, and how to get further information through MCP without browsing the website. Not live availability or private customer records.
check_service_arearead-onlyCheck a service ZIP, or a Massachusetts town, city or neighborhood name on its own, against the coverage database for Norfolk, Suffolk and Plymouth counties. Answer "do you serve <town>?" directly with town (no ZIP needed): covered = yes; partially_covered = yes for the listed covered_zips, confirm the customer's ZIP only then; outside_service_area = not in the automatic-booking area (offer request_out_of_area_callback and the office number); unknown_town = ask for the ZIP. During new-customer intake run this check silently; never announce that you are checking the service area. Unavailable coverage is unknown, not outside-area. This never proves that a particular appointment is available.
confirm_bookingdestructiveUse this after the customer supplies the six-digit SMS code from request_booking. It can create customer and job records or an office-review lead, notify the office, and send transactional customer or referral-status texts. Only status:confirmed with booked:true means the visit is scheduled. status:callback_pending with booked:false means the office must follow up and must never be described as an appointment. Replaying the same valid confirmation is safe and returns the stored result.
customer_lookupdestructiveFor a returning customer: first call with phone and confirmed:true to request a code. Next call with the returned challenge_id and customer-supplied code. Saved details and recent service history are returned only after successful verification. If lookup fails, offer the new-customer form or office assistance. Never claim a match from the initial response.
emergency_helpread-onlyUse this immediately when the user describes an urgent plumbing safety or damage situation. Give bounded mitigation guidance and direct them to call Johnson Bros.; for gas, fire, or immediate danger, direct them to leave and call 911 first. Do not treat this tool as monitored emergency dispatch or create an online emergency appointment. WHEN TO USE: Immediately when a customer mentions an emergency situation like: - Burst pipe, flooding, or water damage - Gas smell or suspected gas leak (CRITICAL - may need to call 911) - Sewage backup or overflow - No water or sudden loss of water - Water heater leaking or not working PRIORITY ORDER: 1. First ensure customer safety (especially for gas leaks) 2. Provide immediate mitigation steps (how to shut off water, etc.) 3. Then tell the user to call Johnson Bros. for emergency service RETURNS: Step-by-step immediate actions, safety warnings, things NOT to do, urgency level, and whether emergency dispatch is recommended. IMPORTANT: For gas leaks, always advise leaving the house and calling 911 first.
fetchread-onlyUse this to read the full text of a document returned by search. Takes the exact id from a search result. Returns public business information only -- it never returns customer records.
get_availabilityread-onlyUse this when the user wants live Johnson Bros. appointment availability. Include zip and any known town/state for a customer booking inquiry. Outside-area or unresolved locations receive no windows. Without a location, this returns general capacity only, not eligibility to book; coverage_status is not_checked. Never call for a customer already found outside coverage. Do not promise or create an appointment; use request_booking and confirm_booking.
get_quoteread-onlyUse this when the user wants a non-binding estimate for a specific plumbing issue. Returns a price range, typical duration, and next step. Do not present the range as a guaranteed repair price; final pricing is confirmed on-site before work begins. WHEN TO USE: When a customer asks "How much does it cost?", "What's the price?", or wants to know pricing before booking. Use this early in the conversation to set expectations. PRICING NOTES: - Estimates are ranges; final price depends on on-site assessment - Do not invent urgency, after-hours, or commercial surcharges - The office or technician confirms any timing- or property-related pricing before work - The $99 service fee covers sending a technician out to diagnose the problem and give you an estimate before repair work starts. If you approve the repair, we waive the service fee and you pay only the price the technician quoted. If you decline the repair, the $99 service fee is due. WORKFLOW: 1. Use this tool when customer asks about pricing 2. Share the estimate with appropriate caveats 3. If they want to proceed, use get_availability, request_booking, and confirm_booking RETURNS: Service name, price range (min/max in USD), estimated duration, urgency notes, and suggested next steps.
get_services_pricingread-onlyUse this when the user wants to browse Johnson Bros. services or general non-binding price ranges. Do not use it for an issue-specific estimate; use get_quote. Final pricing is confirmed on-site before work begins.
open_customer_portalread-onlyUse this when the customer wants to book Johnson Bros. service or search their own past visits. Opens a compact card that expands into a customer form without sending a message or creating a booking. History requires SMS verification and the customer card’s private, short-lived proof. Booking requires reviewing details and the customer-supplied SMS code.
request_bookingdestructiveUse this only after the user explicitly asks to start a Johnson Bros. booking and confirms their own contact details, service address, issue, and preferred windows. It sends a six-digit SMS code and does not schedule a visit. Do not claim an appointment exists until confirm_booking returns status:confirmed and booked:true.
request_callbackdestructiveUse this only after the user explicitly asks Johnson Bros. to call them about a plumbing need and provides their own contact details. This creates a callback lead, not an appointment, and can notify the office and send a transactional SMS acknowledgment. Do not use it for emergency dispatch; tell emergency users to call (617) 479-9911.
request_out_of_area_callbackdestructiveUse as soon as a caller is found to be outside the automatic-booking service area and agrees to a call from the office. Requires name, phone, city, state, service ZIP, issue_description and confirmed:true. The server rechecks coverage: in_service_area means continue normal booking (no callback is created). For a Massachusetts address it flags the office to call back ASAP (status office_callback_requested); tell the caller the office will call them soon and that they are also welcome to call (617) 479-9911. Outside Massachusetts returns outside_massachusetts and creates nothing. It never books an appointment. Retries within 30 minutes return the same request (duplicate:true).
searchread-onlyUse this to find Johnson Bros. Plumbing pages about services, service area, pricing policy, or common questions. Returns ids, titles and URLs only -- call fetch with an id to read the full text. Do not use it to check live appointment availability (use get_availability) or to look up a customer.
search_service_historyread-onlyUse this from the customer card or browser bridge after customer_lookup verifies SMS and supplies private proof. Shared agents must use the history returned by customer_lookup or open the customer portal; an MCP connection alone never authorizes history. Searches the authenticated account records available from the customer portal by repair keywords, date text, and status. No customer IDs or portal bearer tokens are accepted. If verification expires, use customer_lookup again. Results cover only the records loaded by the portal, not a guaranteed lifetime archive.
submit_customer_infodestructiveAfter asking Have you used us before?, use for NEW customers only after they approve full name, address, email, phone and where they found us. Include the customer-approved issue_description when the service or symptoms are already known. Saves an in-area customer; outside database coverage saves a lead with the supplied description for office review and never books a job. For a Massachusetts address outside the area that lead is also flagged for an ASAP office callback (office_callback_requested:true), so do not call request_out_of_area_callback afterwards. Say the description was saved only when issue_description_saved is true; in-area booking notes are saved later with request_booking. Lead submissions can notify the office and send a transactional SMS acknowledgment; they do not authorize marketing texts.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.thejohnsonbros/plumbing-booking",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://thejohnsonbros.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://thejohnsonbros.com",
  "description": "Johnson Bros. Plumbing: check coverage, services, pricing, availability, and book by SMS."
}