# Pool Pro Florida

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

- name: com.poolproflorida/pool-pro-florida
- version: 2.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 89/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.poolproflorida%2Fpool-pro-florida
- tools: https://api.protogrid.dev/v1/servers/com.poolproflorida%2Fpool-pro-florida/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "pool-pro-florida": {
      "type": "http",
      "url": "https://poolproflorida.com/mcp/"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-15d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (good)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 300000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 10 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_available_times (idempotentHint); read_site_page (idempotentHint); upsert_route_stop_event (idempotentHint); …
- pass `tools.token_cost`: about 3,500 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 7 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 10, about 3,500 tokens to load them all
- tool set hash: 2951453846956265f2ca4befd201da7a
- tools last changed: 2026-10-19T01:53:03.377Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.poolproflorida/pool-pro-florida.svg)](https://protogrid.dev/servers/com.poolproflorida/pool-pro-florida)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `upload_media` added
  - Import an image attached in ChatGPT into the Pool Pro Florida CMS media library. ChatGPT supplies a temporary download URL and file ID through its native file parameter handoff. The server downloads the image directly, validates it, strips embedded metadata by re-encoding to WebP, stores it outside Git, and returns a stable /media/... URL. This tool does not modify any page.
- 2026-10-07 `read_site_page` added
  - Read the current text of a PoolProFlorida.com page. The page must be present in the current Pool Pro Florida sitemap index. Use this for current published services, pricing, service areas, hours, policies, and page-specific business information.
- 2026-10-07 `get_site_map` added
  - Read the current PoolProFlorida.com sitemap index and discover published site pages. Use this to find the correct Pool Pro Florida page before reading current website content. An optional query ranks likely relevant page URLs first.
- 2026-10-07 `sync_route_calendar` added
  - 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.
- 2026-10-07 `upsert_route_stop_event` added
  - 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.
- 2026-10-07 `sync_customer_contacts` added
  - 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.
- 2026-10-07 `upsert_customer_contact` added
  - 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.

Full history: https://api.protogrid.dev/v1/servers/com.poolproflorida%2Fpool-pro-florida/changes

## Remotes

- https://poolproflorida.com/mcp/ (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (10)

- `book_appointment`: 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.
- `create_lead`: 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.
- `get_available_times`: 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.
- `get_site_map`: Read the current PoolProFlorida.com sitemap index and discover published site pages. Use this to find the correct Pool Pro Florida page before reading current website content. An optional query ranks likely relevant page URLs first.
- `read_site_page`: Read the current text of a PoolProFlorida.com page. The page must be present in the current Pool Pro Florida sitemap index. Use this for current published services, pricing, service areas, hours, policies, and page-specific business information.
- `sync_customer_contacts`: 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.
- `sync_route_calendar`: 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.
- `upload_media`: Import an image attached in ChatGPT into the Pool Pro Florida CMS media library. ChatGPT supplies a temporary download URL and file ID through its native file parameter handoff. The server downloads the image directly, validates it, strips embedded metadata by re-encoding to WebP, stores it outside Git, and returns a stable /media/... URL. This tool does not modify any page.
- `upsert_customer_contact`: 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.
- `upsert_route_stop_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.
