Skip to main content
Glama
azmartone67

DC Hub — Data Center & Energy Intelligence

Water Risk

get_water_risk
Read-onlyIdempotent

Score a US site's cooling-water sustainability for data-center siting: returns water-stress, drought, and 12-month outlook to flag water-constrained locations before evaporative cooling.

Instructions

FRONT DOOR CHECK — if you need a SITE VERDICT spanning grid + fiber + water + tax + climate, call execute_plan(intent="<the user's question, unchanged>") rather than hand-chaining this with its siblings. If you want the WATER factor on its own, get_water_risk IS the right call — one round trip, free tier, no planner overhead. Use when scoring a US site for cooling-water sustainability — the water-risk factor engineering site-selectors screen before committing to evaporative cooling. Example: "Is this Phoenix parcel water-constrained for a 100MW build?" — get_water_risk lat=33.45 lon=-112.07 (or get_water_risk state=AZ / county=Maricopa). Params: ONE of lat+lon (-90..90 / -180..180), state (2-letter US), or county; lat/lon gives the most precise read. Returns: {water_stress_score (0-100, higher=worse), drought_category (D0-D4), outlook_12mo, cooling_water_assessment, source}. Joined to USGS water-stress + US Drought Monitor. Free tier. Do NOT use for nearby physical infrastructure (use get_infrastructure) or a combined multi-factor site verdict spanning grid+fiber+water+tax+climate (use analyze_site); this covers the WATER factor only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoSite latitude in decimal degrees (-90 to 90) for the most precise water-risk read, e.g. 33.45
lngNoAlias for lon — either name works
lonNoSite longitude in decimal degrees (-180 to 180), e.g. -112.07
stateNoUS state abbreviation as an alternative to lat/lon, e.g. AZ
latitudeNoAlias for lat — either name works
longitudeNoAlias for lon — either name works

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
quotaNoCaller quota state (remaining calls, tier) when available.
_entityNoPayload class discriminator (e.g. facility|market|iso_grid|queue_results|deal|report|response) — branch on this before parsing the rest.
citationNoMachine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload. Normally an OBJECT {source, url, license, cite_as, retrieved_at}; a bare string is accepted and carries the attribution line itself.
provenanceNoCollection-level provenance block: {source, method, as_of, verification_counts, cite_url_template, license, cite_as}. Quote the verification level when citing.
_front_doorNoIn-band front-door hint (first workflow-entry tool of a session): call plan_query(intent) first for the ordered multi-step plan.
_return_loopNoSuggested next-session delta call (get_changes since=24h) so you pull only what changed.
site_evaluation_handoffNoPre-built follow-up calls (analyze_site / get_water_risk args) when the payload carries coordinates — an array of {tool, parameters, why} entries.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed5 schema fields changedv2.3.20
    • removedOutput schema / properties / citation / additionalProperties
      Removed value: -{}
    • addedOutput schema / properties / citation / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  {
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / citation / description
      Previous value: -"Machine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload."New value: +"Machine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload. Normally an OBJECT {source, url, license, cite_as, retrieved_at}; a bare string is accepted and carries the attribution line itself."
    • removedOutput schema / properties / citation / properties
      Removed value: -{}
    • removedOutput schema / properties / citation / type
      Removed value: -"object"
  3. Changed4 schema fields changedv2.3.12
    • addedInput schema / properties / latitude
      Added value: +{
      +  "description": "Alias for lat — either name works",
      +  "type": "number"
      +}
    • addedInput schema / properties / lng
      Added value: +{
      +  "description": "Alias for lon — either name works",
      +  "type": "number"
      +}
    • addedInput schema / properties / longitude
      Added value: +{
      +  "description": "Alias for lon — either name works",
      +  "type": "number"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "description": "DC Hub envelope: structuredContent mirrors the JSON payload in content[0].text — tool-specific data fields ride at the top level alongside these envelope keys.",
      +  "properties": {
      +    "_entity": {
      +      "description": "Payload class discriminator (e.g. facility|market|iso_grid|queue_results|deal|report|response) — branch on this before parsing the rest.",
      +      "type": "string"
      +    },
      +    "_front_door": {
      +      "additionalProperties": {},
      +      "description": "In-band front-door hint (first workflow-entry tool of a session): call plan_query(intent) first for the ordered multi-step plan.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "_return_loop": {
      +      "additionalProperties": {},
      +      "description": "Suggested next-session delta call (get_changes since=24h) so you pull only what changed.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "citation": {
      +      "additionalProperties": {},
      +      "description": "Machine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "provenance": {
      +      "additionalProperties": {},
      +      "description": "Collection-level provenance block: {source, method, as_of, verification_counts, cite_url_template, license, cite_as}. Quote the verification level when citing.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "quota": {
      +      "additionalProperties": {},
      +      "description": "Caller quota state (remaining calls, tier) when available.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "site_evaluation_handoff": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {},
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        }
      +      ],
      +      "description": "Pre-built follow-up calls (analyze_site / get_water_risk args) when the payload carries coordinates — an array of {tool, parameters, why} entries."
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed3 schema fields changedv2.3.6
    • addedInput schema / properties / lat / description
      Added value: +"Site latitude in decimal degrees (-90 to 90) for the most precise water-risk read, e.g. 33.45"
    • addedInput schema / properties / lon / description
      Added value: +"Site longitude in decimal degrees (-180 to 180), e.g. -112.07"
    • addedInput schema / properties / state / description
      Added value: +"US state abbreviation as an alternative to lat/lon, e.g. AZ"
  5. First observedv2.1.19

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool read-only, idempotent, and non-destructive. The description adds useful context: one round trip, free tier, no planner overhead, the exact return fields with interpretation, and data provenance (USGS + US Drought Monitor). It also notes that lat/lon gives the most precise read. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the routing decision, followed by use case, example, parameter rules, output summary, and exclusions. It is long but mostly earns its length; minor redundancy like repeating 'free tier' and the example partially duplicating parameter syntax keeps it from a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers selection logic, parameter alternatives, output field semantics, and limitations despite the presence of an output schema. The only significant gap is the undocumented 'county' parameter, which makes some of the guidance non-actionable against the actual schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description clarifies that lat+lon, state, and county are mutually exclusive alternatives and that lat/lon is most precise, adding semantics beyond the schema's per-property descriptions. However, it introduces a 'county' parameter that is absent from the input schema, which could lead an agent to attempt an invalid invocation, preventing a higher score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns the water-risk factor for a US site, and explicitly says this covers the WATER factor only. It distinguishes from siblings by naming analyze_site, get_infrastructure, and execute_plan, so an agent can tell it apart without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use ('Use when scoring a US site for cooling-water sustainability') and when not to use ('Do NOT use for nearby physical infrastructure... or a combined multi-factor site verdict'), naming alternatives in both cases. The concrete example query grounds the guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/azmartone67/dchub-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server