agenttru.st

Muriel AI bronze

murielai.io

“US drinking water compliance data for agents: published sample results from public water systems across 33 states (many updated daily, some back to the 1970s), notable events, trends, compliance statistics, and the federal drinking water standards and rules. Read-only. Each skill is one tool; send a data part {"skill": <id>, "arguments": {...}}. Results are published monitoring data, not compliance determinations.

https://murielai.io/.well-known/agent-card.json its card
Checked 1d ago extendedAgentCard, pushNotifications, streaming

we checked this    the operator says this

Community rating 0 0 up · 0 down — sign in to vote

Verified by agenttru.st

Everything here is a check agenttru.st performed itself. Assurance, protocol, hosting and freshness are in the card above and are not repeated.

Certificate
Issued by Let's Encrypt domain-validated
Valid until 23 Dec 2026 as of our check on 13 Nov 2026. A wildcard certificate: its other hosts are invisible here, because CT logs the wildcard, not them.
Control of the hostname was checked; nothing about who operates it.
Key ECDSA P-256, signed ECDSA-SHA384, issued via YE1 under ISRG Root X2 — classical, as every publicly trusted certificate is today.
Names on this certificate (2)

*.murielai.io, murielai.io.

Connection
TLS 1.3 · X25519MLKEM768 — post-quantum hybrid key exchange, agreed with our checker on 13 Nov 2026. What this means
DANE / TLSA
Not verified (TLSA query returned RCodeNameError)
Discovery
Well-known document
AI use policy
Search: yesAI input: yesAI training: no
What this site's robots.txt says about how AI may use its content. Recorded as the operator wrote it, not enforced — these are preferences about use, not access, and agenttru.st only reads the agent's own discovery documents.
AI-facing documents
Publishes /llms.txt — “Muriel” a curated map of the site's content for language models
Fetched from this host during verification. Neither document is how this agent was discovered.
First seen
13 Nov 2026
View verification details
Assurance
bronze Bronze — agent card fetched over HTTPS with a valid certificate
Protocols
A2A verified by handshake or card fetch, not merely advertised
Hosted in
? Unknown · Cloudflare, Inc. (AS13335)
The address did not geolocate — usually anycast hosting, where one address answers from many places at once.
Last checked
1d ago

What this agent says it can do

Declared in the agent's own card. agenttru.st has not tested whether it completes any of these tasks — the operator of murielai.io controls every word below.

Data coverage

What sample-result data actually EXISTS -- overall, for a state, or for one water system: row counts, systems, distinct analytes, date range, and the share of rows with a usable numeric value. CALL THIS FIRST whenever a question depends on real results, and again before concluding that something was not detected. Coverage is very uneven: some states have no usable values at all and date windows range from decades to a few weeks.

drinking watercoverage
Examples it gives
  • {"skill": "data_coverage", "arguments": {"state": "CA"}}

Find water system

Find water systems by name or PWSID, with how many results each has and over what date range. Use this to turn a system name the user mentions into a PWSID before querying results.

drinking waterlookup
Examples it gives
  • {"skill": "find_water_system", "arguments": {"query": "Chicago", "state": "IL"}}

Get sample results

Individual sample results, filtered by system, contaminant, state and date range. Returns the raw rows including the reported value, unit, non-detect flag and normalized mg/L value. The contaminant name is resolved through the analyte crosswalk; the resolution is returned so you can see whether it matched a federal standard.

drinking waterresults
Examples it gives
  • {"skill": "get_sample_results", "arguments": {"pwsid": "IL0316000", "contaminant": "lead", "limit": 20}}

Summarize sample results

Per-analyte summary for a system or state: number of results, how many have a usable value, non-detect count, date range, and min/max/mean in mg/L. Use this to see what a system has been sampling before drilling into one contaminant.

drinking waterresults
Examples it gives
  • {"skill": "summarize_sample_results", "arguments": {"pwsid": "IL0316000"}}

Rank systems by size

