mcpField
W
weatherport

weatherport

Local
github.com/CloudCorpRecordsMaps & Travel0Updated 2w ago

About weatherport

weatherport is a CLI and stdio MCP server for querying OpenWeather. It provides city weather, forecasts, point-based air and One Call data, and geocoding, using an OpenWeather API key.

Key features

  1. 01Current city weather
  2. 02Five-day forecast in three-hour steps
  3. 03One Call 3.0 weather summaries
  4. 04Air pollution and AQI data
  5. 05Place-name geocoding

Use cases

  1. 01Check current conditions in a city
  2. 02Review upcoming weather by three-hour interval
  3. 03Inspect air quality at coordinates
  4. 04Resolve a place name to coordinates

MCP support

Runs as a stdio MCP server and exposes tools for current weather, forecasts, One Call data, air pollution, and geocoding to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-weatherport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/weatherport"
]
}
}
}
Run commandnpx -y @reneturcios/weatherport

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/weatherport0.1.0
ocighcr.io/cloudcorprecords/weatherport:0.1.0

Tools

5

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
unitsstringNoUnit system for the response: one of standard, metric, or imperial.
locationstringYesCity or place name to get current weather for; must be a non-empty string.

Details

From the project README

weatherport

weatherport brings OpenWeather to the terminal and to MCP clients. It answers the questions people actually ask of that service: what is it like in a city right now, what is coming over the next five days in three-hour steps, what does the fuller One Call 3.0 view say for a precise point on the map, how clean is the air there, and where exactly is a place name? One binary serves both a command-line interface and a stdio MCP server.

An OpenWeather API key is required for every call. Put it in the OPENWEATHER_API_KEY environment variable; weatherport sends it to https://api.openweathermap.org as the appid query parameter and never prints it. When the variable is missing or blank, calls fail with an error that names it, before any request is made. Note that One Call 3.0 needs a separate upstream subscription in reality, even though it uses the same key.

Units are optional everywhere they apply: standard, metric, or imperial. Anything else is rejected before a request.

Install

npx @reneturcios/weatherport current Paris --units metric

Or run the container image:

docker run -i -e OPENWEATHER_API_KEY ghcr.io/cloudcorprecords/weatherport

The container defaults to the MCP server. Pass CLI arguments to use it as a CLI instead.

CLI

export OPENWEATHER_API_KEY=<your key>

weatherport current Paris --units metric
weatherport forecast Berlin --units imperial --count 5
weatherport onecall 51.5 -0.12 --units metric
weatherport pollution 51.5 -0.12
weatherport geocode Paris --limit 3

weatherport --version

Each command prints the upstream JSON payload. Exit codes: 0 on success, 1 when a call fails (including a missing OPENWEATHER_API_KEY or an API error), 2 for usage errors.

MCP server

npx -y @reneturcios/weatherport mcp

MCP client configuration:

{
  "mcpServers": {
    "weatherport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/weatherport", "mcp"],
      "env": { "OPENWEATHER_API_KEY": "..." }
    }
  }
}
Tools
ToolInputWhat it returns
get_current_weatherlocation (required), units (optional)Current weather for a city.
get_forecastlocation (required), units, count (optional)5-day forecast in 3-hour steps.
get_onecall_weatherlat, lon (required), units (optional)One Call 3.0 current, hourly, and daily summaries.
get_air_pollutionlat, lon (required)Current AQI and pollutant components.
geocode_locationquery (required), limit (optional)Coordinate matches for a place name.

Latitude must be in [-90, 90] and longitude in [-180, 180]; out-of-range values are rejected before any request. HTTP failures surface the status plus OpenWeather's message field when the upstream JSON provides one.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.