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 分