{
  "name": "bcdv-agent-booking",
  "title": "Boulder County Dryer Vent",
  "version": "1.0.0",
  "description": "Boulder County Dryer Vent. Fixed price $129 standard or $169 difficult. create_booking opens a PENDING request, not a booking. No token. No payment in MCP. Payment is due before the visit, by card through Stripe only.",
  "transport": {
    "type": "streamable-http",
    "url": "https://api.bouldercountydryervent.com/mcp",
    "endpoint": "https://api.bouldercountydryervent.com/mcp"
  },
  "url": "https://api.bouldercountydryervent.com/mcp",
  "authentication": {
    "required": false
  },
  "documentation": "https://bouldercountydryervent.com/agents/",
  "website": "https://bouldercountydryervent.com",
  "serverCard": "https://bouldercountydryervent.com/.well-known/mcp/server-card.json",
  "catalog": "https://bouldercountydryervent.com/.well-known/ai-catalog.json",
  "tools": [
    {
      "name": "list_services",
      "description": "Fixed prices (standard $129, difficult $169), service-area towns, phone, and the public book URL."
    },
    {
      "name": "check_availability",
      "description": "Preferred 2-hour window. Does not open a request or book a visit."
    },
    {
      "name": "create_booking",
      "description": "Open a PENDING request, not a booking. No token. Requires name, a valid US mobile or landline (phone), and a real Boulder County street address (street and town; validated). Optional: email, service (standard or difficult), preferred_windows, sms_consent, notes. Honeypot company_website must be empty or omitted. The response includes a short confirmation code. The person must text CONFIRM <code> from that same phone to (720) 605-3198 within 48 hours, or the request expires and is never contacted. Strict per-IP and daily rate limits. No payment in MCP. Payment is due before the visit, by card through Stripe only.",
      "inputSchema": {
        "type": "object",
        "required": [
          "name",
          "phone",
          "street",
          "town"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "description": "Valid US mobile or landline. The CONFIRM text must be sent from this number."
          },
          "email": {
            "type": "string"
          },
          "street": {
            "type": "string",
            "description": "Real street address in Boulder County. Validated."
          },
          "town": {
            "type": "string",
            "description": "Town in the service area (Boulder, Louisville, Lafayette, Longmont, Superior), validated with street."
          },
          "service": {
            "type": "string",
            "description": "standard ($129) or difficult ($169: roof, long run, or upper floor)"
          },
          "preferred_windows": {
            "type": "string",
            "description": "Requested 2-hour window, for example Tue 9-11am"
          },
          "sms_consent": {
            "type": "boolean"
          },
          "notes": {
            "type": "string"
          },
          "company_website": {
            "type": "string",
            "description": "Honeypot. Must be empty or omitted."
          }
        }
      }
    },
    {
      "name": "get_booking_status",
      "description": "Look up a pending request. No token when public_id and the phone number used on the request are both sent. Other personal details are not returned.",
      "inputSchema": {
        "type": "object",
        "required": [
          "public_id",
          "phone"
        ],
        "properties": {
          "public_id": {
            "type": "string",
            "description": "Job public id, for example BCDV-2026-0008"
          },
          "phone": {
            "type": "string",
            "description": "Phone number used on the request"
          }
        }
      }
    }
  ]
}
