get_high_tide_flooding_projections
Generate high tide flooding projections for specific decades based on sea level rise scenarios, flood thresholds, and station data. Output available in JSON, XML, or CSV formats.
Instructions
Get high tide flooding decadal projections for sea level rise scenarios
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| datum | No | Datum reference for DPAPI | |
| decade | No | Decade for projections (e.g., "2050") | |
| format | No | Output format (json, xml, csv) | |
| scenario | No | Sea level rise scenario | |
| station | Yes | Station ID | |
| threshold | No | Flood threshold level |
Implementation Reference
- src/services/dpapi-service.ts:147-156 (handler)Core handler function implementing the tool logic by calling the NOAA DPAPI /htf/projections endpoint with processed parameters.async getHighTideFloodingProjections(params: Record<string, any>): Promise<any> { const { station, scenario = 'all', format = 'json', ...rest } = params; return this.fetchDpapi('/htf/projections', { station, scenario, format, ...rest }); }
- src/schemas/dpapi.ts:74-81 (schema)Zod schema for input validation of the get_high_tide_flooding_projections tool parameters.export const HighTideFloodingProjectionsSchema = z.object({ station: StationSchema, format: FormatSchema, scenario: ScenarioSchema, datum: DpapiDatumSchema, threshold: ThresholdSchema, decade: DecadeSchema }).describe('Get high tide flooding decadal projections');
- src/tools/derived-product-tools.ts:128-143 (registration)MCP tool registration including name, description, schema reference, and thin execute wrapper delegating to the service handler.server.addTool({ name: 'get_high_tide_flooding_projections', description: 'Get high tide flooding decadal projections for sea level rise scenarios', parameters: HighTideFloodingProjectionsSchema, execute: async (params) => { try { const result = await dpapiService.getHighTideFloodingProjections(params); return JSON.stringify(result); } catch (error) { if (error instanceof Error) { throw new Error(`Failed to get high tide flooding projections: ${error.message}`); } throw new Error('Failed to get high tide flooding projections'); } } });