get_high_tide_flooding_monthly
Retrieve monthly high tide flooding data for a specified station, customizable by date range, threshold level, and output format (JSON, XML, CSV) with LocalTides MCP Server.
Instructions
Get high tide flooding monthly count data for a station
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| begin_date | No | Start date (YYYYMMDD format) | |
| datum | No | Datum reference for DPAPI | |
| end_date | No | End date (YYYYMMDD format) | |
| format | No | Output format (json, xml, csv) | |
| station | Yes | Station ID | |
| threshold | No | Flood threshold level | |
| year | No | Year for analysis (YYYY format) |
Implementation Reference
- src/services/dpapi-service.ts:102-110 (handler)Handler function in DpapiService that fetches high tide flooding monthly count data from the NOAA DPAPI endpoint '/htf/monthly'.async getHighTideFloodingMonthly(params: Record<string, any>): Promise<any> { const { station, format = 'json', ...rest } = params; return this.fetchDpapi('/htf/monthly', { station, format, ...rest }); }
- src/schemas/dpapi.ts:40-48 (schema)Zod schema defining input parameters for the get_high_tide_flooding_monthly tool.export const HighTideFloodingMonthlySchema = z.object({ station: StationSchema, format: FormatSchema, datum: DpapiDatumSchema, threshold: ThresholdSchema, begin_date: z.string().optional().describe('Start date (YYYYMMDD format)'), end_date: z.string().optional().describe('End date (YYYYMMDD format)'), year: YearSchema }).describe('Get high tide flooding monthly count data');
- src/tools/derived-product-tools.ts:74-89 (registration)MCP tool registration for 'get_high_tide_flooding_monthly', including description, schema, and thin wrapper execute handler delegating to DpapiService.server.addTool({ name: 'get_high_tide_flooding_monthly', description: 'Get high tide flooding monthly count data for a station', parameters: HighTideFloodingMonthlySchema, execute: async (params) => { try { const result = await dpapiService.getHighTideFloodingMonthly(params); return JSON.stringify(result); } catch (error) { if (error instanceof Error) { throw new Error(`Failed to get high tide flooding monthly data: ${error.message}`); } throw new Error('Failed to get high tide flooding monthly data'); } } });