Weather MCP Server by Meteosource

com.meteosource由 meteosource.com 发布官方发布者v0.1.2更新于 Nov 2, 2026

Forecasts, severe-weather alerts, air quality, 20-year weather history, solar and wind production.

已验证Streamable HTTP可网页运行位置与生活数据与分析

概览

AI 生成的概览

由 Meteosource 托管的 MCP 服务器,让助手获取天气预报、恶劣天气警报、空气质量、20 年历史天气以及光伏和风电发电量数据。

可以做什么
  • 把地名、邮编或经纬度解析为地点 ID
  • 获取最多 20 个地点的实时、逐小时、逐日、逐分钟预报及预警
  • 查询官方恶劣天气警报,适合高频轮询
  • 查询历史天气,支持按日或按月聚合、常年平均值和风速分布
  • 获取未来约四天的逐小时空气质量与污染物预报
  • 根据站点与装机参数估算光伏系统和风电场的过去与未来发电量
适用场景
适合需要助手回答天气问题、同时监控多地天气警报、把历史天气与常年值对比,或评估太阳能与风电装机情况的场景,无需自行编写 API 代码。
运行要求
远程 Streamable HTTP 端点,无需安装或自托管。需要 Meteosource API 密钥,通过 Authorization 请求头以 Bearer 令牌发送(也接受 X-API-Key 请求头)。密钥所属套餐决定可用工具:天气工具需天气类套餐,发电量工具需 Renewables 套餐。需能通过 HTTPS 访问该托管端点。
安装前请注意
API 密钥属于凭据,会随每次请求发送,且在某些客户端配置中需明文写入,请勿将此类文件纳入版本控制。调用会消耗密钥套餐的配额和速率限制,长时间的历史数据请求可能超过客户端默认超时。服务会记录调用发生、所用工具及结果。数据由 Meteosource 代为获取。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Weather MCP Server by Meteosource,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.meteosource%2Fweather/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "weather-by-meteosource": {
      "type": "http",
      "url": "https://mcp.meteosource.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

Weather MCP Server by Meteosource

Weather data for AI agents. Meteosource hosts the server at

https://mcp.meteosource.com/mcp

It speaks the Model Context Protocol over Streamable HTTP. Connect it to Claude Code, Claude Desktop, Codex, Antigravity or any other MCP client, send your Meteosource API key in a header, and the agent can look up forecasts, official weather warnings, air quality, twenty years of historical weather and the production of PV systems and wind farms.

There is nothing to install and nothing to host. The server keeps no key of its own: every request is served on the key it carries, within the plan that key is on.

Tools

ToolWhat it does
search_placesTurns a place name, a postal code or coordinates into a place_id for the other tools
get_forecastCurrent conditions, hourly (up to 168 h) and daily (up to 30 days) forecast, minute-by-minute precipitation and warnings for up to 20 locations in one call; a variables filter keeps the answer small
get_alertsOfficial severe-weather warnings for up to 20 locations; returns only the locations that have one. USA, EU and Canada
get_weather_historyPast weather, hourly (up to 14 days per call), daily or monthly (up to 366 days per call), aggregated on the server. normals=true adds long-term normals and records; wind_distribution gives hours per wind-speed bin for turbine siting
get_air_qualityHourly air quality about four days ahead: index, PM10, PM2.5, NO₂, SO₂, O₃ and more
get_solar_productionOutput of a PV system, given its location, module and inverter power, tilt and orientation: power per hour, energy per day or month, from 20 years back to four days ahead
get_wind_productionOutput of a wind farm, given its location, turbine model, count or capacity, hub height and terrain: power per hour, energy per day or month, from 20 years back to four days ahead

The server tells the agent how the tools fit together, so a question like "will it rain in Brno tomorrow" ends up as a search_places call followed by get_forecast without you spelling that out.

Before you connect

You need a Meteosource API key. Sign up at meteosource.com (the free plan is enough to try the forecast tools) and copy the key from your account.

The key travels with every request in the Authorization header as Bearer <key>. Each setup below comes down to two values: the URL above and that header.

The rest the server works out itself. It asks Meteosource which plan the key is on and serves the tools that plan includes; a tool outside the plan answers with a sentence saying so. See Plans and limits.

Connect

Claude Code

One command:

bash
claude mcp add --transport http meteosource https://mcp.meteosource.com/mcp \  --header "Authorization: Bearer YOUR_METEOSOURCE_API_KEY"

This registers the server for the current project. Add --scope user to have it in every project. claude mcp list shows whether it connected; inside a session, /mcp lists the tools.

To share the setup with a team without sharing the key, commit a .mcp.json at the project root and let everyone keep their key in an environment variable:

json
{  "mcpServers": {    "meteosource": {      "type": "http",      "url": "https://mcp.meteosource.com/mcp",      "headers": {        "Authorization": "Bearer ${METEOSOURCE_API_KEY}"      }    }  }}

Claude Desktop and claude.ai

Connectors belong to your account, so one added on the web is also there in the desktop app and the other way round.

  1. Open Customize > Connectors (in the desktop app: Settings > Connectors) and click Add custom connector.
  2. Name it Meteosource; the URL is https://mcp.meteosource.com/mcp.
  3. Under Authentication choose No sign-in.
  4. Under Request headers add Authorization with the value Bearer YOUR_METEOSOURCE_API_KEY. Type the word Bearer and the space yourself: Claude sends the value exactly as you enter it.
  5. Click Add. In a chat, open the + menu, choose Connectors and switch Meteosource on.

On Team and Enterprise plans an Owner adds the connector under Organization settings > Connectors and members connect to it from Customize > Connectors. The free plan allows one custom connector.

Codex

Codex CLI, the Codex app and the IDE extension read one file, ~/.codex/config.toml, so the server is configured once for all three. From a terminal:

bash
codex mcp add meteosource --url https://mcp.meteosource.com/mcp \  --bearer-token-env-var METEOSOURCE_API_KEY

and export METEOSOURCE_API_KEY in your shell profile. The section this writes to the file:

toml
[mcp_servers.meteosource]url = "https://mcp.meteosource.com/mcp"bearer_token_env_var = "METEOSOURCE_API_KEY"

The Codex app has its own dialog (Settings > MCP servers > Add server, type Streamable HTTP), but no field for the key. If the app shows the server as failed, it did not get the variable: an app started from the Dock or the Start menu does not see what you export in a terminal. Put the key in the file instead:

toml
[mcp_servers.meteosource]url = "https://mcp.meteosource.com/mcp"http_headers = { Authorization = "Bearer YOUR_METEOSOURCE_API_KEY" }

Codex gives a tool call 60 seconds by default. The first request for a year of archive at a location sends 365 requests to Meteosource and can take longer than that, so give this server more time:

toml
tool_timeout_sec = 600

Restart Codex after editing the file (in the app, Restart on the MCP servers page). codex mcp list shows the result; /mcp in a session lists the connected servers.

Antigravity

The IDE and the CLI (agy) share one configuration file: ~/.gemini/config/mcp_config.json for all projects, or .agents/mcp_config.json inside a project. Add:

json
{  "mcpServers": {    "meteosource": {      "serverUrl": "https://mcp.meteosource.com/mcp",      "headers": {        "Authorization": "Bearer YOUR_METEOSOURCE_API_KEY"      }    }  }}

The key is written out literally; Antigravity does not expand environment variables in this file. If you use the project-level file, keep it out of version control.

In the IDE the same file is reachable from the agent panel: the … menu, MCP Servers, Manage MCP Servers, View raw config. In the CLI, /mcp opens the MCP manager, which shows the connection status and reloads the configuration.

Other clients

Any client that supports MCP over Streamable HTTP works with the same two values, the URL and the header. The server also accepts the key as X-API-Key: <key>, for clients that have a field for an API key but not for a whole header.

Try it

  • What's the weather in Brno this weekend?
  • Are there any weather warnings for Prague, Vienna and Munich right now?
  • Compare last January in Berlin with the long-term normal, day by day.
  • How many hours of wind above 10 m/s did 49.2, 16.6 see in 2025, month by month?
  • Air quality in Kraków for the next two days, hour by hour.
  • How much would a 10 kWp south-facing roof at 50.08, 14.43 have produced last week? (Renewables plan)

Plans and limits

One key is on one Meteosource plan, and the plan decides what the server serves. The weather tools are for the Free, Startup and Standard plans; what each plan includes, and how far back its archive reaches, is on the pricing page. The production tools need the Renewables plan, which in turn has no weather tools.

Days older than the plan's archive need Meteosource's historical add-on. Without it the API refuses such a day with "not allowed to access historical data this old"; the tool reports that for the location concerned and the rest of the call succeeds, so start inside the plan's range.

Per call: up to 20 locations; hourly archive and production up to 14 days, daily or monthly up to 366 days; at most 400 location-days (locations × days) in one call, so a long analysis is several calls. Each location, and each archive or production day, is one request against the key's quota, at the rate limit of its plan. The server keeps a cache, so repeating a call soon afterwards usually costs little or nothing. Cached data is cleared after a while, so a repeat after a longer gap counts against the quota again.

What the agent receives

Time series come back as tables, columns once and rows as arrays, with nested fields flattened (wind_speed, probability_storm, cloud_cover_total). That is four to seven times fewer tokens than the raw API: a week of hourly forecast is about 12 kB, a year of daily archive about 16 kB. The variables parameter trims it further when the agent only needs a few fields. Units default to the local convention of each location; units="metric" forces SI.

Your key and your data

  • Your key is used only to call Meteosource on your behalf. It is never stored in full and never appears in a URL.
  • Caches are kept per key. Nothing fetched for one key is ever served to another.
  • The service records that a call happened, which tool it used and how it went, so the service can be operated.
  • HTTPS only. A request over plain HTTP is refused, so a key cannot be sent in the clear by mistake.

Troubleshooting

The tools appear in the client without a key; only a tool call needs one. When a call fails, the agent gets a sentence it can show you.

The agent reportsWhat to do
"No Meteosource API key was supplied…"The header did not arrive. Check its name and that the value starts with Bearer (with the space).
"Meteosource does not know this API key…"The key is mistyped or revoked. Copy it again from your account.
"This Meteosource API key is disabled…" (or blocked, revoked)Contact Meteosource support.
"This API key is on the 'standard' tier, which has no production endpoints…"The production tools need the Renewables plan.
"This API key is on the 'renewables' tier, which has only the production endpoints…"The weather tools need a weather plan.
"Meteosource cannot verify this API key right now…"Meteosource's key service did not answer. Try again in a few minutes.
"Meteosource request quota exceeded for this API key…"The plan's request quota is used up for the period.
"not allowed to access historical data this old" for a locationThe day is outside the plan's archive. Shorten the range or add the historical add-on.
"This call would need N location-days (limit 400)…"Split the request into shorter ranges or fewer locations.
The call times out in the clientA first archive call over many location-days takes a while. Raise the client's timeout (Codex: tool_timeout_sec) or ask for a shorter range first; the second run is served from cache.

Questions about your key or plan go to Meteosource support. For the server itself, open an issue in this repository.

About this repository

This repository holds the documentation of the hosted server and its entry for the MCP Registry, server.json. The server is listed there as com.meteosource/weather; clients and catalogs that read the registry pick it up from that entry. The server itself runs at Meteosource; there is nothing here to install.

License

MIT, see LICENSE.

来源:README.md,提交 89b6451

工具

7

search_places

Find locations and their Meteosource place_id. Use this first to resolve city names, postal codes or coordinates into place_id values for the other weather tools. Provide either `query` (place name or postal code) to search, or `lat` + `lon` to find the nearest known place. Returns up to 10 matches ordered by relevance, each with place_id, administrative area, country, coordinates and timezone. Note: lat/lon are returned in degree-letter format (e.g. "50.08804N").

输入参数latlonquerylanguage

get_forecast

Weather forecast for up to 20 locations in one call. Sections (comma-separated): 'current' (now), 'hourly' (up to 168 h ahead, trimmed to `hours`), 'daily' (up to 30 days ahead, trimmed to `days`), 'minutely' (precipitation minute-by-minute, higher tiers), 'alerts' (official weather warnings, startup tier and above), or 'all'. Use `variables` to keep only specific fields (e.g. ["temperature", "wind", "precipitation", "probability", "irradiance"]) and reduce output size — recommended when querying many locations. Timezone defaults to each location's local time; units default per-country ('metric' forces SI). Forecast horizon depends on the subscription tier (free: 7 days). Output: time series (hourly, daily, minutely) are tables — `columns` listed once and `rows` as arrays in column order; nested API groups are flattened with underscores (wind_speed, probability_storm, cloud_cover_total). `units` is given once at the top level when it is the same for every location.

输入参数dayshoursunitslanguagesectionstimezonelocations必填variables

get_alerts

Official weather warnings (severe weather alerts) for up to 20 locations. Returns only locations that currently have an active alert, with event type, severity, validity window and headline — an empty list means all clear. Cheap to call frequently; designed for monitoring/polling. Coverage: USA, EU countries and Canada. Requires the startup tier or higher (not available on the free tier).

输入参数languagelocations必填

get_weather_history

Historical weather (archive) with server-side aggregation. The archive holds 20 years, but how much of it a key may read depends on its plan: startup includes the last 7 days, standard the last year, premium and flexi all 20 years; byvalue reaches 366 days back and no further. Older days need Meteosource's paid historical add-on (billed per location and day); without it the API refuses such a day with "not allowed to access historical data this old", reported per location, so start inside the plan's range. Dates are YYYY-MM-DD, inclusive. Granularity: 'hourly' (raw hours, max 14 days per call), 'daily' (per-day min/max/avg/sum statistics, max 366 days) or 'monthly' (folded from daily, max 366 days per call — call repeatedly for multi-year analyses; results are cached so repeats are cheap). Variables (default: temperature, precipitation, wind): cape, cloud_cover, dew_point, evaporation, feels_like, humidity, irradiance, ozone, precipitation, precipitation_type, pressure, soil_temperature, surface_temperature, temperature, weather, wind, wind_distribution. Aggregations per variable: temperature min/max/avg, precipitation sum, wind speed avg + gusts max, irradiance sum in Wh/m2 (useful for PV analysis), weather = most frequent code of the day, precipitation_types = kinds seen that day (e.g. "rain,snow"; "none" when dry) — use weather and precipitation_type to document what happened (snow, fog, thunderstorm). wind_distribution (daily/monthly; for wind-turbine siting) = hours per 10 m wind-speed bin (wind_hours_0_2 … wind_hours_10_plus) and wind_power_density_w_m2 = 1/2 * 1.225 * mean(v^3) at 10 m — scale to hub height yourself (the API has no hub-height wind). `normals=true` (daily/monthly) adds long-term columns for each calendar day: temperature_normal_avg/min/max, temperature_record_min/max, wind_normal_speed, wind_record_gusts, precipitation_normal_sum and

输入参数unitsdate_to必填normalstimezonedate_from必填locations必填variablesgranularity

get_air_quality

Hourly air-quality (smog) forecast for up to 20 locations, about 4 days ahead. Columns: `air_quality` (index, 1 = good, higher = worse) and pollutant surface concentrations — default pm10, pm25, no2_surface, so2_surface, ozone_surface; also available via `variables`: co_surface, no_surface, ozone_total, aerosol_550, dust_550nm, dust_mixing_ratio_05. Output is a table per location (`columns` once, `rows` as arrays), trimmed to `hours`. Not available on the free tier.

输入参数hourstimezonelocations必填variables

get_solar_production

Production of photovoltaic systems, past and forecast, for up to 20 sites. Each site is lat + lon plus the installation: module_kw (installed kWp; use 1 to get specific yield per kWp), inverter_kw (defaults to module_kw), tilt (degrees from horizontal, default 30) and orientation (azimuth the modules face, clockwise from north: 180 = south, the default). Dates are YYYY-MM-DD, inclusive, from up to 20 years back to 4 days ahead, so one call can cover last week's actual weather and the coming days. The renewables plan includes the last 3 years; older days need the paid historical add-on, otherwise the API refuses them ("historical data this old"), reported per site. Granularity: 'hourly' (power at each full hour, max 14 days per call), 'daily' or 'monthly' (energy, max 366 days per call — call repeatedly for multi-year yield; past days are cached so repeats are cheap). Columns: production_kw = output of the system at that hour (an instantaneous value); production_kwh = energy of the day or month, summed from those hourly values; production_max_kw = its peak. `variables` adds the weather behind the production: irradiance (ghi, dni, dhi in W/m2 hourly; ghi/dni/dhi_sum_wh_m2 daily and monthly), temperature, cloud_cover, humidity, dew_point, pressure, snowfall (flag per hour; snowfall_hours daily and monthly). Each site+day costs one API request on first fetch; a single call is capped at 400 site-days — split longer ranges into multiple calls. Needs a key on the renewables tier. Output: `columns` once at the top level; each site has `rows` as arrays in column order.

输入参数sites必填unitsdate_to必填timezonedate_from必填variablesgranularity

get_wind_production

Production of wind farms, past and forecast, for up to 20 sites. Each site is lat + lon plus the farm: turbine_model (catalogue below), exactly one of turbine_count or total_capacity (MW), hub_height (metres, default 100) and roughness of the surrounding terrain (water, open, farmland — the default, suburban, urban). Dates are YYYY-MM-DD, inclusive, from up to 20 years back to 4 days ahead, so one call can cover last week's actual weather and the coming days. The renewables plan includes the last 3 years; older days need the paid historical add-on, otherwise the API refuses them ("historical data this old"), reported per site. Granularity: 'hourly' (power at each full hour, max 14 days per call), 'daily' or 'monthly' (energy, max 366 days per call — call repeatedly for multi-year yield; past days are cached so repeats are cheap). Columns: production_mw = output of the whole farm at that hour (an instantaneous value); production_mwh = energy of the day or month, summed from those hourly values; production_max_mw = its peak. `variables` adds the weather behind the production: wind (10 m above ground, not hub height: wind_10m_speed, wind_10m_gusts and wind_10m_angle hourly; speed avg/max and gusts max daily and monthly), temperature, dew_point, pressure. Turbine catalogue (series + rotor diameter in m / rated power in kW): Adwen AD116/5000; Enercon E48/800, E-53/800, E-70/2000, E-70/2300, E-82/2000, E-82/2300, E-82/2350, E-82/3000, E-92/2350, E-101/3050, E-101/3500, E-115/3000, E-115/3200, E-126/4200, E-126/7500, E-126/7580, E-141/4200; Eno ENO100/2200, ENO114/3500, ENO126/3500; GE GE100/2500, GE103/2750, GE120/2500, GE120/2750, GE130/3200; Nordex N90/2500, N100/2500, N117/2400, N131/3000, N131/3300, N131/3600; Senvion MM92/2050, MM100/2000, S104/3400, S114/3200, S114/3400, S122/3000, S122/3200, S126/6150, S152/6330; aerodyn SCD168/8000; Siemens SWT113/2300,

输入参数sites必填unitsdate_to必填timezonedate_from必填variablesgranularity

版本历史

1
  1. v0.1.2最新Oct 26, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分