A Model Context Protocol (MCP) server for detecting, monitoring, and analyzing potential wildfires globally using multiple data sources including NASA FIRMS, OpenWeatherMap, and Google Earth Engine. This MCP server provides AI assistants with tools to detect and analyze wildfire activity anywhere in the world by integrating real-time satellite data, weather forecasts, air pollution metrics, and ge
Add this skill
npx mdskills install aliafsahnoudeh/wildfire-mcp-serverComprehensive wildfire monitoring MCP with multiple data sources and well-documented tools
1# Wildfire MCP Server23A Model Context Protocol (MCP) server for detecting, monitoring, and analyzing potential wildfires globally using multiple data sources including NASA FIRMS, OpenWeatherMap, and Google Earth Engine.45## Overview67This MCP server provides AI assistants with tools to detect and analyze wildfire activity anywhere in the world by integrating real-time satellite data, weather forecasts, air pollution metrics, and geographical information. It's designed to help identify potential wildfires and assess their environmental impact.89## Features1011- **Fire Detection**: Query NASA FIRMS (Fire Information for Resource Management System) for active fire hotspots12- **Weather Forecasting**: Get 5-day weather forecasts for specific locations13- **Air Pollution Monitoring**: Access current and historical air pollution data14- **Reverse Geocoding**: Convert coordinates to human-readable addresses15- **Fire Fuel Assessment**: Determine if a location contains potential wildfire fuel based on land cover data16- **Customizable Filtering**: Filter fires by radiative power, brightness temperature, and geographic boundaries1718## Prerequisites1920Configure API keys (if required):2122- NASA FIRMS Map Key23- OpenWeatherMap API Key24- Google Earth Engine credentials (if applicable)2526## Available Tools2728### `get_potential_wildfires`2930Get potential wildfires for a specific date using NASA FIRMS data.3132**Parameters:**3334- `date` (str, optional): Date in YYYY-MM-DD format. Defaults to current date.35- `frp` (float): Fire Radiative Power threshold (default: 1)36- `bright_ti4` (float): Brightness temperature threshold (default: 50)37- `in_iran` (bool): If True, filters fires to only show those within Iran's borders (useful for Iran-specific monitoring)38- `bounding_box` (BoundingBox, optional): Custom bounding box to limit search area to any geographic region3940### `get_address`4142Get the address for given coordinates.4344**Parameters:**4546- `latitude` (float): Latitude of the location47- `longitude` (float): Longitude of the location4849### `get_weather_forecast`5051Get 5-day weather forecast with 3-hour intervals.5253**Parameters:**5455- `latitude` (float): Latitude of the location56- `longitude` (float): Longitude of the location5758### `get_current_air_pollution_data`5960Fetch current air pollution data.6162**Parameters:**6364- `latitude` (float): Latitude of the location65- `longitude` (float): Longitude of the location6667### `get_historical_air_pollution_data`6869Fetch historical air pollution data for a date range.7071**Parameters:**7273- `latitude` (float): Latitude of the location74- `longitude` (float): Longitude of the location75- `start_date` (str): Start of period (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS)76- `end_date` (str): End of period (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS)7778### `is_fire_fuel`7980Check if a location contains potential wildfire fuel.8182**Parameters:**8384- `latitude` (float): Latitude of the location85- `longitude` (float): Longitude of the location8687**Returns:** Boolean indicating if location is in a potential wildfire fuel area8889## Testing9091### Using MCP Inspector9293```bash94npx @modelcontextprotocol/inspector python wildfire_mcp_server.py95```9697The timeout for the client needs to be increased since some data fetching operations can take a while. This can be done either by setting the config in the UI or by setting the following environment variables:9899```bash100export MCP_SERVER_REQUEST_TIMEOUT=9000000101export MCP_REQUEST_MAX_TOTAL_TIMEOUT=9000000102export MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS=true103```104105**Good date to test:** 2025-11-21 (known active fire day)106107### Running Test Scripts108109```bash110# Test individual components111uv run scripts/test_nasa_firms.py112uv run scripts/test_main_functionality.py113uv run scripts/test_overpass.py114```115116## Architecture117118The project is organized into several layers:119120- **`wildfire_mcp_server.py`**: Main server entry point with MCP tool definitions121- **`src/agents/`**: High-level agent classes that orchestrate domain services122 - `LikelyFireAgent`: Fire detection and filtering123 - `FireFuelAgent`: Land cover and fuel assessment124 - `AddressAgent`: Reverse geocoding125 - `WeatherForecastAgent`: Weather data retrieval126 - `AirPollutionAgent`: Air quality data127- **`src/domains/`**: Domain-specific integrations128 - `nasa_firms/`: NASA FIRMS fire data API129 - `open_weather_map/`: Weather and air pollution APIs130 - `google_earth_engine/`: Land cover data131 - `overpass/`: OpenStreetMap data132 - `planetary_computer/`: Microsoft Planetary Computer integration133134## Data Sources135136- **NASA FIRMS**: Active fire data from MODIS and VIIRS satellites137- **OpenWeatherMap**: Weather forecasts and air pollution metrics138- **Google Earth Engine**: Land cover classification139- **OpenStreetMap (Overpass)**: Geographic and administrative boundaries140141## License142143This project is licensed under a custom Evaluation and Non-Production License. See the [LICENSE](LICENSE) file for details.144145**Note**: Production use requires explicit written approval from the copyright holder.146147## Contributing148149Contributions are welcome for evaluation and improvement purposes. Please ensure any pull requests maintain the evaluation-only nature of this license.150151## Disclaimer152153This tool is designed for wildfire monitoring and research purposes. Fire detection data should be verified with official sources before taking any action. The accuracy of fire detection depends on satellite data availability and environmental conditions.154155## Support156157For issues, questions, or production licensing inquiries, please open an issue on the repository or contact the maintainers directly.158
Full transparency — inspect the skill content before installing.