Skip to main content
Glama

Nws Get Office Discussion

nws_get_office_discussion
Read-only

Get the latest narrative forecast product from a Weather Forecast Office (WFO). The default product is AFD (Area Forecast Discussion), which explains the meteorological reasoning behind the forecast — synoptic setup, model guidance, and forecaster confidence. Other types: HWO (Hazardous Weather Outlook, 1-7 day severe/flood/winter outlook), ZFP (Zone Forecast Product, zone-by-zone text), SPS (Special Weather Statement, short-fuse advisory), FWF (Fire Weather Planning Forecast, one segment per fire weather zone). The office code is the 3-letter WFO identifier returned as the "office" field by nws_get_forecast. A product over 24,000 bytes (most ZFPs and FWFs) comes back as an outline of its sections — AFD section names, or ZFP/HWO/SPS/FWF zone segments with their area names — with each section's size, instead of the text; re-call with sections to get the ones you need. sections also works on a product of any size, to read one AFD section or one zone's forecast. For an alert zone typed "fire" (Red Flag Warning, Fire Weather Watch), pass the alert's "office" field as office, product_type "FWF", and the zone code in sections.

Input Schema

NameRequiredDescriptionDefault
officeYesProduct location code of 2–3 letters or digits, case-insensitive — usually the 3-letter Weather Forecast Office (WFO) code (e.g., "SEW" for Seattle, "LOX" for Los Angeles), returned as the "office" field in nws_get_forecast output. Some offices file a product under other codes: Anchorage files its ZFP under "AER" (Anchorage East) and "ALU" (Anchorage West), not "AFC"; San Juan files its ZFP under "PR", and Guam its SPS under "PQ1".
sectionsNoSections to return instead of the whole product: AFD section names, case-insensitive (e.g., "DISCUSSION", "AVIATION"), or zone codes for ZFP/HWO/SPS/FWF (e.g., "WAZ315"; a code inside a listed range such as FLZ076>078 selects that segment). Take names from the outline. Returns the product header plus every matching section verbatim, in product order, followed by the product's closing lines (forecaster credits, links). Omit for the whole product, or its outline when it is too large.
product_typeNoProduct type code. AFD (Area Forecast Discussion) — meteorological reasoning, model analysis, forecaster confidence. HWO (Hazardous Weather Outlook) — 1-7 day outlook for severe weather, flooding, winter weather. ZFP (Zone Forecast Product) — detailed zone-by-zone text forecast. SPS (Special Weather Statement) — short-fuse advisory for notable non-warning weather. FWF (Fire Weather Planning Forecast) — fire weather discussion plus a forecast segment per fire weather zone (e.g., humidity and wind); select a zone with sections.AFD

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
noticeNoSet when the product is outlined (with a worked sections re-call) or when sections selected part of it (how many of how many sections came back).
outlineNoSections of a product too large to inline, largest first. Present only in place of productText.
productCodeNoProduct type code (e.g., "AFD").
productNameNoFull product name (e.g., "Area Forecast Discussion").
productTextNoNarrative product text as issued by the forecaster: the whole product, or the product header followed by each selected section when sections was given. Absent when outline is returned.
issuanceTimeNoWhen the product was issued (ISO 8601), e.g., "2026-05-30T10:33:00+00:00".
issuingOfficeNoIssuing office call sign (e.g., "KSEW"). Includes the K/P prefix, unlike the input office code.
wmoCollectiveIdNoWMO collective identifier (e.g., "FXUS66"). Identifies the product family in international message routing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / product_type / description
      Previous value: -"Product type code. AFD (Area Forecast Discussion) — meteorological reasoning, model analysis, forecaster confidence. HWO (Hazardous Weather Outlook) — 1-7 day outlook for severe weather, flooding, winter weather. ZFP (Zone Forecast Product) — detailed zone-by-zone text forecast. SPS (Special Weather Statement) — short-fuse advisory for notable non-warning weather."New value: +"Product type code. AFD (Area Forecast Discussion) — meteorological reasoning, model analysis, forecaster confidence. HWO (Hazardous Weather Outlook) — 1-7 day outlook for severe weather, flooding, winter weather. ZFP (Zone Forecast Product) — detailed zone-by-zone text forecast. SPS (Special Weather Statement) — short-fuse advisory for notable non-warning weather. FWF (Fire Weather Planning Forecast) — fire weather discussion plus a forecast segment per fire weather zone (e.g., humidity and wind); select a zone with sections."
    • changedInput schema / properties / product_type / enum
      Previous value: -[
      -  "AFD",
      -  "HWO",
      -  "ZFP",
      -  "SPS"
      -]New value: +[
      +  "AFD",
      +  "HWO",
      +  "ZFP",
      +  "SPS",
      +  "FWF"
      +]
    • changedInput schema / properties / sections / description
      Previous value: -"Sections to return instead of the whole product: AFD section names, case-insensitive (e.g., \"DISCUSSION\", \"AVIATION\"), or zone codes for ZFP/HWO/SPS (e.g., \"WAZ315\"; a code inside a listed range such as FLZ076>078 selects that segment). Take names from the outline. Returns the product header plus every matching section verbatim, in product order, followed by the product's closing lines (forecaster credits, links). Omit for the whole product, or its outline when it is too large."New value: +"Sections to return instead of the whole product: AFD section names, case-insensitive (e.g., \"DISCUSSION\", \"AVIATION\"), or zone codes for ZFP/HWO/SPS/FWF (e.g., \"WAZ315\"; a code inside a listed range such as FLZ076>078 selects that segment). Take names from the outline. Returns the product header plus every matching section verbatim, in product order, followed by the product's closing lines (forecaster credits, links). Omit for the whole product, or its outline when it is too large."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `no_products`: Office code is unknown, or no product of the requested type is filed under it: episodic types (SPS, HWO) are commonly empty, and some offices file AFD or ZFP under other location codes. `unknown_section`: A sections entry matches no section of the latest product. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `no_products`: Office code is unknown, or no product of the requested type is filed under it: episodic types (SPS, HWO) are commonly empty, some offices file AFD or ZFP under other location codes, and some offices issue no FWF. `unknown_section`: A sections entry matches no section of the latest product. Other values are possible when a failure originates below the handler."
  2. Changed9 schema fields changed
    • changedInput schema / properties / office / description
      Previous value: -"Three-letter Weather Forecast Office (WFO) code (e.g., \"SEW\" for Seattle, \"LOX\" for Los Angeles). Returned as the \"office\" field in nws_get_forecast output."New value: +"Product location code of 2–3 letters or digits, case-insensitive — usually the 3-letter Weather Forecast Office (WFO) code (e.g., \"SEW\" for Seattle, \"LOX\" for Los Angeles), returned as the \"office\" field in nws_get_forecast output. Some offices file a product under other codes: Anchorage files its ZFP under \"AER\" (Anchorage East) and \"ALU\" (Anchorage West), not \"AFC\"; San Juan files its ZFP under \"PR\", and Guam its SPS under \"PQ1\"."
    • addedInput schema / properties / office / pattern
      Added value: +"^\\s*[A-Za-z0-9]{2,3}\\s*$"
    • addedInput schema / properties / sections
      Added value: +{
      +  "description": "Sections to return instead of the whole product: AFD section names, case-insensitive (e.g., \"DISCUSSION\", \"AVIATION\"), or zone codes for ZFP/HWO/SPS (e.g., \"WAZ315\"; a code inside a listed range such as FLZ076>078 selects that segment). Take names from the outline. Returns the product header plus every matching section verbatim, in product order, followed by the product's closing lines (forecaster credits, links). Omit for the whole product, or its outline when it is too large.",
      +  "items": {
      +    "maxLength": 200,
      +    "type": "string"
      +  },
      +  "maxItems": 100,
      +  "type": "array"
      +}
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "error"
      -      ]
      -    },
      -    "required": [
      -      "issuanceTime",
      -      "issuingOffice",
      -      "productCode",
      -      "productName",
      -      "productText",
      -      "wmoCollectiveId"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "error"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "issuanceTime",
      +      "issuingOffice",
      +      "productCode",
      +      "productName",
      +      "wmoCollectiveId"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `no_products`: Office code is unknown, or a valid office has no current product of the requested type (episodic types like SPS and HWO are commonly empty). Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `no_products`: Office code is unknown, or no product of the requested type is filed under it: episodic types (SPS, HWO) are commonly empty, and some offices file AFD or ZFP under other location codes. `unknown_section`: A sections entry matches no section of the latest product. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "no_products"
      -]New value: +[
      +  "no_products",
      +  "unknown_section"
      +]
    • addedOutput schema / properties / notice
      Added value: +{
      +  "description": "Set when the product is outlined (with a worked sections re-call) or when sections selected part of it (how many of how many sections came back).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / outline
      Added value: +{
      +  "description": "Sections of a product too large to inline, largest first. Present only in place of productText.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One section of the product",
      +    "properties": {
      +      "bytes": {
      +        "description": "Size of the section text in bytes.",
      +        "type": "number"
      +      },
      +      "label": {
      +        "description": "Area name line of a zone segment (e.g., \"City of Seattle\").",
      +        "type": "string"
      +      },
      +      "name": {
      +        "description": "AFD section name (e.g., \"AVIATION\"), or a zone segment's zone codes as issued, ranges written NNN>MMM (e.g., \"FLZ076>078, IDZ001\"). Pass it, or any one zone code it covers, in sections.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "bytes"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / productText / description
      Previous value: -"Full narrative product text as issued by the forecaster. AFDs are typically 1,000-3,000 words covering synoptic setup, model guidance, and period-by-period reasoning."New value: +"Narrative product text as issued by the forecaster: the whole product, or the product header followed by each selected section when sections was given. Absent when outline is returned."
  3. Changed1 schema field changed
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `no_products`: Office code is unknown, or a valid office has no current product of the requested type (episodic types like SPS and HWO are commonly empty) Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `no_products`: Office code is unknown, or a valid office has no current product of the requested type (episodic types like SPS and HWO are commonly empty). Other values are possible when a failure originates below the handler."
  4. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "issuanceTime",
      +      "issuingOffice",
      +      "productCode",
      +      "productName",
      +      "productText",
      +      "wmoCollectiveId"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `no_products`: Office code is unknown, or a valid office has no current product of the requested type (episodic types like SPS and HWO are commonly empty) Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "no_products"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "issuanceTime",
      -  "issuingOffice",
      -  "productCode",
      -  "productName",
      -  "productText",
      -  "wmoCollectiveId"
      -]
  5. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description adds substantial behavioral detail beyond that: products over 24,000 bytes return an outline rather than full text, sections can be used on any size product, and selected sections return header plus matching sections and closing lines. This is exactly the kind of response-shape behavior an agent needs before calling.

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 front-loaded with the core action and default product, then proceeds through product types and the large-product outline behavior. It is dense but mostly earns its length, though some product-type definitions overlap with the enum descriptions in the schema.

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

Completeness5/5

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

An output schema exists, so return values need not be fully explained, and annotations cover the safety profile. The description still covers the complex parts an agent needs: product-type meanings, office-code sourcing, large-response outlining, section selection, and the fire-weather special case.

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 description coverage is 100%, so the baseline is 3, but the description adds meaningful cross-parameter semantics: office is usually the WFO code from nws_get_forecast, sections can target AFD section names or zone codes, and the fire workflow ties office, product_type, and sections together. It adds value beyond the schema descriptions without fully re-documenting every parameter.

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?

States a specific verb and resource: get the latest narrative forecast product from a WFO. It distinguishes the default AFD from HWO, ZFP, SPS, and FWF, and names the office-code source from nws_get_forecast, so an agent can tell what this tool is for without opening the schema.

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

Usage Guidelines4/5

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

Gives clear context for selecting product types and explicitly routes the fire-weather alert case to product_type FWF with the zone in sections. However, it does not directly contrast this tool with sibling nws_get_zone_forecast or give broader when-not guidance beyond the product-type distinctions.

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.