README
🚀 KNMI 天气 MCP 服务器
这是一个快速的MCP服务器,可提供荷兰皇家气象研究所(KNMI)气象站的实时天气数据。它能从最近的KNMI气象站获取任何位置的最新10分钟测量数据,为用户带来便捷的天气信息服务。
🚀 快速开始
本服务器可快速获取荷兰任何位置的实时天气数据,通过简单的配置和操作即可投入使用。
✨ 主要特性
- 广泛的数据覆盖:可获取荷兰任何位置的天气数据。
- 智能站点查找:自动查找最近的KNMI气象站。
- 丰富的数据类型:提供实时测量数据,涵盖温度、湿度、风速和风向、降水量、能见度、大气压力等。
- 自然语言解释:对天气状况进行自然语言解释。
- 便捷的搜索功能:支持地点搜索功能。
- 详细的日志记录:提供详细的日志记录,方便问题排查和数据追溯。
📦 安装指南
先决条件
- Python 3.10 或更高版本
- KNMI API 密钥(从 KNMI 数据平台 获取)
uv包管理器
安装步骤
- 克隆仓库:
git clone <repository-url> 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 天气": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"--with",
"httpx",
"--with",
"netCDF4",
"--with",
"numpy",
"--with",
"pandas",
"--with",
"pydantic",
"--with",
"python-dotenv",
"--with",
"xarray",
"fastmcp",
"run",
"/Users/<username>/<git location>/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
可用工具
基础用法
- 获取天气自然语言解释:
await what_is_the_weather_like_in("Amsterdam")
- 获取原始天气数据:
await get_location_weather("Rotterdam")
- 搜索地点:
await search_location("Utrecht")
- 查找最近气象站:
await get_nearest_station(52.3676, 4.9041)
📚 详细文档
日志记录
应用程序日志存储在 logs/knmi_weather.log 文件中,提供有关 API 请求和响应、天气数据处理、错误消息、调试信息等方面的详细信息。
数据来源
此应用程序使用 KNMI 数据平台 API 从“Actuele10mindataKNMIstations”数据集获取数据,该数据集提供荷兰所有 KNMI 气象站的 10 分钟间隔测量值。
错误处理
该应用程序包括强大的错误处理功能,能够处理 API 密钥未设置或无效、无法连接到 KNMI 服务器、数据解析失败、网络问题等情况。
Scan to contact