Pool Pro Florida MCP
An official MCP server for Pool Pro Florida, a CPO Certified pool service company in St. Lucie County, Florida. It allows compatible AI agents to interact with live systems to check appointment availability, book appointments, and create service leads for residential pool care services.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://poolproflorida.com/mcp/What its tools do
10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (3)
Can change data (6)
Not annotated (1)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to poolproflorida.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Check appointment availability
- Book an appointment
- Create a service lead
Source and maintenance
Protocol and capabilities
- Server
- Pool Pro Florida 2.8.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 10 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
create_lead — Create Pool Pro Florida 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.
{
"type": "object",
"required": [
"name",
"service"
],
"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."
},
"message": {
"type": "string",
"description": "Customer request or useful notes."
},
"service": {
"type": "string",
"description": "Requested service, such as Pool Cleaning or Pool Consultation."
}
},
"additionalProperties": false
}get_available_times — Get Pool Pro Florida appointment availability
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",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date to check, YYYY-MM-DD."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date to check, YYYY-MM-DD."
},
"timeZone": {
"type": "string",
"description": "IANA time zone. Defaults to America/New_York."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}book_appointment — Book Pool Pro Florida 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.
{
"type": "object",
"required": [
"name",
"email",
"address",
"start"
],
"properties": {
"name": {
"type": "string",
"description": "Customer full name."
},
"email": {
"type": "string",
"format": "email",
"description": "Customer email address."
},
"notes": {
"type": "string",
"description": "Optional notes about the pool or requested service."
},
"phone": {
"type": "string",
"description": "Customer phone number. Normal U.S. formatting is accepted."
},
"start": {
"type": "string",
"description": "Exact ISO 8601 slot start returned by get_available_times."
},
"address": {
"type": "string",
"description": "Pool service address; Cal.com uses this as the attendee address/location."
},
"timeZone": {
"type": "string",
"description": "IANA time zone. Defaults to America/New_York."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}get_site_map — Get Pool Pro Florida website sitemap
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.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum number of matching sitemap URLs to return."
},
"query": {
"type": "string",
"description": "Optional Pool Pro Florida topic, such as weekly service, green pool, service area, pricing, Pool School, or a neighborhood name."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}read_site_page — Read Pool Pro Florida website 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.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Exact PoolProFlorida.com URL returned by get_site_map. A site-relative path beginning with / is also accepted."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}upload_media — Upload image to Pool Pro Florida media library
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.
{
"type": "object",
"required": [
"file"
],
"properties": {
"alt": {
"type": "string",
"maxLength": 250,
"description": "Accessible alt text for the image."
},
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file identifier for the attached file."
},
"file_name": {
"type": "string",
"description": "Optional original filename supplied by ChatGPT."
},
"mime_type": {
"type": "string",
"description": "Optional MIME type supplied by ChatGPT."
},
"download_url": {
"type": "string",
"format": "uri",
"description": "Temporary HTTPS download URL supplied by ChatGPT for the attached file."
}
},
"additionalProperties": false
},
"tags": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]{1,64}$"
},
"maxItems": 10,
"description": "Optional media tags such as hero, riverview, or generated."
},
"source": {
"enum": [
"generated",
"uploaded"
],
"type": "string",
"description": "Whether the image came from image generation or a user upload."
},
"caption": {
"type": "string",
"maxLength": 1000,
"description": "Optional media-library caption."
},
"filename": {
"type": "string",
"description": "Optional override filename. If omitted, the filename supplied by ChatGPT is used."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}upsert_customer_contact — Upsert one Pool Founder 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.
{
"type": "object",
"required": [
"generatedAt",
"customer"
],
"properties": {
"customer": {
"type": "object",
"required": [
"sourceId",
"displayName",
"phones",
"emails",
"locations"
],
"properties": {
"emails": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string",
"format": "email"
},
"primary": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"phones": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"company": {
"type": [
"string",
"null"
]
},
"lastName": {
"type": "string"
},
"sourceId": {
"type": "string",
"description": "Permanent Pool Founder customer ID."
},
"firstName": {
"type": "string"
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "object",
"required": [
"street",
"city",
"state",
"postalCode",
"country"
],
"properties": {
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"street": {
"type": "string"
},
"country": {
"type": "string"
},
"street2": {
"type": [
"string",
"null"
]
},
"postalCode": {
"type": "string"
}
},
"additionalProperties": false
},
"primary": {
"type": "boolean"
},
"sourceId": {
"type": "string"
}
},
"additionalProperties": false
}
},
"displayName": {
"type": "string"
},
"serviceDays": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"generatedAt": {
"type": "string",
"description": "ISO 8601 generation time."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}upsert_route_stop_event — Upsert one Pool Founder route stop calendar 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",
"required": [
"generatedAt",
"event"
],
"properties": {
"event": {
"type": "object",
"required": [
"jobId",
"routeId",
"serviceDate",
"stopIndex",
"customerName",
"address",
"serviceName",
"start",
"end",
"status",
"timingSource"
],
"properties": {
"end": {
"type": "string",
"description": "ISO 8601 end with UTC offset or Z. Planned before service; actual departure after completion."
},
"email": {
"type": "string",
"format": "email",
"description": "Optional structured customer email from Pool Founder. Included in event notes for tap-to-email on mobile calendars."
},
"jobId": {
"type": "string",
"description": "Permanent Pool Founder job ID."
},
"phone": {
"type": "string",
"description": "Optional structured customer phone number from Pool Founder. Included in event notes for tap-to-call on mobile calendars."
},
"start": {
"type": "string",
"description": "ISO 8601 start with UTC offset or Z. Planned before service; actual arrival after completion."
},
"status": {
"enum": [
"planned",
"in_progress",
"completed",
"skipped",
"cancelled"
],
"type": "string"
},
"address": {
"type": "string",
"description": "Service address. Written to LOCATION so mobile calendars can open Maps."
},
"routeId": {
"type": "string",
"description": "Permanent Pool Founder route ID."
},
"routeName": {
"type": "string"
},
"stopIndex": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"serviceDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Service date in YYYY-MM-DD."
},
"serviceName": {
"type": "string"
},
"customerName": {
"type": "string"
},
"timingSource": {
"enum": [
"planned",
"actual"
],
"type": "string"
}
},
"additionalProperties": false
},
"generatedAt": {
"type": "string",
"description": "ISO 8601 generation time."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}sync_route_calendar — Sync Pool Founder 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.
{
"type": "object",
"required": [
"snapshot",
"events"
],
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"required": [
"jobId",
"routeId",
"serviceDate",
"stopIndex",
"customerName",
"address",
"serviceName",
"start",
"end",
"status",
"timingSource"
],
"properties": {
"end": {
"type": "string",
"description": "ISO 8601 end with UTC offset or Z. Planned before service; actual departure after completion."
},
"email": {
"type": "string",
"format": "email",
"description": "Optional structured customer email from Pool Founder. Included in event notes for tap-to-email on mobile calendars."
},
"jobId": {
"type": "string",
"description": "Permanent Pool Founder job ID."
},
"phone": {
"type": "string",
"description": "Optional structured customer phone number from Pool Founder. Included in event notes for tap-to-call on mobile calendars."
},
"start": {
"type": "string",
"description": "ISO 8601 start with UTC offset or Z. Planned before service; actual arrival after completion."
},
"status": {
"enum": [
"planned",
"in_progress",
"completed",
"skipped",
"cancelled"
],
"type": "string"
},
"address": {
"type": "string",
"description": "Service address. Written to LOCATION so mobile calendars can open Maps."
},
"routeId": {
"type": "string",
"description": "Permanent Pool Founder route ID."
},
"routeName": {
"type": "string"
},
"stopIndex": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"serviceDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Service date in YYYY-MM-DD."
},
"serviceName": {
"type": "string"
},
"customerName": {
"type": "string"
},
"timingSource": {
"enum": [
"planned",
"actual"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 5000
},
"snapshot": {
"type": "object",
"required": [
"source",
"complete",
"generatedAt",
"windowStart",
"windowEnd",
"eventCount"
],
"properties": {
"source": {
"type": "string",
"const": "poolfounder"
},
"complete": {
"type": "boolean",
"const": true
},
"windowEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"eventCount": {
"type": "integer",
"minimum": 0
},
"generatedAt": {
"type": "string",
"description": "ISO 8601 snapshot generation time."
},
"windowStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}sync_customer_contacts — Sync Pool Founder 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.
{
"type": "object",
"required": [
"snapshot",
"customers"
],
"properties": {
"snapshot": {
"type": "object",
"required": [
"source",
"complete",
"generatedAt",
"customerCount"
],
"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
}
},
"additionalProperties": false
},
"customers": {
"type": "array",
"items": {
"type": "object",
"required": [
"sourceId",
"displayName",
"phones",
"emails",
"locations"
],
"properties": {
"emails": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string",
"format": "email"
},
"primary": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"phones": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"company": {
"type": [
"string",
"null"
]
},
"lastName": {
"type": "string"
},
"sourceId": {
"type": "string",
"description": "Permanent Pool Founder customer ID."
},
"firstName": {
"type": "string"
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "object",
"required": [
"street",
"city",
"state",
"postalCode",
"country"
],
"properties": {
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"street": {
"type": "string"
},
"country": {
"type": "string"
},
"street2": {
"type": [
"string",
"null"
]
},
"postalCode": {
"type": "string"
}
},
"additionalProperties": false
},
"primary": {
"type": "boolean"
},
"sourceId": {
"type": "string"
}
},
"additionalProperties": false
}
},
"displayName": {
"type": "string"
},
"serviceDays": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"maxItems": 5000
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 201 ms
- 95th percentile latency
- 201 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 201 ms · metadata changed · 10 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http pool-pro-florida-mcp https://poolproflorida.com/mcp/Codex
codex mcp add pool-pro-florida-mcp --url https://poolproflorida.com/mcp/Cursor
{
"mcpServers": {
"pool-pro-florida-mcp": {
"url": "https://poolproflorida.com/mcp/"
}
}
}Cline
{
"mcpServers": {
"pool-pro-florida-mcp": {
"type": "streamableHttp",
"url": "https://poolproflorida.com/mcp/",
"disabled": false
}
}
}VS Code
{
"servers": {
"pool-pro-florida-mcp": {
"type": "http",
"url": "https://poolproflorida.com/mcp/"
}
}
}Gemini CLI
gemini mcp add --transport http pool-pro-florida-mcp https://poolproflorida.com/mcp/Claude Desktop
https://poolproflorida.com/mcp/Windsurf
{
"mcpServers": {
"pool-pro-florida-mcp": {
"serverUrl": "https://poolproflorida.com/mcp/"
}
}
}Let your agent find its tools
Find servers like Pool Pro Florida MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Pool Pro Florida MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.