get_forecast_for_cell
Retrieve weather forecast data for a specific H3 cell using the WeatherXM Pro MCP Server. Specify date range and forecast type (daily or hourly) for accurate weather predictions.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| forecast_cell_index | Yes | The H3 index of the cell to get forecast for | |
| forecast_from | Yes | The first day for which to get forecast data (YYYY-MM-DD) | |
| forecast_include | Yes | Types of forecast to include | |
| forecast_to | Yes | The last day for which to get forecast data (YYYY-MM-DD) |
Implementation Reference
- src/index.ts:220-241 (handler)The asynchronous handler function that executes the tool logic: calls the WeatherXM API to fetch forecast data for a given H3 cell index and date range, returns JSON stringified response or handles errors.async ({ forecast_cell_index, forecast_from, forecast_to, forecast_include }) => { try { const response = await axiosInstance.get(`/cells/${forecast_cell_index}/forecast`, { params: { from: forecast_from, to: forecast_to, include: forecast_include, }, }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }], }; } catch (error: any) { if (axios.isAxiosError(error)) { return { content: [{ type: "text", text: `WeatherXM API error: ${error.response?.data.message ?? error.message}` }], isError: true, }; } throw error; } }
- src/index.ts:214-219 (schema)Zod schema defining the input parameters for the tool: forecast_cell_index (string), forecast_from (string, YYYY-MM-DD), forecast_to (string, YYYY-MM-DD), forecast_include (enum: 'daily' or 'hourly').{ forecast_cell_index: z.string().describe("The H3 index of the cell to get forecast for"), forecast_from: z.string().describe("The first day for which to get forecast data (YYYY-MM-DD)"), forecast_to: z.string().describe("The last day for which to get forecast data (YYYY-MM-DD)"), forecast_include: z.enum(['daily', 'hourly']).describe('Types of forecast to include'), },
- src/index.ts:212-242 (registration)The server.tool() call that registers the 'get_forecast_for_cell' tool with its schema and inline handler function.server.tool( "get_forecast_for_cell", { forecast_cell_index: z.string().describe("The H3 index of the cell to get forecast for"), forecast_from: z.string().describe("The first day for which to get forecast data (YYYY-MM-DD)"), forecast_to: z.string().describe("The last day for which to get forecast data (YYYY-MM-DD)"), forecast_include: z.enum(['daily', 'hourly']).describe('Types of forecast to include'), }, async ({ forecast_cell_index, forecast_from, forecast_to, forecast_include }) => { try { const response = await axiosInstance.get(`/cells/${forecast_cell_index}/forecast`, { params: { from: forecast_from, to: forecast_to, include: forecast_include, }, }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }], }; } catch (error: any) { if (axios.isAxiosError(error)) { return { content: [{ type: "text", text: `WeatherXM API error: ${error.response?.data.message ?? error.message}` }], isError: true, }; } throw error; } } );