get_stations_bounds
Retrieve weather station data within a specified geographic bounding box using minimum and maximum latitude and longitude coordinates.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max_lat | Yes | Maximum latitude of the bounding box | |
| max_lon | Yes | Maximum longitude of the bounding box | |
| min_lat | Yes | Minimum latitude of the bounding box | |
| min_lon | Yes | Minimum longitude of the bounding box |
Implementation Reference
- src/index.ts:68-85 (handler)Handler function that makes an API call to retrieve stations within the specified bounding box using axiosInstance.async ({ min_lat, min_lon, max_lat, max_lon }) => { try { const response = await axiosInstance.get('/stations/bounds', { params: { min_lat, min_lon, max_lat, max_lon }, }); 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:62-67 (schema)Zod schema defining the input parameters for the get_stations_bounds tool.{ min_lat: z.number().describe("Minimum latitude of the bounding box"), min_lon: z.number().describe("Minimum longitude of the bounding box"), max_lat: z.number().describe("Maximum latitude of the bounding box"), max_lon: z.number().describe("Maximum longitude of the bounding box"), },
- src/index.ts:60-86 (registration)Full registration of the get_stations_bounds tool using server.tool, including name, schema, and inline handler.server.tool( "get_stations_bounds", { min_lat: z.number().describe("Minimum latitude of the bounding box"), min_lon: z.number().describe("Minimum longitude of the bounding box"), max_lat: z.number().describe("Maximum latitude of the bounding box"), max_lon: z.number().describe("Maximum longitude of the bounding box"), }, async ({ min_lat, min_lon, max_lat, max_lon }) => { try { const response = await axiosInstance.get('/stations/bounds', { params: { min_lat, min_lon, max_lat, max_lon }, }); 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; } } );