Skip to main content
Glama

us-drought-monitor-mcp-server

Compare drought severity across areas

drought_compare_areas
Read-only

Rank all supported states, or counties within an optional state, on one published map. Omit state for nationwide supported counties. With baselineDate, rank target minus exact baseline; missing sides are excluded explicitly. Equal values share competition rank. limit controls a staged preview; without analytics, complete rankings remain inline within acquisition limits.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
rowsNoComplete ranking or staged preview.
unitNoSeverity unit.
errorNoPresent when the call failed. Absent on success.
scopeNoCompared geography scope.
stateNoResolved county state or null.
metricNoCompared severity measure.
noticeNoEmpty comparison or preview continuation guidance.
stagingNoComplete ranking table when staged.
changeUnitNoDifference unit.
provenanceNoActual sources and attribution.
totalCountNoComplete comparable population before preview selection.
limitNoticeNoDisclosure when the requested limit was clamped.
comparedCountNoComplete comparable population.
excludedAreasNoEvery area lacking a required value.
targetMapDateNoExact target Tuesday.
effectiveLimitNoEffective preview ceiling after clamping to 200.
includedStatesNoActual supported included state postal codes.
baselineMapDateNoExact baseline Tuesday or null.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "baselineDate": {
      -        "description": "Optional exact baseline date, no later than target.",
      -        "maxLength": 10,
      -        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      -        "type": "string"
      -      },
      -      "canvas_id": {
      -        "anyOf": [
      -          {
      -            "const": "",
      -            "type": "string"
      -          },
      -          {
      -            "description": "Canvas ID as an earlier response on this server returned it — exactly 10 characters of letters, digits, hyphens, and underscores.",
      -            "pattern": "^[A-Za-z0-9_-]{10}$",
      -            "type": "string"
      -          }
      -        ],
      -        "description": "Canvas token from an earlier drought producer to reuse."
      -      },
      -      "date": {
      -        "description": "Target calendar date; defaults to latest published map.",
      -        "maxLength": 10,
      -        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      -        "type": "string"
      -      },
      -      "direction": {
      -        "default": "desc",
      -        "description": "Order by severity or baseline change.",
      -        "enum": [
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      },
      -      "limit": {
      -        "default": 20,
      -        "description": "Preview row limit, clamped to 200 with disclosure; complete rankings remain staged.",
      -        "maximum": 9007199254740991,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "metric": {
      -        "default": "dsci",
      -        "description": "Experimental DSCI or cumulative area percentage.",
      -        "enum": [
      -          "dsci",
      -          "d2_d4",
      -          "d3_d4"
      -        ],
      -        "type": "string"
      -      },
      -      "scope": {
      -        "const": "states",
      -        "description": "All supported states.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "scope"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "baselineDate": {
      -        "description": "Optional exact baseline date, no later than target.",
      -        "maxLength": 10,
      -        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      -        "type": "string"
      -      },
      -      "canvas_id": {
      -        "anyOf": [
      -          {
      -            "const": "",
      -            "type": "string"
      -          },
      -          {
      -            "description": "Canvas ID as an earlier response on this server returned it — exactly 10 characters of letters, digits, hyphens, and underscores.",
      -            "pattern": "^[A-Za-z0-9_-]{10}$",
      -            "type": "string"
      -          }
      -        ],
      -        "description": "Canvas token from an earlier drought producer to reuse."
      -      },
      -      "date": {
      -        "description": "Target calendar date; defaults to latest published map.",
      -        "maxLength": 10,
      -        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      -        "type": "string"
      -      },
      -      "direction": {
      -        "default": "desc",
      -        "description": "Order by severity or baseline change.",
      -        "enum": [
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      },
      -      "limit": {
      -        "default": 20,
      -        "description": "Preview row limit, clamped to 200 with disclosure; complete rankings remain staged.",
      -        "maximum": 9007199254740991,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "metric": {
      -        "default": "dsci",
      -        "description": "Experimental DSCI or cumulative area percentage.",
      -        "enum": [
      -          "dsci",
      -          "d2_d4",
      -          "d3_d4"
      -        ],
      -        "type": "string"
      -      },
      -      "scope": {
      -        "const": "counties",
      -        "description": "Supported counties.",
      -        "type": "string"
      -      },
      -      "state": {
      -        "description": "Exact state postal, FIPS or full name; omitted means nationwide.",
      -        "maxLength": 200,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "scope"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "baselineDate": {
      +        "description": "Optional exact baseline date, no later than target.",
      +        "maxLength": 10,
      +        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      +        "type": "string"
      +      },
      +      "canvas_id": {
      +        "anyOf": [
      +          {
      +            "const": "",
      +            "type": "string"
      +          },
      +          {
      +            "description": "Canvas ID as an earlier response on this server returned it — exactly 10 characters of letters, digits, hyphens, and underscores.",
      +            "pattern": "^[A-Za-z0-9_-]{10}$",
      +            "type": "string"
      +          }
      +        ],
      +        "description": "Canvas token from an earlier drought producer to reuse."
      +      },
      +      "date": {
      +        "description": "Target calendar date; defaults to latest published map.",
      +        "maxLength": 10,
      +        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      +        "type": "string"
      +      },
      +      "direction": {
      +        "default": "desc",
      +        "description": "Order by severity or baseline change.",
      +        "enum": [
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 20,
      +        "description": "Default 20 preview rows; values above 200 are clamped with disclosure.",
      +        "maximum": 9007199254740991,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "metric": {
      +        "default": "dsci",
      +        "description": "Experimental DSCI or cumulative area percentage.",
      +        "enum": [
      +          "dsci",
      +          "d2_d4",
      +          "d3_d4"
      +        ],
      +        "type": "string"
      +      },
      +      "scope": {
      +        "const": "states",
      +        "description": "All supported states.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "scope"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "baselineDate": {
      +        "description": "Optional exact baseline date, no later than target.",
      +        "maxLength": 10,
      +        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      +        "type": "string"
      +      },
      +      "canvas_id": {
      +        "anyOf": [
      +          {
      +            "const": "",
      +            "type": "string"
      +          },
      +          {
      +            "description": "Canvas ID as an earlier response on this server returned it — exactly 10 characters of letters, digits, hyphens, and underscores.",
      +            "pattern": "^[A-Za-z0-9_-]{10}$",
      +            "type": "string"
      +          }
      +        ],
      +        "description": "Canvas token from an earlier drought producer to reuse."
      +      },
      +      "date": {
      +        "description": "Target calendar date; defaults to latest published map.",
      +        "maxLength": 10,
      +        "pattern": "^(?:|\\d{4}-\\d{2}-\\d{2})$",
      +        "type": "string"
      +      },
      +      "direction": {
      +        "default": "desc",
      +        "description": "Order by severity or baseline change.",
      +        "enum": [
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 20,
      +        "description": "Default 20 preview rows; values above 200 are clamped with disclosure.",
      +        "maximum": 9007199254740991,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "metric": {
      +        "default": "dsci",
      +        "description": "Experimental DSCI or cumulative area percentage.",
      +        "enum": [
      +          "dsci",
      +          "d2_d4",
      +          "d3_d4"
      +        ],
      +        "type": "string"
      +      },
      +      "scope": {
      +        "const": "counties",
      +        "description": "Supported counties.",
      +        "type": "string"
      +      },
      +      "state": {
      +        "description": "Exact state postal, FIPS or full name; omitted means nationwide.",
      +        "maxLength": 200,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "scope"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `upstream_request_rejected`: USDM rejects a selector or date request. `staging_busy`: The bounded acquisition admission slots are occupied. `ambiguous_area`: Several exact names match. `unknown_area`: The state name cannot resolve. `invalid_area`: State is used with the wrong scope. `invalid_date_range`: Dates are impossible or baseline follows target. `publication_unavailable`: No latest publication is available. `dataset_too_large`: The complete request exceeds acquisition or metadata budgets. `upstream_shape_invalid`: Upstream data is malformed, duplicate or outside scope. `canvas_unavailable`: A complete ranking requires an unavailable analytical provider. `staging_capacity_exhausted`: Retained analytical capacity is exhausted. `canvas_not_found`: The supplied canvas is absent or expired. `canvas_capacity_exhausted`: The provider cannot mint another canvas. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `upstream_request_rejected`: USDM rejects a selector or date request. `staging_busy`: The bounded acquisition admission slots are occupied. `ambiguous_area`: Several exact names match. `unknown_area`: The state name cannot resolve. `invalid_area`: State is used with the wrong scope. `invalid_date_range`: Dates are impossible or baseline follows target. `publication_unavailable`: No latest publication is available. `dataset_too_large`: The complete request exceeds acquisition or retained-data quotas. `upstream_shape_invalid`: Upstream data is malformed, duplicate or outside scope. `canvas_unavailable`: An explicit canvas token requires an unavailable analytical provider. `staging_capacity_exhausted`: Retained analytical capacity is exhausted. `canvas_not_found`: The supplied canvas is absent or expired. `canvas_capacity_exhausted`: The provider cannot mint another canvas. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / excludedAreas / items / properties / area / properties / areaType / enum
      Previous value: -[
      -  "us",
      -  "state",
      -  "county",
      -  "huc",
      -  "tribal",
      -  "climate_division"
      -]New value: +[
      +  "us",
      +  "state",
      +  "county",
      +  "huc",
      +  "tribal",
      +  "climate_division",
      +  "river_forecast_center"
      +]
    • addedOutput schema / properties / provenance / properties / populationInterpretation
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Present when the workflow includes a supported population metric.",
      +  "properties": {
      +    "caveat": {
      +      "description": "Population assumptions and precision limitations.",
      +      "type": "string"
      +    },
      +    "methodologyUrl": {
      +      "description": "Official population estimation methodology.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "methodologyUrl",
      +    "caveat"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / rows / items / properties / areaType / enum
      Previous value: -[
      -  "us",
      -  "state",
      -  "county",
      -  "huc",
      -  "tribal",
      -  "climate_division"
      -]New value: +[
      +  "us",
      +  "state",
      +  "county",
      +  "huc",
      +  "tribal",
      +  "climate_division",
      +  "river_forecast_center"
      +]
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds genuinely new behavior: equal values share competition rank, rows missing either side of a baseline comparison are excluded explicitly, and limit only stages a preview while complete rankings stay inline within acquisition limits.

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?

Front-loaded with the core ranking operation, then progressively adds baseline, tie, and limit behavior in four compact sentences with no filler. Some phrasing ('one published map', 'acquisition limits') is terse enough to be mildly opaque.

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?

With an output schema present and annotations covering read safety, the description needn't explain return values and covers scope, baseline comparison, tie handling and preview limits adequately. Minor gaps remain around what 'supported' geography means and how metric choices affect ranking.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds semantics the schema cannot express: what baselineDate actually computes (target minus baseline, with explicit exclusion of missing sides), how ties are ranked, and that limit is a preview rather than a truncation.

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

Purpose4/5

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

States a specific verb (rank/compare) and resource (states or counties within a state) on a published drought map, which clearly separates it from sibling read tools like drought_get_current_severity or drought_get_timeseries. It doesn't explicitly name a sibling alternative, so it stops short of 5.

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

Usage Guidelines3/5

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

The description does give conditional usage: omit state for nationwide counties, and supply baselineDate to rank target-versus-baseline change. However, it never states when to prefer this tool over the sibling severity/timeseries tools, leaving the main routing decision to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.