Pool Pro Florida
Pool service scheduling and lead management for Pool Pro Florida in St. Lucie County, Florida.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"pool-pro-florida": {
"url": "https://poolproflorida.com/mcp/"
}
}
}Puntos de conexión remotos
https://poolproflorida.com/mcp/streamable-httpQué puede hacer
Inventario de herramientas
Herramientas (7)
🟡create_lead(name, email, phone, address, service, ...)
Create a Pool Pro Florida service lead in Pool Founder when a customer is interested in service but is not yet booking an appointment. Do not call this before book_appointment for the same inquiry because a successful Cal.com booking creates the Pool Founder lead through the booking webhook.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Customer full name."
},
"email": {
"type": "string",
"format": "email",
"description": "Customer email address."
},
"phone": {
"type": "string",
"description": "Customer phone number."
},
"address": {
"type": "string",
"description": "Pool service address."
},
"service": {
"type": "string",
"description": "Requested service, such as Pool Cleaning or Pool Consultation."
},
"message": {
"type": "string",
"description": "Customer request or useful notes."
}
},
"required": [
"name",
"service"
],
"additionalProperties": false
}🟢get_available_times(start, end, timeZone)
Get real Cal.com appointment availability for Pool Pro Florida. Use date-only YYYY-MM-DD values. Use this when a customer wants to schedule a pool consultation or service appointment.
Esquema de entrada
{
"type": "object",
"properties": {
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date to check, YYYY-MM-DD."
},
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date to check, YYYY-MM-DD."
},
"timeZone": {
"type": "string",
"description": "IANA time zone. Defaults to America/New_York."
}
},
"required": [
"start",
"end"
],
"additionalProperties": false
}🟢book_appointment(name, email, phone, address, start, ...)
Book a confirmed Pool Pro Florida appointment through Cal.com after the customer has selected an available time. Requires customer name, email, service address, and the exact start value returned by get_available_times. A successful booking triggers the existing Cal.com webhook, which creates the lead in Pool Founder.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Customer full name."
},
"email": {
"type": "string",
"format": "email",
"description": "Customer email address."
},
"phone": {
"type": "string",
"description": "Customer phone number. Normal U.S. formatting is accepted."
},
"address": {
"type": "string",
"description": "Pool service address; Cal.com uses this as the attendee address/location."
},
"start": {
"type": "string",
"description": "Exact ISO 8601 slot start returned by get_available_times."
},
"notes": {
"type": "string",
"description": "Optional notes about the pool or requested service."
},
"timeZone": {
"type": "string",
"description": "IANA time zone. Defaults to America/New_York."
}
},
"required": [
"name",
"email",
"address",
"start"
],
"additionalProperties": false
}🟡upsert_customer_contact(generatedAt, customer)
Create or update one private Pool Pro Florida CardDAV contact from Pool Founder. Owner-only and non-destructive: this tool never removes any other contacts.
Esquema de entrada
{
"type": "object",
"properties": {
"generatedAt": {
"type": "string",
"description": "ISO 8601 generation time."
},
"customer": {
"type": "object",
"properties": {
"sourceId": {
"type": "string",
"description": "Permanent Pool Founder customer ID."
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"displayName": {
"type": "string"
},
"company": {
"type": [
"string",
"null"
]
},
"phones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"required": [
"value"
],
"additionalProperties": false
}
},
"emails": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"format": "email"
},
"label": {
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"required": [
"value"
],
"additionalProperties": false
}
},
"locations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sourceId": {
"type": "string"
},
"primary": {
"type": "boolean"
},
"address": {
"type": "object",
"properties": {
"street": {
"type": "string"
},
"street2": {
"type": [
"string",
"null"
]
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"country": {
"type": "string"
}
},
"required": [
"street",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false
}
},
"required": [
"address"
],
"additionalProperties": false
}
},
"serviceDays": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"sourceId",
"displayName",
"phones",
"emails",
"locations"
],
"additionalProperties": false
}
},
"required": [
"generatedAt",
"customer"
],
"additionalProperties": false
}🟡upsert_route_stop_event(generatedAt, event)
Create or update one private Pool Pro Florida CalDAV VEVENT from a Pool Founder route stop. The identity is jobId plus serviceDate, so planned timing can later be replaced by actual arrival and departure without duplication. Owner-only and non-destructive.
Esquema de entrada
{
"type": "object",
"properties": {
"generatedAt": {
"type": "string",
"description": "ISO 8601 generation time."
},
"event": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Permanent Pool Founder job ID."
},
"routeId": {
"type": "string",
"description": "Permanent Pool Founder route ID."
},
"routeName": {
"type": "string"
},
"serviceDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Service date in YYYY-MM-DD."
},
"stopIndex": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"customerName": {
"type": "string"
},
"phone": {
"type": "string",
"description": "Optional structured customer phone number from Pool Founder. Included in event notes for tap-to-call on mobile calendars."
},
"email": {
"type": "string",
"format": "email",
"description": "Optional structured customer email from Pool Founder. Included in event notes for tap-to-email on mobile calendars."
},
"address": {
"type": "string",
"description": "Service address. Written to LOCATION so mobile calendars can open Maps."
},
"serviceName": {
"type": "string"
},
"start": {
"type": "string",
"description": "ISO 8601 start with UTC offset or Z. Planned before service; actual arrival after completion."
},
"end": {
"type": "string",
"description": "ISO 8601 end with UTC offset or Z. Planned before service; actual departure after completion."
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"skipped",
"cancelled"
]
},
"timingSource": {
"type": "string",
"enum": [
"planned",
"actual"
]
}
},
"required": [
"jobId",
"routeId",
"serviceDate",
"stopIndex",
"customerName",
"address",
"serviceName",
"start",
"end",
"status",
"timingSource"
],
"additionalProperties": false
}
},
"required": [
"generatedAt",
"event"
],
"additionalProperties": false
}⚪sync_route_calendar(snapshot, events)
Synchronize one complete Pool Founder route-date window into the private Pool Pro Florida CalDAV calendar. Each stop is one stable VEVENT. Completed events are historical records and are never removed. Missing non-completed events inside a validated complete window are retained and marked cancelled instead of deleted.
Esquema de entrada
{
"type": "object",
"properties": {
"snapshot": {
"type": "object",
"properties": {
"source": {
"type": "string",
"const": "poolfounder"
},
"complete": {
"type": "boolean",
"const": true
},
"generatedAt": {
"type": "string",
"description": "ISO 8601 snapshot generation time."
},
"windowStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"windowEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"eventCount": {
"type": "integer",
"minimum": 0
}
},
"required": [
"source",
"complete",
"generatedAt",
"windowStart",
"windowEnd",
"eventCount"
],
"additionalProperties": false
},
"events": {
"type": "array",
"maxItems": 5000,
"items": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Permanent Pool Founder job ID."
},
"routeId": {
"type": "string",
"description": "Permanent Pool Founder route ID."
},
"routeName": {
"type": "string"
},
"serviceDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Service date in YYYY-MM-DD."
},
"stopIndex": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"customerName": {
"type": "string"
},
"phone": {
"type": "string",
"description": "Optional structured customer phone number from Pool Founder. Included in event notes for tap-to-call on mobile calendars."
},
"email": {
"type": "string",
"format": "email",
"description": "Optional structured customer email from Pool Founder. Included in event notes for tap-to-email on mobile calendars."
},
"address": {
"type": "string",
"description": "Service address. Written to LOCATION so mobile calendars can open Maps."
},
"serviceName": {
"type": "string"
},
"start": {
"type": "string",
"description": "ISO 8601 start with UTC offset or Z. Planned before service; actual arrival after completion."
},
"end": {
"type": "string",
"description": "ISO 8601 end with UTC offset or Z. Planned before service; actual departure after completion."
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"skipped",
"cancelled"
]
},
"timingSource": {
"type": "string",
"enum": [
"planned",
"actual"
]
}
},
"required": [
"jobId",
"routeId",
"serviceDate",
"stopIndex",
"customerName",
"address",
"serviceName",
"start",
"end",
"status",
"timingSource"
],
"additionalProperties": false
}
}
},
"required": [
"snapshot",
"events"
],
"additionalProperties": false
}🔴sync_customer_contacts(snapshot, customers)
Replace the private Pool Pro Florida CardDAV address book from one complete Pool Founder active-customer snapshot. Owner-only. Creates and updates stable vCards and removes stale Pool Founder contacts only after the complete snapshot validates.
Esquema de entrada
{
"type": "object",
"properties": {
"snapshot": {
"type": "object",
"properties": {
"source": {
"type": "string",
"const": "poolfounder"
},
"complete": {
"type": "boolean",
"const": true
},
"generatedAt": {
"type": "string",
"description": "ISO 8601 snapshot generation time."
},
"customerCount": {
"type": "integer",
"minimum": 0
}
},
"required": [
"source",
"complete",
"generatedAt",
"customerCount"
],
"additionalProperties": false
},
"customers": {
"type": "array",
"maxItems": 5000,
"items": {
"type": "object",
"properties": {
"sourceId": {
"type": "string",
"description": "Permanent Pool Founder customer ID."
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"displayName": {
"type": "string"
},
"company": {
"type": [
"string",
"null"
]
},
"phones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"required": [
"value"
],
"additionalProperties": false
}
},
"emails": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"format": "email"
},
"label": {
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"required": [
"value"
],
"additionalProperties": false
}
},
"locations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sourceId": {
"type": "string"
},
"primary": {
"type": "boolean"
},
"address": {
"type": "object",
"properties": {
"street": {
"type": "string"
},
"street2": {
"type": [
"string",
"null"
]
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"country": {
"type": "string"
}
},
"required": [
"street",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false
}
},
"required": [
"address"
],
"additionalProperties": false
}
},
"serviceDays": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"sourceId",
"displayName",
"phones",
"emails",
"locations"
],
"additionalProperties": false
}
}
},
"required": [
"snapshot",
"customers"
],
"additionalProperties": false
}Comunidad
Evidencia