An MCP server for Open-Meteo that geocodes place names and provides weather, historical climate, marine, air quality, elevation, river discharge, and ensemble forecast data. It also exposes DataCanvas-backed table description and SQL query tools for large historical or ensemble datasets.
From the registry: Global weather via Open-Meteo: forecast, ERA5 archive, marine, air quality, geocoding, elevation.
Please install the `open-meteo-mcp-server` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install Node.js or Bun** — Install Bun v1.3.0+ or Node.js v24+ to run the server locally. Prefer Node.js if using the npx install path. (https://bun.sh/)
Optional prerequisites:
- Open-Meteo API access — No API key is required for non-commercial use. Commercial use requires Open-Meteo's paid API tier. (https://open-meteo.com/en/pricing/)
Canonical MCP server config (stdio transport):
- command: `npx`
- args: ["-y","@cyanheads/open-meteo-mcp-server@latest"]
- optional environment variables:
- `MCP_TRANSPORT_TYPE`: Transport type. Set to stdio for local MCP stdio usage. (example: `stdio`)
- `MCP_LOG_LEVEL`: Log level for server logging. (example: `info`)
- `MCP_HTTP_PORT`: HTTP server port. Only relevant when using HTTP transport. (example: `<port>`)
- `MCP_HTTP_ENDPOINT_PATH`: HTTP endpoint path. Only relevant when using HTTP transport. (example: `<endpoint-path>`)
- `MCP_PUBLIC_URL`: Public origin for TLS-terminating reverse-proxy deployments. (example: `<your-public-url>`)
- `MCP_AUTH_MODE`: Authentication mode: none, jwt, or oauth. (example: `<auth-mode>`)
- `MCP_GC_PRESSURE_INTERVAL_MS`: Optional forced-GC interval in milliseconds (Bun only). (example: `<milliseconds>`)
- `LOGS_DIR`: Directory for log files (Node.js only). (example: `<your-logs-directory>`)
- `STORAGE_PROVIDER_TYPE`: Storage backend: in-memory, filesystem, supabase, or cloudflare-kv/r2/d1. (example: `<storage-provider>`)
- `CANVAS_PROVIDER_TYPE`: Canvas engine for historical/ensemble spillover: duckdb or none. (example: `<canvas-provider>`)
- `OPEN_METEO_API_BASE_URL`: Override for the main forecast and elevation API base URL. (example: `<your-open-meteo-api-base-url>`)
- `OPEN_METEO_ARCHIVE_BASE_URL`: Override for the ERA5 historical archive API base URL. (example: `<your-open-meteo-archive-base-url>`)
- `OPEN_METEO_MARINE_BASE_URL`: Override for the marine forecast API base URL. (example: `<your-open-meteo-marine-base-url>`)
- `OPEN_METEO_AIR_QUALITY_BASE_URL`: Override for the CAMS air quality API base URL. (example: `<your-open-meteo-air-quality-base-url>`)
- `OPEN_METEO_GEOCODING_BASE_URL`: Override for the geocoding API base URL. (example: `<your-open-meteo-geocoding-base-url>`)
- `OTEL_ENABLED`: Enable OpenTelemetry tracing and metrics. (example: `<true-or-false>`)
Note: The README also provides a public hosted Streamable HTTP endpoint at https://open-meteo.caseyjhand.com/mcp and describes self-hosted HTTP mode, but the simplest portable install path is local stdio via npx. HTTP self-hosting is started via local scripts rather than a canonical client command/args shape in the MCP config.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.Meta Ads MCP (Facebook + Instagram) - analyze performance, manage budgets, pause campaigns.