get_historical_observations
Retrieve weather data for a specific station and date from the WeatherXM Pro MCP Server to analyze historical weather observations.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) for historical observations | |
| station_id | Yes | The unique identifier of the station |
Implementation Reference
- src/index.ts:141-158 (handler)Handler function that fetches historical weather observations for a given station ID and date from the WeatherXM API, handles errors, and returns JSON-formatted response.async ({ station_id, date }) => { try { const response = await axiosInstance.get(`/stations/${station_id}/history`, { params: { date }, }); 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:137-140 (schema)Zod input schema defining required parameters: station_id (string) and date (string in YYYY-MM-DD format).{ station_id: z.string().describe("The unique identifier of the station"), date: z.string().describe("Date (YYYY-MM-DD) for historical observations"), },
- src/index.ts:135-159 (registration)Registration of the 'get_historical_observations' tool with the MCP server using server.tool(), including inline schema and handler.server.tool( "get_historical_observations", { station_id: z.string().describe("The unique identifier of the station"), date: z.string().describe("Date (YYYY-MM-DD) for historical observations"), }, async ({ station_id, date }) => { try { const response = await axiosInstance.get(`/stations/${station_id}/history`, { params: { date }, }); 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; } } );