使用说明
IPMA气象MCP服务器(Python)
一个全面的模型上下文协议(MCP)服务器,提供从IPMA(Instituto Português do Mar e da Atmosfera)访问葡萄牙天气数据的权限。
数据源
所有数据均由 国际项目管理协会 (葡萄牙海洋与大气研究所,I.P.)
- API文件:https://api.ipma.pt/
- 天气预报每天更新两次(00 UTC和12 UTC)
- 时间单位为UTC(葡萄牙大陆/马德拉岛冬季加0小时,夏季加1小时;亚速尔群岛冬季加1小时,夏季减0小时)
特性
此MCP服务器通过以下工具提供对IPMA API的完全访问:
🌦️ 天气预报
-
获取预测 -葡萄牙城市5天天气预报
- 详细的每日预报,包括温度、降水、风
- 支持所有葡萄牙城市和岛屿(马德拉岛和亚速尔群岛)
-
get_daily_aggregate_预测 -所有地点的每日汇总预测
- 在一个查询中获取整个葡萄牙的预测
- 最多支持3天(今天、明天、后天)
⚠️ 天气警告
- 获取_天气_收益 -主动气象预警(最多3天)
- 警告类型:降水、风、雾、海洋搅动、雪、雷暴等。
- 意识水平:绿色(正常)、黄色、橙色、红色
- 包括受影响区域和时间段
🌊 海况
- 获取_预报 -沿海地区的海况预报(最多3天)
- 波高、波周期、波向
- 海面温度
- 覆盖葡萄牙所有沿海地区
🔥 火灾风险
- get_fire_risk -火灾风险预测(最多2天)
- 所有市政当局的RCM(Risco de Incêndio)分类
- 风险等级:低、中、高、极高、最高
☀️ 紫外线指数
- 获取_预测 -紫外线辐射指数预测(最多3天)
- 紫外线指数从低到极端
- 保护建议包括
🌡️ 气象站
- get_station_observations -气象站的气象观测
- 最后24小时的小时数据
- 温度、湿度、压力、风、降水、辐射
🔍 地震数据
- 获取地震数据 -地震活动信息(过去30天)
- 覆盖范围:葡萄牙大陆、亚速尔群岛、马德拉岛
- 地区筛选
📚 参考数据
-
list_可用城市 -列出所有可用位置
- 完整的城市和岛屿列表
- 按地区分组(大陆、马德拉、亚速尔群岛)
-
get_weather_type_descriptions -天气类型代码说明
- 葡萄牙语和英语描述
- 帮助解释预报中的天气类型ID
安装
- 安装依赖项:
pip install -e .
- 配置您的MCP客户端以使用此服务器:
对于Claude Desktop,请在配置文件中添加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["-m", "weather"],
"cwd": "/path/to/weather-server-python"
}
}
}
或使用 uv 为了更好的环境管理:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": ["run", "weather"],
"cwd": "/path/to/weather-server-python"
}
}
}
用法示例
配置后,您可以向Claude提出以下问题:
- 里斯本的天气预报如何
- “葡萄牙有任何活跃的天气预警吗?”
- “明天波尔图海岸的海况预报是什么?”
- “告诉我今天的火灾风险”
- “未来3天的紫外线水平是多少?”
- “从气象站1210881获取观测数据”
- “列出所有可用的葡萄牙城市”
- “亚速尔群岛记录了什么地震活动?”
API覆盖范围
此服务器实现了所有主要的IPMA开放数据端点:
✅ 天气预报3天
✅ 天气预报 每天长达 5 天 总计
✅ 天气预报 每天长达3天,每天汇总信息
✅ 地震信息, 过去30天 (亚速尔群岛, 大陆, 马德拉)
✅ 海洋状况预报长达3天,每天汇总信息
✅ 火灾风险预测长达2天,每天汇总信息
✅ 紫外线风险预测长达3天(紫外线指数)
✅ 气象站观测(时间数据,过去24小时)
与Open WebUI集成
IPMA MCP服务器可以通过以下方式与Open WebUI(v0.6+)集成 mcpo (MCP到OpenAPI代理),它将基于stdio的MCP服务器连接到Open WebUI可访问的REST端点。
install.sh快速入门
我们提供了一个安装助手脚本来设置环境:
# Make the script executable
chmod +x install.sh
# Run the installation
./install.sh
脚本将:
- 安装
uv如果尚未出现 - 创建虚拟环境
- 安装所有依赖项
- 验证安装
手动设置
1. 先决条件
- 打开已安装并正在运行的WebUI(例如,通过Docker):
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ --name open-webui --restart always \ ghcr.io/open-webui/open-webui:main - Python 3.10+
uv(通过安装curl -LsSf https://astral.sh/uv/install.sh | sh) - 克隆此存储库
2. 设置虚拟环境
cd /path/to/ipma-mcp-server
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
3. 测试MCP服务器
直接运行服务器(默认情况下使用stdio传输):
uv run python weather.py
这将在本地启动MCP服务器。按Ctrl+C停止。
4. 启动mcpo代理
安装mcpo(Open WebUI的官方MCP到OpenAPI代理):
uv tool install mcpo
将MCP服务器代理到端口8000上的OpenAPI(使用安全的API密钥):
uvx mcpo --port 8000 --api-key "your-secret-key" -- uv run python weather.py
- 测试:访问
http://localhost:8000/docs对于自动生成的OpenAPI模式 - 所有IPMA工具都应出现在文档中
Docker替代方案:
docker run -p 8000:8000 -v /path/to/ipma-mcp-server:/app \
ghcr.io/open-webui/mcpo:main \
--api-key "your-secret-key" -- python /app/weather.py
5. 添加到打开的WebUI
- 打开您的Open WebUI实例(例如。,
http://localhost:3000) - 首选 设置 (齿轮图标)> 工具 (如果是管理员,请选择“管理面板”>“外部工具”)
- 点击 +添加工具服务器
- 配置:
- 类型:OpenAPI(或MCP流式HTTP,如果可用)
- 统一资源定位符:
http://localhost:8000(完整基本URL) - 认证:带有API密钥的承载令牌(
your-secret-key)
- 保存并重新启动Open WebUI(如果提示)
集成体系结构
Open WebUI (Port 3000)
↓ HTTP REST calls
mcpo Proxy (Port 8000)
↓ stdio JSON-RPC
IPMA MCP Server (weather.py)
↓ HTTPS
IPMA API (api.ipma.pt)
有关完整的MCP文档,请参阅 打开WebUI MCP指南.
许可证
看 快速入门 有关MCP的更多信息,请参阅教程。
