{"schema_version":"1.0","contract_version":"2.0.0","engine":"BLX Ops (live)","mcp_endpoint":"https://bluelux.com/mcp","tools":[{"name":"calculate_pool_dose","title":"Calculate pool chemical dose","description":"Return exact and field-ready amounts from the deterministic BlueLux engine. Acid and soda ash require total alkalinity. Named product profiles or explicit strength and density may override disclosed defaults.","inputSchema":{"type":"object","additionalProperties":false,"required":["chemical","volume_gallons","current","target"],"properties":{"chemical":{"type":"string","enum":["liquid_chlorine","muriatic_acid","sodium_bicarbonate","calcium_chloride","cyanuric_acid","pool_salt","soda_ash"]},"volume_gallons":{"type":"number"},"current":{"type":"number"},"target":{"type":"number"},"product_strength_percent":{"type":"number"},"product_density_g_ml":{"type":"number"},"product_profile_id":{"type":"string"},"total_alkalinity_ppm":{"type":"number"},"cyanuric_acid_ppm":{"type":"number"},"borates_ppm_as_boron":{"type":"number"},"free_chlorine_ppm":{"type":"number"},"temperature_f":{"type":"number"},"tds_ppm":{"type":"number"}}}},{"name":"calculate_lsi","title":"Calculate Langelier Saturation Index","description":"Calculate LSI using the BlueLux continuous profile or reproduce the PHTA 2024 factor-table profile.","inputSchema":{"type":"object","additionalProperties":false,"required":["ph","total_alkalinity_ppm","calcium_hardness_ppm"],"properties":{"ph":{"type":"number"},"total_alkalinity_ppm":{"type":"number"},"calcium_hardness_ppm":{"type":"number"},"temperature_f":{"type":"number"},"tds_ppm":{"type":"number"},"cyanuric_acid_ppm":{"type":"number"},"calculation_profile":{"type":"string","enum":["bluelux_equilibrium_v1","phta_2024_table_v1"]}}}},{"name":"get_metals_protocol","title":"Get metals treatment protocol","description":"Return the diagnostic and treatment sequence for suspected iron, copper, manganese, stains, or colored water.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"symptom":{"type":"string"},"confirmed_metal":{"type":"string","enum":["iron","copper","manganese","unknown"]}}}},{"name":"get_nutrient_thresholds","title":"Interpret phosphate and nitrate","description":"Interpret phosphate and nitrate readings without presenting them as universal public-health limits.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"phosphate_ppb":{"type":"number"},"nitrate_ppm":{"type":"number"}}}},{"name":"diagnose_filter_circulation","title":"Diagnose filter and circulation","description":"Return deterministic diagnostic steps from flow, prime, current pressure, and clean-filter baseline.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"filter_pressure_psi":{"type":"number"},"baseline_pressure_psi":{"type":"number"},"visible_flow":{"type":"string","enum":["normal","low","none","surging"]},"pump_primed":{"type":"boolean"}}}},{"name":"get_seasonal_checklist","title":"Get startup or shutdown checklist","description":"Return an ordered pool startup or shutdown checklist for residential or public facilities.","inputSchema":{"type":"object","additionalProperties":false,"required":["action"],"properties":{"action":{"type":"string","enum":["startup","shutdown"]},"facility_type":{"type":"string","enum":["residential","public"]}}}},{"name":"search_playbook","title":"Search the BlueLux Playbook","description":"Search the BlueLux Playbook and return ranked passages with entry IDs, versions, sources, and canonical URLs.","inputSchema":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","minLength":2,"maxLength":500},"limit":{"type":"integer","minimum":1,"maximum":8}}}}]}