Open-Meteo MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Open-Meteo MCPWhat's the weather in Tokyo this weekend?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Open-Meteo MCP
An Agent Plugin that gives Cursor (and other Agent Plugin clients) Open-Meteo forecast tools. No API key. The MCP server is a Node.js stdio process with no npm dependencies.
Weather data comes from the public Open-Meteo forecast API. Place names resolve through the geocoding API.
Install in Cursor
You need Node.js 18.18 or newer (node -v).
Local plugin folder
Cursor loads Agent Plugins from ~/.cursor/plugins/local after a window reload. The folder must live inside that directory. Cursor skips a symlink that points at a repo elsewhere on disk.
Clone this repository.
Copy it into the local plugins directory:
mkdir -p ~/.cursor/plugins/local
cp -R /path/to/open-meteo-mcp ~/.cursor/plugins/local/open-meteoReload Cursor (Developer: Reload Window).
Open Customize and confirm the Open-Meteo MCP server and the
check-weather/compare-forecastskills.
Project MCP config (MCP only)
If you only want the tools in this repo, add an absolute path to .cursor/mcp.json:
{
"mcpServers": {
"open-meteo": {
"command": "node",
"args": ["/absolute/path/to/open-meteo-mcp/src/server.js"]
}
}
}This plugin is not listed on the Cursor Marketplace or cursor.directory.
Related MCP server: MCP Weather Server
Run and test locally
From the repo root:
npm test
node src/cli.js current --latitude 52.52 --longitude 13.41
node src/cli.js forecast --latitude 52.52 --longitude 13.41 --forecast-days 3
node src/cli.js geocode Berlin
npm run proofnpm test covers query parsing, Open-Meteo JSON mapping, WMO labels, and the MCP initialize / tools/list handshake. npm run proof calls live Open-Meteo for Berlin (52.52, 13.41) through the client and through MCP tools/call, then writes docs/proof.md.
npm start (or node src/server.js) speaks MCP on stdio. Do not type into that process. If stdin is a terminal, the server prints a hint on stderr and exits. Drive it with a client or the proof script.
Tools
Tool | Use for |
| Place name to lat/lon |
| Current conditions only |
| Current plus hourly and daily series |
Coordinates are WGS84. timezone defaults to auto. forecast_days is 1 to 16. Units are Open-Meteo's: temperature_unit (celsius / fahrenheit), wind_speed_unit (kmh / ms / mph / kn), precipitation_unit (mm / inch).
If you omit variable lists, v1 sends:
current:
temperature_2m,relative_humidity_2m,apparent_temperature,precipitation,weather_code,wind_speed_10m,wind_direction_10mhourly:
temperature_2m,precipitation_probability,precipitation,weather_code,wind_speed_10mdaily:
weather_code,temperature_2m_max,temperature_2m_min,precipitation_sum,precipitation_probability_max
Pass [] or "" for current, hourly, or daily to drop that block from the request.
Every weather_code is labeled with the Open-Meteo WMO WW table. Codes outside that table come back as Unknown WMO weather code N.
Open-Meteo errors ({ "error": true, "reason": "..." }, HTTP 400) return as { "ok": false, "status": 400, "reason": "..." } with MCP isError: true.
Example calls
Current conditions in Berlin:
{
"name": "get_current_weather",
"arguments": { "latitude": 52.52, "longitude": 13.41 }
}Three-day daily outlook after geocoding:
{
"name": "geocode_location",
"arguments": { "name": "Berlin", "count": 1 }
}{
"name": "get_forecast",
"arguments": {
"latitude": 52.52,
"longitude": 13.41,
"forecast_days": 3,
"hourly": []
}
}Layout
plugin.json Agent Plugin manifest
mcp.json stdio MCP server
skills/ agent skills
src/open-meteo.js forecast + geocode client
src/weather-codes.js WMO labels
src/tools.js tool schemas
src/server.js JSON-RPC stdio
src/cli.js same client, for humans and proofv1 is forecast only. No archive, air-quality, or marine endpoints.
mcp.json passes ${CURSOR_PLUGIN_ROOT}/src/server.js to node because Cursor does not expand the Agent Plugins ${PLUGIN_ROOT} placeholder. A project .cursor/mcp.json should use an absolute path instead, as in the install section.
Attribution
Weather data by Open-Meteo. Cite Open-Meteo when you publish products that use this plugin. The public forecast endpoint is for non-commercial use under Open-Meteo's terms.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)
Open-Meteo MCP — weather forecast + historical reanalysis + sister APIs
Global weather via Open-Meteo: forecast, historical, marine, air quality, geocoding, elevation.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time weather updates and city geocoding by integrating the Nominatim and Open-Meteo APIs. It enables users to retrieve current weather conditions for any location through natural language queries in MCP-compatible clients.8 npm-
- AlicenseBqualityDmaintenanceProvides tools to retrieve current weather conditions and daily forecasts for cities worldwide using the Open-Meteo API. This Python-based server enables MCP-compatible clients to access real-time meteorological data through a standardized interface.2MIT
- AlicenseNot gradedqualityCmaintenanceWraps the OpenWeatherMap API to provide weather data through MCP, enabling AI agents to query current conditions, forecasts, and other weather information via natural language.5 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides weather data including current conditions, forecasts, and summaries via Open-Meteo with no API key required, enabling natural language queries through an MCP interface.MIT