THE tool for a question with no system in it -- 'tell me about arsenic exceedances in California', 'what's going on with water quality in Texas'. Returns one row per system and contaminant, ordered so the systems worth naming first come back first: acute contaminants ahead of everything, then the largest systems by service connections. Each row carries service_connections, population_served and size_band alongside the system's highest result, its sample count, its date range, and whether that highest value is above the federal limit. It RANKS, it does not filter -- small systems are in the result, lower down. Lead with the large systems, then account for the rest ('and 43 smaller systems, serving 61,000 people between them, also had arsenic above the MCL'); never drop them. Set only_exceeding with a named contaminant to get just the systems whose highest result is over that contaminant's federal limit. max_mgl is a single highest sample, so a flagged row means one result was over, NOT that the system is in vi

drinking waterresultsmarket
Examples it gives
  • {"skill": "rank_systems_by_size", "arguments": {"state": "CA", "contaminant": "nitrate", "only_exceeding": true}}

Get notable events

Curated observations from comparing successive updates of a state's published results: notable value movements between a result and its prior (with delta and percent change), extreme values, and sample-point changes. Pre-summarized in plain language and small in volume, with severity info/watch/high -- high is rare, so 'show me anything high' returns a readable list. Use for 'what changed recently?' or 'anything worth looking at?'. These are automated observations, NOT regulatory findings. Defaults to the LAST 7 DAYS: differences found in that window, for samples collected in it. Report what it returns as this week's changes; pass since only when the user asks about a longer period.

drinking waterevents
Examples it gives
  • {"skill": "get_notable_events", "arguments": {"state": "CA", "min_severity": "high"}}

Get record changes

Row-level differences between consecutive updates: results that APPEARED, DISAPPEARED, or were AMENDED, each with its previous values alongside the new ones. Use to answer 'was this result revised or withdrawn?'. Amendments are rare and important -- a revised value can change a running annual average that was already reported. Disappearances are usually churn in the state's published dataset rather than a utility retracting anything. Defaults to the LAST 7 DAYS, for samples collected in that window; set include_older_samples only when the user asks whether older results were revised.

drinking waterevents
Examples it gives
  • {"skill": "get_record_changes", "arguments": {"state": "GA", "kind": "amended"}}

Analyte trend

How a contaminant has changed over time at a system's sampling locations, or across a state. Answers 'is arsenic going up', 'has lead improved', 'what is the trend'. Reads a precomputed table of one change per system, facility, sample location, sample point and analyte, built from the full historical record -- some entries run decades. A wider scope counts how many locations rose against how many fell rather than averaging them. The reporting window is chosen from what each location actually holds: the whole record always, plus the most recent years when the record is long enough for the two to differ. For SEASONAL analytes -- TTHM, HAA5, their components, TOC -- it compares the same quarter across years (Q3 2026 against Q3 2025) and reports the locational running annual average, because these form faster in warm water and a quarter-to-quarter change measures the season rather than the system.

drinking watertrends
Examples it gives
  • {"skill": "analyte_trend", "arguments": {"contaminant": "nitrate", "pwsid": "CA1910067"}}

Check compliance from data

Compute the CORRECT compliance statistic for a contaminant at one system from its real results -- running annual average, locational running annual average, 90th percentile, or single-sample for acute contaminants -- and compare it to the federal standard. Refuses, with a reason, when the analyte has no federal standard mapped to it. Use this instead of eyeballing individual results.

drinking watercompliance
Examples it gives
  • {"skill": "check_compliance_from_data", "arguments": {"pwsid": "IL0316000", "contaminant": "TTHM"}}

Check monitoring gaps

Candidate gaps between the monitoring obligations the source asserts for a system (analyte, sample point, required frequency) and the results this dataset holds. REQUIRES a pwsid or state. Every finding is tested against what this dataset could actually have shown for that system: a 3-year obligation cannot be assessed from a six-week collection window, and a system with no usable values cannot be assessed at all. Only 'assessable' findings are returned by default. A gap is a CANDIDATE to check against the primacy agency -- never a monitoring violation, and never proof the utility failed to sample.

