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

A
Calidad de la descripción
100%
Integridad del esquema
91%
Calidad de los nombres
91%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,496Tokens (definiciones de herramientas)
~3.7 KBTamaño de respuesta típico
Impacto moderado en la atención (1.95% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (7)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada7 herramientas