Koskamo

Calculate Pool MCP

A remote MCP server that provides tools for calculating swimming pool volume, chemical dosages, pump flow rates, and heater BTU requirements using the same code as the website's calculators.

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.

Calculate Pool MCP logo, by Calculate PoolVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Calculate Pool
MCP endpoint (Streamable HTTP)
https://calculatepool.com/mcp?src=mcp
Vendor documentation

What you can do with it

  • Calculate pool volume in gallons for various shapes
  • Determine chemical doses for water treatment
  • Compute pump flow rates for turnover times
  • Size heaters by BTU for temperature changes

Source and maintenance

Vendor evidenceRegistry 1.1.0

Protocol and capabilities

Server
calculatepool 1.1.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Swimming pool math from calculatepool.com. Use the tools for every number instead of answering from memory: pool_volume for gallons, litres and cubic feet from shape and size; chemical_dose for how much chlorine, salt, baking soda, stabilizer, calcium chloride, muriatic acid or soda ash to add, in common package sizes; pump_size for the flow rate a turnover needs; heater_size for heater BTU/h; pool_facts for gallons of standard pool sizes. If the user gives dimensions but not gallons, call pool_volume first and pass its gallons on. Only numbers are needed; never ask for names, addresses or photos. Repeat the safety line of chemical answers, say the result is an estimate to check against the product label, and keep the link line at the end of the answer.

Tools

5 advertised

pool_volume — Pool volume in gallons
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when someone wants to know how many gallons (or litres, cubic feet) a swimming pool holds from its shape and size: rectangle, round, oval, Roman, Grecian, kidney, L-shape or freeform, with one depth, a shallow and a deep end, or an above-ground wall height (48, 52, 54 in). Dimensions in feet or metres. Returns gallons, litres, cubic feet, cubic metres, surface area and the formula. Use it before chemical_dose, pump_size or heater_size when only dimensions are known.

