内容
# 野火MCP服务器
用于全球范围内检测、监测和分析潜在野火的多源数据,包括NASA FIRMS、OpenWeatherMap和Google Earth Engine。
## 概述
该MCP服务器为AI助手提供工具,通过整合实时卫星数据、天气预报、空气污染指标和地理信息,检测和分析全球任何地区的野火活动。旨在帮助识别潜在野火并评估其环境影响。
## 功能特点
- **火灾检测**:查询NASA FIRMS(火灾资源管理系统)获取活跃火灾热点
- **天气预报**:获取特定位置的5天天气预报
- **空气污染监测**:获取当前和历史空气污染数据
- **反向地理编码**:将坐标转换为人类可读的地址
- **火灾燃料评估**:根据土地覆盖数据确定某个位置是否包含潜在野火燃料
- **可自定义过滤**:按辐射功率、亮温和地理边界过滤火灾
## 前置条件
配置API密钥(如果需要):
- NASA FIRMS地图密钥
- OpenWeatherMap API密钥
- Google Earth Engine凭证(如果适用)
## 可用工具
### `get_potential_wildfires`
使用NASA FIRMS数据获取特定日期的潜在野火。
**参数:**
- `date`(str,可选):YYYY-MM-DD格式的日期。默认为当前日期。
- `frp`(float):火灾辐射功率阈值(默认:1)
- `bright_ti4`(float):亮温阈值(默认:50)
- `in_iran`(bool):如果为True,则仅显示伊朗境内火灾(适用于伊朗特定监测)
- `bounding_box`(BoundingBox,可选):自定义边界框,限制搜索区域到任意地理区域
### `get_address`
获取给定坐标的地址。
**参数:**
- `latitude`(float):位置纬度
- `longitude`(float):位置经度
### `get_weather_forecast`
获取5天天气预报,间隔3小时。
**参数:**
- `latitude`(float):位置纬度
- `longitude`(float):位置经度
### `get_current_air_pollution_data`
获取当前空气污染数据。
**参数:**
- `latitude`(float):位置纬度
- `longitude`(float):位置经度
### `get_historical_air_pollution_data`
获取历史空气污染数据,指定日期范围。
**参数:**
- `latitude`(float):位置纬度
- `longitude`(float):位置经度
- `start_date`(str):期间开始(YYYY-MM-DD或YYYY-MM-DD HH:MM:SS)
- `end_date`(str):期间结束(YYYY-MM-DD或YYYY-MM-DD HH:MM:SS)
### `is_fire_fuel`
检查位置是否包含潜在野火燃料。
**参数:**
- `latitude`(float):位置纬度
- `longitude`(float):位置经度
**返回:** 布尔值,指示位置是否在潜在野火燃料区域
## 测试
### 使用MCP检查器
```bash
npx @modelcontextprotocol/inspector python wildfire_mcp_server.py
```
客户端超时时间需要增加,因为某些数据获取操作可能需要较长时间。这可以通过在UI中设置配置或设置以下环境变量来实现:
```bash
export MCP_SERVER_REQUEST_TIMEOUT=9000000
export MCP_REQUEST_MAX_TOTAL_TIMEOUT=9000000
export MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS=true
```
**测试日期:** 2025-11-21(已知活跃火灾日)
### 运行测试脚本
```bash
# 测试单个组件
uv run scripts/test_nasa_firms.py
uv run scripts/test_main_functionality.py
uv run scripts/test_overpass.py
```
## 架构
项目组织成多个层:
- **`wildfire_mcp_server.py`**:MCP工具定义的主服务器入口点
- **`src/agents/`**:协调领域服务的高级代理类
- `LikelyFireAgent`:火灾检测和过滤
- `FireFuelAgent`:土地覆盖和燃料评估
- `AddressAgent`:反向地理编码
- `WeatherForecastAgent`:天气数据检索
- `AirPollutionAgent`:空气质量数据
- **`src/domains/`**:特定领域集成
- `nasa_firms/`:NASA FIRMS火灾数据API
- `open_weather_map/`:天气和空气污染API
- `google_earth_engine/`:土地覆盖数据
- `overpass/`:OpenStreetMap数据
- `planetary_computer/`:微软行星计算机集成
## 数据源
- **NASA FIRMS**:来自MODIS和VIIRS卫星的活跃火灾数据
- **OpenWeatherMap**:天气预报和空气污染指标
- **Google Earth Engine**:土地覆盖分类
- **OpenStreetMap(Overpass)**:地理和行政边界
## 许可证
该项目在自定义评估和非生产许可证下许可。有关详细信息,请参见 [LICENSE](LICENSE) 文件。
**注意:** 生产使用需要版权持有人的明确书面批准。
## 贡献
欢迎为评估和改进目的做出贡献。请确保任何拉取请求都保持此许可证的仅限评估性质。
## 免责声明
该工具设计用于野火监测和研究目的。在采取任何行动之前,应使用官方来源验证火灾检测数据。火灾检测的准确性取决于卫星数据可用性和环境条件。
## 支持
对于问题、疑问或生产许可查询,请在存储库上打开问题或直接联系维护人员。