Pool Log — CDC-range water test log (no AI)

Deterministic pool and spa water test log. Checks readings against US CDC ranges. No AI.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
75%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~669Tokens (tool definitions)
~706 BTypical response size
Moderate attention impact (0.52% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "water-log": {
      "url": "https://pool-log.rowb.app/mcp"
    }
  }
}

Remote endpoints

https://pool-log.rowb.app/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_readings(readings, as_of)

Check a list of pool or spa water readings for things that cannot be true, and compare pH, free chlorine and bromine against the ranges published on the US CDC pages. Deterministic arithmetic only - no AI. It does not decide whether a pool is legally compliant, and it does not know your local code.

Input Schema

{
  "type": "object",
  "properties": {
    "readings": {
      "type": "array",
      "description": "Readings to check. Each: {at:\"YYYY-MM-DDTHH:MM\", kind:\"pool|hot_tub|splash_pad|wading_pool|other\", ph?:number, free_chlorine_ppm?:number, total_chlorine_ppm?:number, bromine_ppm?:number, cyanuric_acid_ppm?:number, water_temp_f?:number, disinfectant?:\"chlorine|bromine|none\", method?:\"dpd|test_strip|meter|other\", by?:\"who tested\"}.",
      "items": {
        "type": "object"
      }
    },
    "as_of": {
      "type": "string",
      "description": "Treat this date as \"today\" (YYYY-MM-DD) when rejecting future timestamps. Defaults to the server date."
    }
  },
  "required": [
    "readings"
  ]
}
🟢get_rules

The exact rule table this service checks against, the quoted source of every range, and what it explicitly does not claim. Quote it if you need to explain a result.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡create_site(label, water_type, volume_gallons, disinfectant, address)

Open a water-test log for one pool, hot tub or splash pad (returns a site id). Requires a bearer key.

Input Schema

{
  "type": "object",
  "properties": {
    "label": {
      "type": "string",
      "description": "What to call this water, e.g. \"Apartment pool - north\"."
    },
    "water_type": {
      "type": "string",
      "description": "pool | hot_tub | splash_pad | wading_pool | other"
    },
    "volume_gallons": {
      "type": "number"
    },
    "disinfectant": {
      "type": "string",
      "description": "chlorine | bromine | none"
    },
    "address": {
      "type": "string"
    }
  },
  "required": []
}
🟡add_readings(site_id, readings)

Append water readings to an existing log. Requires a bearer key.

Input Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string"
    },
    "readings": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "site_id",
    "readings"
  ]
}
🟢get_log_summary(site_id)

Every reading, the flagged issues, the CDC-range counts, the longest gap between tests, and the A4 log sheet URL, for one log. Requires a bearer key.

Input Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string"
    }
  },
  "required": [
    "site_id"
  ]
}
🟡request_operator_signoff(site_id, provider_name, provider_email)

Create a one-time URL the pool operator can open to confirm the log. Requires a bearer key. The token is single use.

Input Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string"
    },
    "provider_name": {
      "type": "string"
    },
    "provider_email": {
      "type": "string"
    }
  },
  "required": [
    "site_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools