Pool Pro Florida

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

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
91%
命名の品質
91%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,496トークン数(ツール定義)
~3.7 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.95%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

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

リモートエンドポイント

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

できること

ツール一覧

ツール(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.

入力スキーマ

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

入力スキーマ

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

入力スキーマ

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

入力スキーマ

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

入力スキーマ

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

入力スキーマ

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

入力スキーマ

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

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 7 件