Pool Pro Florida

Pool service scheduling and lead management for Pool Pro Florida in St. Lucie County, Florida.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
91%
Qualität der Benennung
91%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,496Tokens (Tool-Definitionen)
~3.7 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.95% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "pool-pro-florida": {
      "url": "https://poolproflorida.com/mcp/"
    }
  }
}

Remote-Endpunkte

https://poolproflorida.com/mcp/streamable-http

Was es kann

Tool-Inventar

Tools (7)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟡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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet7 Tools