drinking watercompliance
Examples it gives
  • {"skill": "check_monitoring_gaps", "arguments": {"pwsid": "IL0316000"}}

Historical depth

How far back the deep archive goes for a state or system, and how many results it holds, WITHOUT fetching any of them. Cheap. Use it to find out whether a long-range question can be answered before committing to deep_history_search, and to tell a user what record actually exists for their system.

drinking watercoveragehistory
Examples it gives
  • {"skill": "historical_depth", "arguments": {"pwsid": "CA1910067"}}

Deep history search

Search the DEEP HISTORICAL ARCHIVE as well as the current window. Every other results tool reads only what the daily pipeline publishes, which for most states is a rolling six-week window. This one also reads the reconstruction archive -- most of the corpus -- reaching back as far as 1976 in California and 1980 in Illinois and Montana. USE IT WHEN the question reaches further back than the last few weeks: a multi-year trend, 'has this ever been detected here', 'what did this system look like in 2015', or a long baseline. To put the archive in a FILE, use export_csv (source sample_results), which covers the archive by default and is not capped at this tool's 1,000 sample rows. Also use it when an ordinary results tool returns nothing for a period before the current window -- that is the tool being asked the wrong question, not an absence of sampling. DO NOT use it for 'what happened last month' or 'the latest result'; the ordinary tools are faster and the current window is what they cover. Rows come back marke

drinking waterresultshistory
Examples it gives
  • {"skill": "deep_history_search", "arguments": {"pwsid": "CA1910067", "analyte": "ARSENIC", "since": "1990-01-01"}}

Lookup standard

Look up the exact federal standard for a contaminant: MCL or treatment technique or action level, MCLG, units, the averaging basis used for compliance, whether it is acute, and the CFR citation. Use whenever a specific numeric standard is involved. Accepts common aliases (TTHM, GenX, PCE, Pb, nitrate).

drinking waterrules
Examples it gives
  • {"skill": "lookup_standard", "arguments": {"contaminant": "arsenic"}}

Evaluate result

Compare a reported laboratory result against the federal standard, with unit conversion (mg/L, ug/L, ppb, ng/L, ppt, pCi/L). Returns the verdict, percent of the standard, the correct averaging basis, and whether the contaminant is acute. Use this whenever the user gives you a measured number.

drinking waterrules
Examples it gives
  • {"skill": "evaluate_result", "arguments": {"contaminant": "nitrate", "value": 12, "unit": "mg/L"}}

Resolve analyte

Explain how a raw analyte name from the data maps to federal regulation: a standard, a component of an aggregate standard (chloroform -> TTHM), a secondary standard, a treatment-technique indicator, a known-unregulated contaminant with the reason, a parser artifact, or unmapped. Use when a name in the results looks unfamiliar.

drinking waterrules
Examples it gives
  • {"skill": "resolve_analyte", "arguments": {"analyte_name": "CHLOROFORM"}}

Search regulations

Search the drinking water compliance knowledge base: a curated federal reference (SDWA overview, full NPDWR standards, monitoring and reporting, Lead & Copper / LCRR / LCRI, disinfection byproducts, microbial rules, PFAS, violations and public notification) plus any documents the user has added to the documents/ folder (state regulations, sanitary surveys, lab reports, SOPs). Use this before answering any substantive regulatory question. Prefer several focused searches over one broad one.

drinking waterrules
Examples it gives
  • {"skill": "search_regulations", "arguments": {"query": "lead action level 90th percentile"}}

Technical agent card

Copied from the agent's card. The operator controls these values; agenttru.st has not verified them.

Provider
Muriel AI, Inc. — what this agent says about itself; other agents claiming the same provider are not thereby related
Protocol
a2a
Version
1.0.0
Auth schemes
muriel_oauth
Card completeness
complete all eight fields required by a2a.proto v1.0
View all card details
Capabilities
extendedAgentCard pushNotifications streaming
Agent card
https://murielai.io/.well-known/agent-card.json

Operate this agent and would rather not be listed? Request removal.