get_latest_observation
Retrieve the most recent weather data for a specific station using the WeatherXM Pro MCP Server. Input the station ID to access updated observations.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| station_id | Yes | The unique identifier of the station |
Implementation Reference
- src/index.ts:116-131 (handler)The handler function that executes the tool logic: fetches the latest weather observation data from the WeatherXM API for the specified station_id and returns it as JSON text content.async ({ station_id }) => { try { const response = await axiosInstance.get(`/stations/${station_id}/latest`); 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:113-115 (schema)Zod schema defining the input parameters for the tool: station_id (string).{ station_id: z.string().describe("The unique identifier of the station"), },
- src/index.ts:111-132 (registration)MCP server.tool() call that registers the get_latest_observation tool, including its name, input schema, and handler function.server.tool( "get_latest_observation", { station_id: z.string().describe("The unique identifier of the station"), }, async ({ station_id }) => { try { const response = await axiosInstance.get(`/stations/${station_id}/latest`); 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; } } );