@cyanheads/open-meteo-mcp-server

中文文档
0.6.0发布于 2026/11/10Apache-2.0ES Module近 30 天下载 2001

地理编码地点、获取全球天气预报、历史气候、海洋条件、空气质量和地形高地。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

中文使用文档
文档目录26 节
  1. 概览
  2. 工具
  3. 能力参考
  4. openmeteo_search_locations 工具
  5. openmeteo_get_forecast 工具
  6. openmeteo_get_historical 工具
  7. openmeteo_get_marine 工具
  8. openmeteo_get_air_quality 工具
  9. openmeteo_get_elevation 工具
  10. openmeteo_get_ensemble 工具
  11. openmeteo_get_flood 工具
  12. openmeteo_get_climate 工具
  13. openmeteo_dataframe_describe 工具
  14. openmeteo_dataframe_query 工具
  15. openmeteo_dataframe_drop 工具
  16. 特征
  17. 开始
  18. 配置
  19. 运行服务器
  20. 地方发展
  21. 夹克
  22. 项目结构
  23. 发展指南
  24. 归属
  25. 捐款
  26. 许可证

@ cyanheads/ open- meteo- mcp- server (中文(简体) )

地理编码地点、获取全球天气预报、历史气候、海洋条件、空气质量和地形高地。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

12 个工具

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework


概览

来自开放气象的全球天气:预报,历史回溯到1940年,海洋条件,空气质量,概率共通,河流排出,气候预测. 查查任何地点的名字, 抽取小时和每日变量, 运行 SQL 对大结果。 不需要 API 密钥 .

工具

工具说明
openmeteo_search_locations确定一个地名,以与国家、区域、时区和人口进行排序坐标
openmeteo_get_forecast目前的情况和每天每小时预报16天,过去最多92天,与最佳匹配者或选定的模特并肩进行
openmeteo_get_historical1940年至今,从重新分析档案到现在的每小时/每天的历史
openmeteo_get_marine波浪、膨胀和海平面状况:以公制或帝国单位计,目前、最多8个预报日或档案范围
openmeteo_get_air_quality模拟CAMS污染物、花粉和AQI:当前,最多7个预测日,或存档范围
openmeteo_get_elevation哥白尼DEM地势高地:最多1 000对坐标对,每对呼叫进行第一次抽样,其余报告重新提交
openmeteo_get_ensemble按成员分列的超额和不确定性预测(最多64个成员,最多35天)
openmeteo_get_floodGloFAS河流排出量:预测或日期范围为~6个月(接受自1984-01-01;排出量从1997-01-01起),来自无缝或所选择的v4型号
openmeteo_get_climate1950-2050年经偏差校正的每日CMIP6预测,最多7个模型
openmeteo_dataframe_describe列出在 DataCanvas 上设置的表格和列
openmeteo_dataframe_query运行只读的 SQL SELECT 相对于已安排的表格
openmeteo_dataframe_drop从 DataCanvas (opt- in) 中删除一个已分级的表格或视图

服务器还发布代理技能, open-meteo-guide (单位:千美元)skill://open-meteo-guide/SKILL.md源代码 skills/open-meteo-guide/:哪一个工具可以回答哪个问题,加上超常概率的门,霜,比较一个正常的,气候变化,冲浪斑点,河细胞,以及AQI计时.

能力参考

openmeteo_search_locations 工具

  • 一个空地 name ("巴黎",不是"法国巴黎"),可选 country (ISO 3166-1 alpha-2:两个字母,无论什么情况,从来不是国名)和 language (默认) en(三); count 1 - 10, 默认 5
  • 每个结果都带有坐标,一个IANA timezone, (中文(简体) ), country 编号 : country_code, (中文(简体) ), admin1 编号 : admin2, (中文(简体) ), population,以及 feature_code; 无匹配失败为 no_results
  • A 类 notice 旗上标有无效或分100 000人口的顶级相配,这往往意味着一个历史外来地名("Bangalore","Calcutta")
  • 缺少下面的本地标记查询 en (a) 用其文字所指的语文重审一次; effective_language 重试成功时命名它( r) :上海 → zh)),结果回到本地化

