fstwthr

Plain-text weather for humans and agents.

fstwthr is a free, keyless weather service at fstwthr.com. It serves the same canonical forecast in seven formats — modern HTML, minimal HTML, plain text, JSON, YAML, wttr.in-style one-liners, and Model Context Protocol for AI agents.

No API keys. No accounts. No advertising. No third-party aggregators. Just government weather data (NOAA in the US, MET Norway globally) shaped into a clean, fast surface.

Try it

curl fstwthr.com/boulder
curl json.fstwthr.com/tokyo
curl 'fstwthr.com/london?units=metric&voice=snark'
curl 'fstwthr.com/denver?format=3'    # wttr.in-style one-liner
curl fstwthr.com/80302          # any US ZIP code

Formats

HostBrowsercurl / agents
fstwthr.comModern HTMLPlain text
min.fstwthr.comMinimal HTMLPlain text
json.fstwthr.comJSONJSON
api.fstwthr.comJSON (alias)JSON
yaml.fstwthr.comYAMLYAML
mcp.fstwthr.comModel Context Protocol (StreamableHTTP at /mcp)

Query parameters layered on top: ?units=metric for °C/kph/hPa, ?voice=snark|hype for stylistic personality on the summary, ?format=1..4 for one-liners, ?fmt=text|json|yaml|min|modern for explicit format override.

Location lookup

For AI agents

The MCP server at https://mcp.fstwthr.com/mcp exposes eight tools, three resources, and six prompt templates over the same canonical Forecast. Wire it into any MCP-compatible client.

Claude Desktop

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "fstwthr": { "url": "https://mcp.fstwthr.com/mcp" }
  }
}

Cursor / Continue / Cline / Zed / VS Code

All MCP-compatible clients support the same URL-based config — add https://mcp.fstwthr.com/mcp as a server in your settings. See your client's MCP docs for the exact JSON shape.

Tools available

See /llms.txt (short) and /llms-full.txt (long) for the machine-readable description of every surface.

Data sources

All free for non-commercial use. fstwthr passes through attribution in its source field and surfaces no third-party tracking.

Architecture

Single Cloudflare Worker, written in TypeScript with Hono. Every URL is cacheable at the edge (5 min fresh + 1 hour stale-while-revalidate); the upstream JSON is KV-cached separately. Bundle is ~995 KB gzipped including ~50,000 embedded US places + ZIP codes.

A sibling Cloudflare Container parses NOAA MRMS radar tiles every five minutes and writes per-gridpoint "rain on radar" records into shared KV, surfaced to readers as a one-sentence clause in the natural-language summary. That's the heaviest piece of machinery in the project and it still gets out of the way of the main worker entirely.

Contact

Open an issue at github.com/RJFerguson/fstwthr for bug reports, feature requests, or peering interest.