import asyncio from src.mcp_weather_server.tools import geographic_tools class LocationAgent: async def get_locations(self, state, district): print(f"Fetching villages for {district}, {state}...") villages_response = await geographic_tools.list_villages(state=state, district=district) if "error" in villages_response: print(f"Error: {villages_response['error']}") return None locations = [] for village in villages_response["villages"]: print(f"Getting coordinates for {village}...") coordinates_response = await geographic_tools.reverse_geocode(location_name=village) if "error" in coordinates_response: print(f"Error: {coordinates_response['error']}") continue locations.append({ "village": village, "latitude": coordinates_response["latitude"], "longitude": coordinates_response["longitude"] }) return locations async def main(): agent = LocationAgent() locations = await agent.get_locations(state="bihar", district="patna") if locations: print("\n--- Locations ---") for loc in locations: print(f"Village: {loc['village']}, Lat: {loc['latitude']}, Lon: {loc['longitude']}") print("-----------------") if __name__ == "__main__": asyncio.run(main())