openmeteo_get_forecast 工具

  • 至少其中一个 current_variables, (中文(简体) ), hourly_variables,或 daily_variables (每个最多50个),每个也作为一个逗号连接字符串接受,并在Open-Meteo自己的密钥下接受 current, (中文(简体) ), hourly, (中文(简体) ), daily· ; forecast_days 1-16(违约7), past_days 0-92( 默认 0)
  • cell_selection (单位:千美元)land, (中文(简体) ), sea, (中文(简体) ), nearest)取出答题的网格:省略出题,Open-Meteo从陆地取出答题,所以一分出境外读取岸上条件. 设定 sea 在水上加一点(风能航行,冲浪,或离岸风能航行),在地上加一点,即是默认的。 回应 latitude 编号 : longitude 将响应的单元格命名
  • 时间戳 hourly 编号 : daily 记录 hourly_units 编号 : daily_units· ; current_variables 添加a current 来自15分钟数据的对象(interval 900个)加 current_units
  • 选择 models 读取 Open-Meteo best_match· ; models 比较确定型号(例如:. ncep_gfs_seamless, (中文(简体) ), ecmwf_ifs025, (中文(简体) ), dwd_icon_seamless; 更古老的拼写像 gfs_seamless ”). 每个小时和每天的栏目都有2+型号带有型号后缀 models 反应一致. current_variables 最多只使用一个模型(current_multi_model(中文(简体) )
  • 一个当时没有数据的区域模型从一个多模型反应中被放弃: notice 命名它,或者,当一个模型留下了无后缀的列时,说这些值不能归为模型;当每个被请求的模型都错过时,调用失败为: coverage_gap
  • 偏爱 past_days 结束 openmeteo_get_historical 在上周, 存档的 ERA5 组件滞后

openmeteo_get_historical 工具

  • start_date 财务报告和审定财务报表 end_date 所需(YYYY-MM-DD,从1940-01-01起),加上其中至少一个 hourly_variables 编号 : daily_variables,在预测工具上命名(列表或一个逗号连接字符串,也列在下方) hourly 编号 : daily(中文(简体) )
  • cell_selection (单位:千美元)land, (中文(简体) ), sea, (中文(简体) ), nearest与预测工具相同:省略了陆地细胞的答案,所以离岸点读取岸上的条件; sea 移动到水上
  • 选择 models 读取最佳匹配(IFS HRES + ERA5 + ERA5- Land,来源按日期不同);最多8个 models 针入出处。 ERA5家族在一周后运行, ecmwf_ifs 没有拖延,和 cerra 仅涵盖欧洲
  • 输出回声 models 返回时 date_range; 2+ 型号,每列带有模型名后缀. 此时没有数据的模型( :cerra 从多模式反应中放弃 notice 命名它,或当一个模型留下了无后缀的列时(era5,cerra),说这些值不能归结于模型

openmeteo_get_marine 工具

  • 每个呼叫一个窗口 : forecast_days 1-8 (上游默认7) 与 past_days 0-92年,或a start_date 编号 : end_date 存档范围可追溯到至少 2022 年 。 混合失败为 forecast_window_conflict,作为 date_range_incomplete,且上游范围以外的日期接受为 date_out_of_range
  • 至少其中一个 current_variables, (中文(简体) ), hourly_variables,或 daily_variables (波高、波长、波高、波高、波高、海平面温度); 被保护的水返回到近零波, 内地返回的点数为零(在 notice),海岸附近的一个陆地点从附近的一个有真实值的海细胞中解答而无通知(请检查答复是否) latitude 编号 : longitude 那是你所说的水 ocean_current_velocity 已经没有海洋了
  • current_variables 使用小时名称并添加一个 current 来自15分钟数据的对象(interval 900个)加 current_units,与任意一个窗口并列;每日名称失败为 variable_wrong_cadence
  • length_unit (单位:千美元)metric 编号 : imperial确定每个高度, sea_level_height_msl 包括,以米或英尺计; wind_speed_unit (单位:千美元)kmh, (中文(简体) ), mph, (中文(简体) ), ms, (中文(简体) ), kn(组数) ocean_current_velocity· ; temperature_unit (单位:千美元)celsius 编号 : fahrenheit(组数) sea_surface_temperature。Open-Meteo转换值 *_units 标记它们的地图( e)mph 读取 mp/h(中文(简体) )

openmeteo_get_air_quality 工具

  • 每个呼叫一个窗口 : forecast_days 1-7 (上游默认 5) 与 past_days 0-92年,或a start_date 编号 : end_date 存档范围为2022年8月(us_aqi 一天后开始)。 一样 forecast_window_conflict, (中文(简体) ), date_range_incomplete,以及 date_out_of_range 作为海洋工具的拒绝
  • 至少其中一个 current_variables 联合国 current 对象, interval 3600号或 hourly_variables:PM2.5,PM10,NO2,SO2,O3,CO,粉尘,花粉,欧美AQI. Pollen只为欧洲做模特 在花粉季节; 在其他地方它回来无效 notice 说吧
  • data_source: "CAMS" 将每个响应标记为建模网格数据,而不是站点测量

openmeteo_get_elevation 工具

  • 平行 latitudes[] 编号 : longitudes[] 最多为 1 000对的阵列; 长度不均, 以 coordinate_count_mismatch,在全数组上进行比较
  • 在一项上游请求中取样前100对(Elevation API的每个请求限制); unprocessed_count 说还有多少人 next_offset 何处恢复——重新提交 latitudes.slice(next_offset) 财务报告和审定财务报表 longitudes.slice(next_offset) 直至 next_offset 实值 null. 调用100个或更少的返回 0 编号 : null。每个样本的一对都算作一个呼叫 与 Open-Meteo 的每个IP 限制(每分钟600个) , 所以一分钟内的第七个100平方块会回来 rate_limited
  • elevations[] 按输入顺序,每个 { latitude, longitude, elevation_m } 哥白尼德国马克(~90米); elevation_m 实值 null 在DEM没有价值的情况下(纬度90),其余的呼叫没有成功

openmeteo_get_ensemble 工具

  • 至少其中一个 hourly_variables 编号 : daily_variables· ; forecast_days 1 - 35 (违约7), past_days 0-92. 大多数模型在16天内结束(ncep_gefs05 运行到第34天左右。过去,栏是无效的 notice 说数据结束之处
  • models 使用一个综艺名称(例如:. ecmwf_ifs025_ensemble51名成员; gem_global_ensemble, 21); 省略或空白选择 ecmwf_ifs025_ensemble,在 model
  • cell_selection (单位:千美元)land, (中文(简体) ), sea, (中文(简体) ), nearest)在预测工具上发挥作用:省略了,一个土地单元格答案;答复 latitude 编号 : longitude 将响应的单元格命名
  • 每个变量返回每个成员的列(temperature_2m_member01.)最多64名成员; member_count 排除控制运行。 在其覆盖范围以外被询问的区域模型作为一个不可重复的输入错误失败;切换到全球模型

openmeteo_get_flood 工具

  • daily_variables 需要(最多20个),全部为立方米/秒: river_discharge 加统计 river_discharge_mean 编号 : _median 编号 : _min 编号 : _max 编号 : _p25 编号 : _p75,在预测运行的日子里搭载综艺节目并重复 river_discharge 重新分析天数
  • 每个呼叫一个模式: forecast_days 1–210(目前的GloFAS运行时间约为6个月;后天无效),或 a start_date 编号 : end_date 1984-01-01年接受范围,但从1997-01-01开始排放,更早的日子是无效的。 混合失败为 forecast_days_conflict,作为 date_range_incomplete,上游范围以外的日期接受为 date_out_of_range
  • 选择 models 读取 seamless_v4数字 : consolidated_v4 2023-08-05年之前的重新分析, forecast_v4 从那时开始运行. models: ["consolidated_v4"] 阅读1997-01-01至2025-05-31年的再分析(该期间以外的数值,以及 forecast_days(三); forecast_v4 2023-06-01开通. 输出回声 models; 使用 2+ 型号,每列带有模型名后缀 notice 名称无跨度
  • 排出物来自离坐标最近的GloFAS 0.05°的网格细胞,不可靠地来自你所指的河流上的细胞;当值远低于河道所携带的时,将坐标跨出航道并进行比较. GloFAS 覆盖范围以外的 Null

openmeteo_get_climate 工具

  • start_date 编号 : end_date 1950-01-01至2050-12-31以及 daily_variables 需要( API 仅为每日); 最多 7 CMIP6 models,比如说. CMCC_CM2_VHR4, (中文(简体) ), MRI_AGCM3_2_S
  • 有了2+模型,每个变量被后缀为模型名;一个单一或省略的模型返回平原名. 模型不携带的变数是无效的
  • cell_selection (单位:千美元)land, (中文(简体) ), sea, (中文(简体) ), nearest与预测工具相同,但反应除外 latitude 编号 : longitude 当值随它而变化时,它们可以保持不变,所以它们不会显示哪个单元格已回答

openmeteo_dataframe_describe 工具

  • 拿着 canvas_id 返回一个溢出天气工具; 列出每个表格的 name, (中文(简体) ), kind, (中文(简体) ), row_count,加上画布 expires_at
  • 失败作为 canvas_not_enabled 当帆布关闭,或 canvas_not_found 当身份不明或超过其24小时滑行 TTL 时

openmeteo_dataframe_query 工具

  • canvas_id 加上只读 SELECT 对抗舞台 table_name· ; rows 握住第一个 limit 行( 默认 25, 每个整行, 数值从不剪切) 。 一个更大的 limit 返回最多为一万行(或 CANVAS_DEFAULT_ROW_LIMIT 当下)和a notice 这么说的. row_count 准确的总数和 truncated 实值 true 当它超过 rows; 页使用 OFFSET <rows.length> 下的一个 ORDER BY
  • 页面的大小取决于 limit 和所选的列,所以从一个成员后缀的组合表格中选择问题需要的列,而不是 SELECT *。一个回复最多载有8 000 000个行数据的字符(所写为JSON的行,这个字符需要按其逃出长度计算);一个较大的页面被拒绝,因为 result_too_large,永远不要剪接, 并且留言说有多少领先的行适合
  • 如果计数失败或运行过5秒,行仍然返回, row_count 是一个下限 count_error 说明原因(例如:. count_timeout(中文(简体) )
  • 失败作为 canvas_not_enabled, (中文(简体) ), canvas_not_found, (中文(简体) ), missing_table, (中文(简体) ), system_catalog_access (系统目录被封锁,DuckDB元数据视图的名称也一样) pg_class 用作列别名、CTE名称或表格别名),或 result_too_large。从查询引擎中转发的错误消息被切入到2000个字符,保留其代码和 reason

openmeteo_dataframe_drop 工具

  • 默认关闭: 列为已禁用直至 OPENMETEO_DATAFRAME_DROP_ENABLED=true
  • canvas_id 加上准确 table_name 从 openmeteo_dataframe_describe; 删除该表格或视图并返回 dropped 编辑 remaining_tables。未显示返回的名称 dropped: false,所以重复下降是安全的
  • 失败作为 canvas_not_enabled, (中文(简体) ), canvas_not_found,或 invalid_table_name (不是普通的 SQL 标识符,或保留的关键字)

特征

建造在 @cyanheads/mcp-ts-core: stdio和可流式的 HTTP 传输器,可插接式(none 编号 : jwt 编号 : oauth),可互换存储(in-memory, (中文(简体) ), filesystem, (中文(简体) ), Supabase, (中文(简体) ), Cloudflare KV/R2/D1),结构化记录,可选择的OpenTeleometry tracking.

Open-Meteo 专用设备 :

  • 没有非商业用途的 API 密钥; 商业用途需要 Open-Meteo 付费的 API 级
  • 专栏API 响应重塑为每时标记录 *_units 地图,在不同的预测和存档中使用相同的可变名称
  • Data Canvas 7个气象工具的外溢效应: CANVAS_PROVIDER_TYPE=duckdb (默认)超预算结果作为DuckDB表(答复载有 canvas_id, (中文(简体) ), table_name, (中文(简体) ), truncated: true; 与 none 它返回一个有边框的预览并 truncated: true
  • models 在预测,历史,综艺,气候,和洪水工具上不是允许列表,所以一个模型Open-Meteo在没有服务器更新的情况下添加了后期的作品

方便代理输出 :

  • 第一工作流程: openmeteo_search_locations 返回 IANA 数据 timezone 与坐标,准备任何气象工具 timezone 输入( 默认) auto(中文(简体) )
  • 可变列表和模型列表取一个数组或一个逗号连接字符串("temperature_2m,precipitation"; 计 数 *_variables 字段还回答 Open-Meteo 自己的 current, (中文(简体) ), hourly,以及 daily 工具有字段的键
  • 输入的拒绝 : variable_wrong_cadence (名称正确字段), request_too_large (将输入命名为窄), coverage_gap (数据集网格或模型域外的坐标), date_out_of_range (范围外的日期、海洋、空气质量、气候或洪水终点接受),以及 rate_limited; 仅 Too many concurrent requests 先重审 超过三次尝试的停电失败 upstream_unavailable,或 upstream_timeout 上次尝试超时时
  • 请求 URL 从未出现在错误数据或客户端可见日志中
  • 一个 notice 对于数据本身无法显示的每个响应:无服务的可变名称,在数据集覆盖范围外的无效,以及溢出行去的地方

开始

连接到主机实例, 没有安装 :

claude mcp add --transport http open-meteo-mcp-server https://open-meteo.caseyjhand.com/mcp

或者在当地运行它:

claude mcp add open-meteo-mcp-server -- npx -y @cyanheads/open-meteo-mcp-server

对于其他客户端,请将此添加到 MCP 配置文件中 :

{
  "mcpServers": {
    "open-meteo-mcp-server": {
      "command": "npx",
      "args": ["-y", "@cyanheads/open-meteo-mcp-server"]
    }
  }
}

非商业用途不需要 API 密钥; 商业用途需要 Open-Meteo 付费 API 级。对于 Docker 或源构建,参见 运行服务器。 。 。 .

配置

每个变量都是可选的.

变量说明默认
OPEN_METEO_API_BASE_URL预测和高地API基础URL.https://api.open-meteo.com
OPEN_METEO_ARCHIVE_BASE_URL历史档案 API Base URL.https://archive-api.open-meteo.com
OPEN_METEO_MARINE_BASE_URL海洋API基地URL.https://marine-api.open-meteo.com
OPEN_METEO_AIR_QUALITY_BASE_URLCAMS空气质量API基础URL.https://air-quality-api.open-meteo.com
OPEN_METEO_GEOCODING_BASE_URL地理编码 API 基础 URL.https://geocoding-api.open-meteo.com
OPEN_METEO_ENSEMBLE_BASE_URL集成 API 基础 URL.https://ensemble-api.open-meteo.com
OPEN_METEO_FLOOD_BASE_URLGloFAS洪水API基础URL.https://flood-api.open-meteo.com
OPEN_METEO_CLIMATE_BASE_URLCMIP6气候API基础URL.https://climate-api.open-meteo.com
CANVAS_PROVIDER_TYPEduckdb 阶段性超预算天气结果在DataCanvas上,并启用了数据框架工具; none 返回边框预览.duckdb
OPENMETEO_DATAFRAME_DROP_ENABLEDtrue 制造 openmeteo_dataframe_drop 可调用;否则列为已禁用.false
OPENMETEO_CLAMP_LIMITStrue 降低一个 openmeteo_dataframe_query limit (一) 超过按呼号计的上限,并附有通知; false 广告封顶为最大值并拒绝更大的值.true
MCP_TRANSPORT_TYPE运输: stdio 或者说 http。 。 。 .stdio
MCP_HTTP_PORTHTTP 服务器端口.3010
MCP_SESSION_MODEHTTP 会话模式 : stateless, (中文(简体) ), stateful,或 auto。 。 。 .stateless
MCP_AUTH_MODE认证 : none, (中文(简体) ), jwt,或 oauth。 。 。 .none
MCP_LOG_LEVEL日志级别 (debug, (中文(简体) ), info, (中文(简体) ), notice, (中文(简体) ), warning, (中文(简体) ), error) (中文(简体) ).info
LOGS_DIR日志文件目录(只有Node.js).<project-root>/logs
STORAGE_PROVIDER_TYPE存储后端 : in-memory, (中文(简体) ), filesystem, (中文(简体) ), supabase, (中文(简体) ), cloudflare-kv/r2/d1。 。 。 .in-memory
OTEL_ENABLED启用 打开几何。 。 。 .false

见 .env.example 用于完整可选覆盖列表.

运行服务器

地方发展

要求数 Bun v 1.4.4 (单位:千美元) 或更高(或Node.js v24+).

  • 克隆并安装 :

    git clone https://github.com/cyanheads/open-meteo-mcp-server.git
    cd open-meteo-mcp-server && bun install
    
  • 构建和运行 :

    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:stdio
    # or
    bun run start:http
    
  • 运行检查和测试 :

    bun run devcheck   # Lint, format, typecheck, security
    bun run test       # Vitest test suite
    bun run lint:mcp   # Validate MCP definitions against spec
    

夹克

docker run --rm -p 3010:3010 ghcr.io/cyanheads/open-meteo-mcp-server:latest

图像默认为 HTTP 传输、 无国籍会话模式和日志到 /var/log/open-meteo-mcp-server运行到一个 MCP 客户端的 stdio,使用 "command": "docker" 与 "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/open-meteo-mcp-server:latest"]为了在当地建设, docker build -t open-meteo-mcp-server .; OpenTeleometry 端点依赖性默认安装——用 --build-arg OTEL_ENABLED=false 以略去它们.

项目结构

目录目的
src/index.tscreateApp() 入口——注册工具,初始化Open-Meteo服务和DataCanvas.
src/config服务器特定环境变量与Zod解析并验证.
src/mcp-server/tools/definitions工具定义*.tool.ts),每个工具一个文件.
src/mcp-server/tools共享工具助手——模型目录,cadence验证,专栏重塑,外溢,响应通知.
src/services/open-meteoOpen-Meteo APIs的HTTP客户端——重试,错误分类,覆盖-gap拒绝.
src/services/canvas-accessor.tsDataCanvas 与可溢出工具共享访问器.
skills/通过 MCP 和 npm 软件包, Docker 图像,以及 .mcpb 捆绑( e)open-meteo-guide) (中文(简体) ).
tests/单位,整合,模糊,和烟雾测试.

发展指南

见 CLAUDE.md 发展准则和建筑规则。 简本:

  • 搬运工投掷,框架渔获量——否 try/catch 在工具逻辑中
  • 使用 ctx.log 请求范围伐木, ctx.state 租户范围储存
  • 登记册中的新工具 tools[] 阵列 src/index.ts
  • 环绕外部 API 调用: 验证 生 → 规范到域类型 → 返回输出计划; 永远不要编织缺失的字段

归属

气象数据来源 Open-Meteo.com (中文(简体) ),许可证 CC BY 4.0 (英语)。 。 。 .

捐款

问题值得欢迎。 提交前进行检查和测试:

bun run devcheck
bun run test

许可证

阿帕奇-2.0 — 见 自由主义 详细情况.

版本与发布记录

@cyanheads/open-meteo-mcp-server 共发布 32 个版本,首次发布于 2026/05/30;过去 12 个月发布了 32 个版本。

版本发布日期距今
0.6.0latest2026/11/104 天前
0.5.02026/10/2916 天前
0.4.22026/10/2421 天前
0.4.12026/10/131 个月前
0.4.02026/10/041 个月前
0.3.112026/09/221 个月前

关于 @cyanheads/open-meteo-mcp-server 的常见问题

@cyanheads/open-meteo-mcp-server 是什么?

地理编码地点、获取全球天气预报、历史气候、海洋条件、空气质量和地形高地。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

如何安装 @cyanheads/open-meteo-mcp-server?

在项目目录运行 npm install @cyanheads/open-meteo-mcp-server,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 open-meteo-mcp-server,可以用 npx open-meteo-mcp-server 直接运行。

@cyanheads/open-meteo-mcp-server 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cyanheads__open-meteo-mcp-server 是否存在。

@cyanheads/open-meteo-mcp-server 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cyanheads/open-meteo-mcp-server 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cyanheads/open-meteo-mcp-server 可以商用吗?

@cyanheads/open-meteo-mcp-server 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cyanheads/open-meteo-mcp-server 的下载量有多少?

根据 npm 官方下载统计,@cyanheads/open-meteo-mcp-server 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,001 次,日均约 67 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cyanheads/open-meteo-mcp-server 还在维护吗?

最新版本 0.6.0 发布于 2026/11/10(4 天前);至今共发布 32 个版本,其中过去 12 个月发布了 32 个;首次发布于 2026/05/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。