KNMI气象MCP
FastMCP服务器,提供来自KNMI(荷兰皇家气象研究所)气象站的实时天气数据。此应用程序从荷兰任何位置最近的气象站获取最新的10分钟测量值。
特性
- 获取荷兰任何地点的天气数据
- 自动查找最近的KNMI气象站
- 提供实时测量,包括:
- 温度 - 湿度 - 风速与风向 - 降水 - 能见度 - 气压
- 天气状况的自然语言解释
- 位置搜索功能
- 详细日志记录
先决条件
- Python 3.10或更高版本
- KNMI API密钥(从 KNMI数据平台)
uv包管理器
安装
- 克隆存储库:
git clone
cd knmi-mcp- 创建一个
.env项目根目录中的文件:
KNMI_API_KEY=your_api_key_here运行服务器
使用Claude AI
要将此应用程序与Claude AI一起使用,请在项目文件夹中运行以下命令:
uv run fastmcp install src/knmi_weather_mcp/server.py这将把以下配置添加到您的Claude配置文件中(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"KNMI Weather": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"--with",
"httpx",
"--with",
"netCDF4",
"--with",
"numpy",
"--with",
"pandas",
"--with",
"pydantic",
"--with",
"python-dotenv",
"--with",
"xarray",
"fastmcp",
"run",
"/Users///knmi-mcp/src/knmi_weather_mcp/server.py"
]
}
}注意:如果你看到这样的错误:
spawn uv ENOENT更换 uv 带有完整路径的命令 uv 命令。在\*nix系统上,可以通过以下命令找到 which uv.
手动运行
用于开发或独立使用:
uv run fastmcp run src/knmi_weather_mcp/server.py可用工具
1.吃什么
获取荷兰任何地点当前天气状况的自然语言翻译。
例子:
await what_is_the_weather_like_in("Amsterdam")2.获取位置_天气
获取某个位置的原始天气数据。
例子:
await get_location_weather("Rotterdam")3.搜索位置
搜索荷兰的地点。
例子:
await search_location("Utrecht")4.获取区域状态
找到距离给定坐标最近的KNMI气象站。
例子:
await get_nearest_station(52.3676, 4.9041)日志记录
应用程序日志存储在 logs/knmi_weather.log 文件,提供以下详细信息:
- API请求和响应
- 气象数据处理
- 错误消息
- 调试信息
数据源
该应用程序使用KNMI数据平台API从“Actuele10mindataKNMIstations”数据集获取数据,该数据集提供荷兰所有KNMI气象站的10分钟间隔测量。
错误处理
该应用程序包括强大的错误处理功能,用于:
- 无效位置
- API身份验证问题
- 网络问题
- 数据分析错误
- 缺少测量值
