使用说明
ECMWF开放式图表MCP服务器
MCP服务器,用于从ECMWF OpenCharts API获取天气图。建于 快速MCP.
安装
pip install -r requirements.txt
运行服务器
stdio模式(适用于克劳德桌面)
python ecmwf_charts_mcp.py
HTTP模式(用于远程访问)
python -c "from ecmwf_charts_mcp import mcp; mcp.run(transport='http', port=8000)"
部署到铁路(MCP HTTP传输)
此回购包括 Procfile 和 railway.toml 使用HTTP启动MCP服务器
Python入口点。铁路提供 PORT 环境变量自动。
步骤:
- 创建一个新的铁路项目并链接此存储库。
- 确保启动命令为
python ecmwf_charts_mcp.py(在中预先配置railway.toml). 服务器读取PORT从环境中启用HTTP模式并绑定到0.0.0.0. - 部署,然后配置支持MCP的客户端以连接到Railway URL(使用
/mcp如果您的客户端要求MCP端点,则选择路径)。
配置
克劳德桌面版
添加到Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 ~/.config/Claude/claude_desktop_config.json 在Linux上):
{
"mcpServers": {
"ecmwf-charts": {
"command": "python3",
"args": ["/path/to/ecmwf_charts_mcp.py"]
}
}
}
使用FastMCP命令行界面
您还可以使用FastMCP CLI运行服务器:
fastmcp run ecmwf_charts_mcp.py
可用工具
1. list_ecmwf_products
列出具有可选过滤器的可用图表产品。
参数:
filter_range(可选):“中等”、“次季节性”或“全部”filter_parameter(可选):“温度”、“风”、“位势”或“全部”
例子:
{
"filter_range": "sub-seasonal",
"filter_parameter": "temperature"
}
2. get_available_times
获取产品的有效时间和基准时间。
参数:
product_id:产品标识符(例如“extended-nomaly-z500”)base_time:ISO格式的基准时间(例如,“2026-01-20T00:00:00Z”)
例子:
{
"product_id": "extended-anomaly-z500",
"base_time": "2026-01-20T00:00:00Z"
}
3. fetch_ecmwf_chart
获取带有元数据的天气图图像。
参数:
product_id:产品标识符base_time:ISO格式的基准时间valid_time:ISO格式的有效时间
例子:
{
"product_id": "extended-anomaly-z500",
"base_time": "2026-01-20T00:00:00Z",
"valid_time": "2026-02-02T00:00:00Z"
}
退货:
- 图表元数据(文本)
- PNG图像(base64)
主要产品
次季节性(第2-6周)
extended-anomaly-z500:500 hPa高度异常extended-anomaly-2t:2m温度异常extended-anomaly-uv:10米风异常
中等范围(0-15天)
medium-2t-mean-spread:2m温度集合medium-t500-mean-spread:500百帕位势系综medium-10ws-mean-spread:10m风速集合medium-ens-wind:100米风概率
时间格式
次季节性产品每周使用一次:
- 基础:最新运行(例如,“2026-01-20T00:00:00Z”)
- 有效:每周步数(例如,“2026-02-02T00:00:00Z”、“2026-02-09T00:00:000Z”)
中档产品使用6小时间隔(先检查可用时间)。
用法示例
# List products
result = await call_tool("list_ecmwf_products", {
"filter_range": "sub-seasonal"
})
# Check available times
result = await call_tool("get_available_times", {
"product_id": "extended-anomaly-z500",
"base_time": "2026-01-20T00:00:00Z"
})
# Fetch chart
result = await call_tool("fetch_ecmwf_chart", {
"product_id": "extended-anomaly-z500",
"base_time": "2026-01-20T00:00:00Z",
"valid_time": "2026-02-02T00:00:00Z"
})
图表解释
500hPa位势异常
- 阳性(橙色/红色):高压脊,比正常温度高
- 负片(蓝色):低压槽,比正常冷
- 用于阻塞模式和温度预测
2m温度异常
- 供暖/制冷需求的直接指标
- 天然气消费量预测的关键
风异常
- 对风能生产很重要
- 影响温度平流模式
API 文档
完整的ECMWF OpenCharts API文档:https://charts.ecmwf.int/
许可证
麻省理工学院
