SkillAgentSearch skills...

gowm

Go client for the OpenWeatherMap APIs, including MCP server and CLI.

Install / Use

claude mcp add ryeguard -- npx -y github:ryeguard/gowm

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

78/100

Category

Other

Supported Platforms

Claude Code
Claude Desktop

Our assessment of gowm

gowm scores 78/100 on our quality scale, 219th of 253 Other skills we index.

Its MCP Server is 6.8 KB long, well organised into 25 sections with 9 code examples: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
29/30
Structure
20/20
Description
12/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 25 days ago, so gowm is actively maintained.
  • Our last check on 2026-09-20 found the source still online.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 87/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful.

  • noteInstalls by piping a downloaded script into a shellline 100
    curl -sSL https://raw.githubusercontent.com/ryeguard/gowm/main/install.sh | bash

AI review by kimi-k2.7-code on 2026-09-25. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

gowm compared with similar skills

All 4 of these similar skills score higher than gowm; compare them before choosing.

SkillScoreStarsUpdatedFormat
gowm (this skill)by ryeguard78325d agoMCP Server
Agent-Reachby Panniantong10090.5k19d agoCLAUDE.md
headroomby headroomlabs-ai10074.4ktodayCLAUDE.md
CowAgentby zhayujie10047.2ktodayCLAUDE.md
Scraplingby D4Vinci10085.6ktodayMCP Server

Frequently asked questions

How do I install gowm?
Run claude mcp add ryeguard -- npx -y github:ryeguard/gowm. The install tabs above show the steps for each supported agent.
Which AI agents does gowm work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is gowm safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful. It is MIT-licensed and scores 87/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is gowm still maintained?
The repository was last updated 25 days ago, so gowm is actively maintained.

gowm

Go Version License Build Status

A Go OpenWeatherMap API client. The latest Go docs may be browsed at pkg.go.dev.

Getting Started

First, make sure you have all of the below prerequisites:

  • Installation of Go, e.g., from go.dev.
  • API key from OpenWeatherMap
    • Sign up for free at openweathermap.org
    • Get your API key after having signed in
    • Note: API key activation may take some time

Now, you should be able to either use this project's packages in your project, or clone this repo and contribute/run the examples provided.

Examples of basic as well as advanced usage are located in the examples dir. To run any of the examples (having cloned this repo):

# e.g., the owm_basic example
go run examples/owm_basic/main.go

APIs

One Call API 3.0

The One Call API 3.0 client is implemented in onecall/client.go. The available methods are:

  • CurrentAndForecast: To get access to current weather, minute forecast for 1 hour, hourly forecast for 48 hours, daily forecast for 8 days and government weather alerts.

    • CurrentAndForecastRaw is available and returns a direct mapping of the API response, e.g., not parsing timestamps to time.Time but rather leaving them as ints.
  • Historical: To get historical weather data for a specific timestamp. Historical data is available from January 1, 1979 onwards.

    • HistoricalRaw is available and returns a direct mapping of the API response.

Geocoding API

The Geocoding API client is implemented in geo/client.go. The available methods are:

  • Direct: Allows you to get geographical coordinates (lat, lon) by using name of the location (city name or area name).
  • Reverse: Allows you to get name of the location (city name or area name) by using geographical coordinates (lat, lon).

Features

MCP Server

This repo implements a LLM-friendly MCP (Model Context Protocol) server for the OpenWeatherMap APIs. The MCP server is built into the main gowm binary as a subcommand.

The MCP server provides the following tools:

  • get_weather: Get current weather and forecast for a location
  • get_historical_weather: Get historical weather data for a specific location and date

Usage

Start the MCP server using the gowm mcp command:

# Start MCP server in stdio mode (default, for Claude Desktop)
gowm mcp --api-key=YOUR_API_KEY

# Or set API key via environment variable
export OWM_API_KEY=YOUR_API_KEY
gowm mcp

# Start in HTTP mode for testing
gowm mcp --http=localhost:8080

Configuration for Claude Desktop

Configure your client, e.g., Claude Desktop, to use the MCP server. As of writing (January 2025), this is done in the claude_desktop_config.json found by navigating to Settings > Developer > Edit Config in the Claude Desktop application.

{
  "mcpServers": {
    "weather": {
      "command": "/usr/local/bin/gowm",
      "args": ["mcp"],
      "env": {
        "OWM_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

where /usr/local/bin/gowm is the absolute path to the binary (adjust based on your installation location - use which gowm to find it) and YOUR_API_KEY is the OpenWeatherMap API key you can get from signing up/logging in at openweathermap.org.

Installation

The gowm binary includes both CLI and MCP server functionality in a single unified tool.

Option 1: Quick install script (macOS/Linux)

curl -sSL https://raw.githubusercontent.com/ryeguard/gowm/main/install.sh | bash

Option 2: Download pre-built binary

Download the latest gowm binary for your platform from the releases page.

Option 3: Install with Go

go install github.com/ryeguard/gowm/cmd/gowm@latest

Option 4: Build from source

git clone https://github.com/ryeguard/gowm.git
cd gowm
go build -o bin/gowm ./cmd/gowm

CLI

Use the CLI to interact with OpenWeatherMap APIs from the command line.

Usage

# Get weather forecast for a location
gowm get-weather 'stockholm,sweden' --api-key=YOUR_API_KEY

# Get historical weather for a location and date
gowm get-historical-weather 'stockholm,sweden' '2024-01-15' --api-key=YOUR_API_KEY

# Or set the API key via environment variable
export OWM_API_KEY=YOUR_API_KEY
gowm get-weather 'stockholm,sweden'
gowm get-historical-weather 'new york,us' '2024-01-15T12:00:00Z'

# Check version
gowm version

Static Types

Leveraging Go's type system, as well as generating better go enums using zarldev/goenums, using the clients is straight-forward. You don't need to worry about guessing the input format of the API calls, of for example languages and units. Rather than:

// from briandowns/openweathermap (another great OpenWeatherMap Go client and the inspiration for this project)
w, err := owm.NewOneCall("F", "EN", apiKey, []string{})
if err != nil {
  log.Fatalln(err)
}

err = w.OneCallByCoordinates(
  &Coordinates{
    Latitude:  33.45,
    Longitude: -112.07,
  },
)
if err != nil {
  t.Error(err)
}

We can instead do:

client := onecall.NewClient(&onecall.ClientOptions{
  AppID: apiKey
  Units: onecall.Units.IMPERIAL,
})

resp, err := client.CurrentAndForecast(33.45, -112.07, &onecall.OneCallOptions{
  Lang: onecall.Langs.ENGLISH,
})
if err != nil {
  log.Fatalln(err)
}

Custom http.Clients and slog.Loggers

You can pass custom HTTP clients and loggers to the API Client to make the most of Go's std lib features like rate limiting and structured logging with configurable logging levels.

Contributing

Contributions are welcome.

Disclaimer

This library is an unofficial Go client for the OpenWeather API. It is not affiliated with or endorsed by OpenWeather. See the license at LICENSE.

Use of this client requires a valid API key from OpenWeather, and use of OpenWeather data is subject to their license terms. Please ensure you comply with their data licensing conditions, particularly around attribution and share-alike requirements.

Links

Related Skills

View on GitHub
GitHub Stars3
CategoryOther
Updated25d ago
Forks0

Languages

Go

Trust signals

87/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 low