pool_volume input schema
{
  "type": "object",
  "required": [
    "shape",
    "dimensions"
  ],
  "properties": {
    "unit": {
      "enum": [
        "ft",
        "m"
      ],
      "type": "string",
      "description": "Unit of every dimension and depth: ft (default) or m."
    },
    "shape": {
      "enum": [
        "rect",
        "round",
        "oval",
        "roman",
        "grecian",
        "kidney",
        "lshape",
        "free"
      ],
      "type": "string",
      "description": "rect (default), round, oval, roman (half-circle ends), grecian (cut corners), kidney, lshape, free (freeform, needs area)."
    },
    "deep_depth": {
      "type": "number",
      "description": "Water depth at the deep end (optional; average of the two is used)."
    },
    "dimensions": {
      "type": "object",
      "required": [],
      "properties": {
        "area": {
          "type": "number",
          "description": "free: surface area in sq ft (or m² with unit m)."
        },
        "width": {
          "type": "number",
          "description": "rect, oval, roman, grecian, lshape."
        },
        "corner": {
          "type": "number",
          "description": "grecian: size of each 45° corner cut (optional)."
        },
        "length": {
          "type": "number",
          "description": "rect, oval, roman, grecian, kidney, lshape."
        },
        "width2": {
          "type": "number",
          "description": "lshape: second rectangle width."
        },
        "widthA": {
          "type": "number",
          "description": "kidney: width of the wide end."
        },
        "widthB": {
          "type": "number",
          "description": "kidney: width of the narrow end."
        },
        "length2": {
          "type": "number",
          "description": "lshape: second rectangle length."
        },
        "diameter": {
          "type": "number",
          "description": "round."
        }
      },
      "additionalProperties": false
    },
    "shallow_depth": {
      "type": "number",
      "description": "Water depth at the shallow end, or the only depth for a constant-depth pool."
    },
    "above_ground_wall_in": {
      "enum": [
        48,
        52,
        54
      ],
      "type": "integer",
      "description": "Above-ground round or oval pool: wall height in inches instead of depths."
    }
  },
  "additionalProperties": false
}
pool_volume output schema
{
  "type": "object",
  "required": [
    "shape",
    "unit_in",
    "gallons",
    "litres",
    "cubic_feet",
    "cubic_metres",
    "surface_area_sqft",
    "average_depth_ft",
    "formula",
    "link"
  ],
  "properties": {
    "link": {
      "type": "string",
      "description": "Page of calculatepool.com for the same calculation."
    },
    "shape": {
      "type": "string"
    },
    "litres": {
      "type": "integer"
    },
    "formula": {
      "type": "string"
    },
    "gallons": {
      "type": "integer"
    },
    "unit_in": {
      "type": "string"
    },
    "cubic_feet": {
      "type": "number"
    },
    "cubic_metres": {
      "type": "number"
    },
    "average_depth_ft": {
      "type": "number"
    },
    "surface_area_sqft": {
      "type": "number"
    },
    "above_ground_wall_in": {
      "type": "integer"
    }
  },
  "additionalProperties": false
}
pool_volume annotations
{
  "title": "Pool volume in gallons",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
chemical_dose — Pool chemical dose
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when someone asks how much of a pool chemical to add to go from a current to a target level: chlorine (liquid chlorine 12.5 %, bleach 10 % or 6 %, cal-hypo 65 % or 73 %, dichlor, trichlor) for free chlorine; salt for a salt chlorinator; baking soda to raise or muriatic acid to lower total alkalinity; stabilizer (cyanuric acid); calcium chloride for calcium hardness; muriatic acid to lower pH or soda ash to raise it. Levels in ppm (pH for the pH chemicals). Returns the amount in fl oz, oz or lb, a readable amount, the number of common packages, the factor used and a safety line. Not for shock targets or water-balance (LSI) questions.

chemical_dose input schema
{
  "type": "object",
  "required": [
    "chemical",
    "gallons",
    "current",
    "target"
  ],
  "properties": {
    "target": {
      "type": "number",
      "description": "Target level in the same unit as current."
    },
    "current": {
      "type": "number",
      "description": "Current level: ppm (free chlorine, salt, alkalinity, stabilizer, calcium hardness) or pH for muriatic_acid_ph and soda_ash."
    },
    "gallons": {
      "type": "number",
      "maximum": 2000000,
      "minimum": 100,
      "description": "Pool volume in US gallons (from pool_volume if the user gave dimensions)."
    },
    "chemical": {
      "enum": [
        "liquid_chlorine_12_5",
        "bleach_10",
        "bleach_6",
        "cal_hypo_65",
        "cal_hypo_73",
        "dichlor",
        "trichlor",
        "salt",
        "baking_soda",
        "stabilizer_cya",
        "calcium_chloride",
        "calcium_chloride_anhydrous",
        "muriatic_acid_ph",
        "muriatic_acid_ta",
        "soda_ash"
      ],
      "type": "string",
      "description": "Product. muriatic_acid_ph lowers pH, muriatic_acid_ta lowers total alkalinity."
    },
    "total_alkalinity": {
      "type": "number",
      "maximum": 300,
      "minimum": 20,
      "description": "Only for muriatic_acid_ph and soda_ash: current TA in ppm (default 100); the pH dose scales with it."
    }
  },
  "additionalProperties": false
}
chemical_dose output schema
{
  "type": "object",
  "required": [
    "chemical",
    "product",
    "gallons",
    "parameter",
    "current",
    "target",
    "direction",
    "amount",
    "unit",
    "amount_text",
    "packages",
    "factor",
    "note",
    "safety",
    "link"
  ],
  "properties": {
    "link": {
      "type": "string",
      "description": "Page of calculatepool.com for the same calculation."
    },
    "note": {
      "type": "string"
    },
    "unit": {
      "enum": [
        "fl oz",
        "oz",
        "lb"
      ],
      "type": "string"
    },
    "amount": {
      "type": "number"
    },
    "factor": {
      "type": "string"
    },
    "safety": {
      "type": "string"
    },
    "target": {
      "type": "number"
    },
    "current": {
      "type": "number"
    },
    "gallons": {
      "type": "number"
    },
    "product": {
      "type": "string"
    },
    "chemical": {
      "type": "string"
    },
    "packages": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "count",
            "package",
            "text",
            "note"
          ],
          "properties": {
            "note": {
              "type": "string"
            },
            "text": {
              "type": "string"
            },
            "count": {
              "type": "integer"
            },
            "package": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "direction": {
      "enum": [
        "raise",
        "lower"
      ],
      "type": "string"
    },
    "parameter": {
      "type": "string"
    },
    "amount_text": {
      "type": "string"
    },
    "total_alkalinity": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
chemical_dose annotations
{
  "title": "Pool chemical dose",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
pump_size — Pool pump flow rate
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when someone asks what size pool pump they need or what flow rate turns their pool over in a given number of hours. Takes gallons and turnover hours (default 8). Returns gallons per minute, gallons per hour, a rule-of-thumb horsepower range, the minimum sand, cartridge and DE filter area for that flow, and pipe velocities. Not for electricity cost or pump model recommendations.

pump_size input schema
{
  "type": "object",
  "required": [
    "gallons"
  ],
  "properties": {
    "gallons": {
      "type": "number",
      "maximum": 2000000,
      "minimum": 100,
      "description": "Pool volume in US gallons (from pool_volume if the user gave dimensions)."
    },
    "turnover_hours": {
      "type": "number",
      "maximum": 24,
      "minimum": 1,
      "description": "Hours for one full turnover (default 8; 6 for heavy use)."
    }
  },
  "additionalProperties": false
}
pump_size output schema
{
  "type": "object",
  "required": [
    "gallons",
    "turnover_hours",
    "gpm",
    "gallons_per_hour",
    "hp_hint",
    "filter_min_sqft",
    "pipe_velocity_fps",
    "note",
    "link"
  ],
  "properties": {
    "gpm": {
      "type": "number"
    },
    "link": {
      "type": "string",
      "description": "Page of calculatepool.com for the same calculation."
    },
    "note": {
      "type": "string"
    },
    "gallons": {
      "type": "number"
    },
    "hp_hint": {
      "type": "string"
    },
    "turnover_hours": {
      "type": "number"
    },
    "filter_min_sqft": {
      "type": "object",
      "required": [
        "sand",
        "cartridge",
        "de"
      ],
      "properties": {
        "de": {
          "type": "number"
        },
        "sand": {
          "type": "number"
        },
        "cartridge": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "gallons_per_hour": {
      "type": "integer"
    },
    "pipe_velocity_fps": {
      "type": "object",
      "required": [
        "1.5_in",
        "2_in",
        "2.5_in"
      ],
      "properties": {
        "2_in": {
          "type": "number"
        },
        "1.5_in": {
          "type": "number"
        },
        "2.5_in": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
pump_size annotations
{
  "title": "Pool pump flow rate",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
heater_size — Pool heater BTU size
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when someone asks what size pool heater (BTU per hour) they need to raise the water a number of degrees Fahrenheit in a given time. Takes gallons, the temperature rise in °F and the hours (default 24), plus an optional buffer for surface heat loss (default 20 %, the same as the heater calculator on calculatepool.com). Returns the BTU/h required, the size with the buffer, the total BTU and the electric input of an equivalent heat pump. Not for heating cost per month or heater model recommendations.

heater_size input schema
{
  "type": "object",
  "required": [
    "gallons",
    "temperature_rise_f"
  ],
  "properties": {
    "hours": {
      "type": "number",
      "maximum": 168,
      "minimum": 1,
      "description": "Hours to reach the temperature (default 24)."
    },
    "gallons": {
      "type": "number",
      "maximum": 2000000,
      "minimum": 100,
      "description": "Pool volume in US gallons (from pool_volume if the user gave dimensions)."
    },
    "buffer_percent": {
      "type": "number",
      "maximum": 100,
      "minimum": 0,
      "description": "Extra capacity for surface heat loss while heating (default 20)."
    },
    "temperature_rise_f": {
      "type": "number",
      "maximum": 60,
      "minimum": 1,
      "description": "Degrees Fahrenheit to raise the water."
    }
  },
  "additionalProperties": false
}
heater_size output schema
{
  "type": "object",
  "required": [
    "gallons",
    "temperature_rise_f",
    "hours",
    "buffer_percent",
    "btu_per_hour_required",
    "btu_per_hour_with_buffer",
    "total_btu",
    "heat_pump_kw_input_cop5",
    "note",
    "link"
  ],
  "properties": {
    "link": {
      "type": "string",
      "description": "Page of calculatepool.com for the same calculation."
    },
    "note": {
      "type": "string"
    },
    "hours": {
      "type": "number"
    },
    "gallons": {
      "type": "number"
    },
    "total_btu": {
      "type": "integer"
    },
    "buffer_percent": {
      "type": "number"
    },
    "temperature_rise_f": {
      "type": "number"
    },
    "btu_per_hour_required": {
      "type": "integer"
    },
    "heat_pump_kw_input_cop5": {
      "type": "number"
    },
    "btu_per_hour_with_buffer": {
      "type": "integer"
    }
  },
  "additionalProperties": false
}
heater_size annotations
{
  "title": "Pool heater BTU size",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
pool_facts — Standard pool sizes in gallons
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when someone asks how many gallons a common pool size holds, e.g. a 24 ft round above-ground pool with a 52 in wall or a 16 x 32 inground pool, or wants a table of standard sizes. Returns inground rectangles (12x24 to 25x50 ft at 3.5, 4.5 and 5.5 ft average depth) and above-ground round and oval pools (12-33 ft round, 12x24 to 21x41 ft oval at 48, 52 and 54 in walls) with the factors used. For any other size or shape use pool_volume.

pool_facts input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "kind": {
      "enum": [
        "all",
        "inground",
        "above_ground"
      ],
      "type": "string",
      "description": "Which table (default all)."
    }
  },
  "additionalProperties": false
}
pool_facts output schema
{
  "type": "object",
  "required": [
    "kind",
    "rows",
    "factors",
    "note",
    "link"
  ],
  "properties": {
    "kind": {
      "type": "string"
    },
    "link": {
      "type": "string",
      "description": "Page of calculatepool.com for the same calculation."
    },
    "note": {
      "type": "string"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "pool",
          "kind",
          "gallons"
        ],
        "properties": {
          "kind": {
            "type": "string"
          },
          "pool": {
            "type": "string"
          },
          "gallons": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "depth",
                "gallons"
              ],
              "properties": {
                "depth": {
                  "type": "string"
                },
                "gallons": {
                  "type": "integer"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    "factors": {
      "type": "object",
      "required": [
        "gallons_per_cubic_foot",
        "round_and_oval_factor",
        "litres_per_gallon"
      ],
      "properties": {
        "litres_per_gallon": {
          "type": "number"
        },
        "round_and_oval_factor": {
          "type": "number"
        },
        "gallons_per_cubic_foot": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
pool_facts annotations
{
  "title": "Standard pool sizes in gallons",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
328 ms
95th percentile latency
328 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 328 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http calculate-pool-mcp https://calculatepool.com/mcp?src=mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add calculate-pool-mcp --url https://calculatepool.com/mcp?src=mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable calculate-pool-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "calculate-pool-mcp": {
      "url": "https://calculatepool.com/mcp?src=mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "calculate-pool-mcp": {
      "type": "streamableHttp",
      "url": "https://calculatepool.com/mcp?src=mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start calculate-pool-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "calculate-pool-mcp": {
      "type": "http",
      "url": "https://calculatepool.com/mcp?src=mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http calculate-pool-mcp https://calculatepool.com/mcp?src=mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "calculate-pool-mcp": {
      "url": "https://calculatepool.com/mcp?src=mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "calculate-pool-mcp": {
      "serverUrl": "https://calculatepool.com/mcp?src=mcp"
    }
  }
}

Let your agent find its tools

Find servers like Calculate Pool MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Calculate Pool 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.

Claim this listing