weather that doesn't suckA fully owned subsidiary of the Climate Science Division · The Lumber Outlet Group Back to the forecast

A free weather MCP server

Plain-talk weather for AI assistants and programs. No key, no sign-in.

What it is

This is Weather That Doesn't Suck as something an AI assistant or a program can ask directly. It answers in plain language, for decisions: should I, when, what do I wear, what will I meet on the way. It is free for everyday use, public and read-only, with no key and no account. It is a remote server, so there is nothing to install.

The addresses

In the official MCP Registry the server is com.weatherthatdoesntsuck/weather.

On the REST address, GET lists the tools. POST /api/intel/{tool} with the arguments as a JSON body runs one. It is the same answer the MCP tool gives.

How to connect

The server URL is https://weatherthatdoesntsuck.com/api/mcp. It needs no authentication: no key, no token, no sign-in.

WhereHow
ClaudeOn claude.ai or in the desktop app: Customize, Connectors, "+ Add", then "Add custom connector". Give it a name and the URL above. If it asks how to sign in, choose "No sign in". On a Team or Enterprise plan an owner adds it first, under Organization settings, Connectors. A free Claude plan is limited to one custom connector.
Claude Codeclaude mcp add --transport http wtds https://weatherthatdoesntsuck.com/api/mcp
ChatGPTOn the web: Settings, Security and login, turn on Developer mode. Then open chatgpt.com/plugins, select the plus button, enter a name and a description, give the URL above as the MCP server URL, and create the connection. Developer mode is not on every plan.
Gemini CLIgemini mcp add --transport http wtds https://weatherthatdoesntsuck.com/api/mcp. Or, in ~/.gemini/settings.json: { "mcpServers": { "wtds": { "httpUrl": "https://weatherthatdoesntsuck.com/api/mcp" } } }
Anything elseAdd the URL above as a remote MCP server, with no authentication. Or POST JSON-RPC 2.0 to it yourself, with Content-Type: application/json.

Menus move. These steps matched each maker's own documentation when we last checked. If a screen does not match, that documentation is the authority.

For anyone writing a client: the server speaks protocol versions 2025-06-18, 2025-03-26 and 2024-11-05. If a client asks for any other version when it connects, the server answers with 2025-06-18. It does not speak the 2026-07-28 revision. It takes POST. It has no event stream and no sessions, so a GET gets a 405.

The tools

Every tool is read-only. The decision tools are the point, so prefer them to raw data.

ToolThe question it answers
get_weatherWhat is it like, and what is coming? One sentence first, then current conditions, the next 24 hours, the next 7 days and official alerts.
get_forecastWhat is Saturday looking like? What will it be between 6 PM and midnight?
outdoor_activity_weatherShould I? A verdict for a run, a hike, a ride, a night camping, a hunt, a day fishing, a yard job, a building job or a deck stain, with the reason, what to wear and the concerns.
find_best_weather_windowWhen? The best stretch on a day, an alternate, and any clearly bad stretch.
clothing_recommendationWhat do I wear? Dressed for the effort, not just the temperature.
explain_weatherWhy? Why it feels colder than the temperature, whether the rain or the wind will matter, mud, humidity, fog, frost, pressure. Facts are kept apart from inferences.
get_trail_weatherWhat is a trail like over the whole trip? A timeline, every two hours unless you ask for another step, the light, the moon, what changes, and what to wear and carry.
route_weatherWhat will I meet, where, and when? The weather at the moment you reach each part of a route.
list_trailsWhich trails do you know by name?

search and fetch also exist, for clients that require that pair. They are on the MCP server only, not on REST.

A verdict is go, go_with_caveats, marginal or no_go.

The activities are walking, hiking, trail_running, road_running, cycling, camping, hunting, fishing, yard_work, construction, painting_finishing and general_outdoor. Plain words work too, such as "run", "hike" or "stain the deck". "Running" with no more words is read as a road run.

The MCP server also carries resources. weather://methodology says how a recommendation is made, printed from the same tables the code decides with.

The shape of an answer

Every answer from a weather tool has the same order.

After those come generated_at, which is our clock, and forecast_valid_for, the stretch of time the answer is about.

What the forecast says is kept apart from what we advise. data.observed and data.forecast are weather. data.derived and details.recommendations are our advice. An assistant can say what the forecast is without also saying what we think you should do about it.

When there is no station observation, the answer says whether the current conditions are a model estimate of now or the forecast for the current hour. Neither is called a measurement.

The rules we ask an assistant to keep

The server hands these to a client when it connects. A shorter list is in llms.txt.

What it will not do

Limits

We count requests per address, by the minute, to protect the free weather services behind us. MCP and REST share the same counts.

Over the limit, a tool call gets an answer that says to wait about 30 seconds, which an assistant can relay. On REST it is a 429 with a Retry-After of 30 seconds. One tool call is stopped at 25 seconds at the latest.

An example to paste

Can I go for a trail run in Greenbush, Wisconsin tomorrow morning? Over REST, from a Unix shell:

curl -s -X POST \
  https://weatherthatdoesntsuck.com/api/intel/outdoor_activity_weather \
  -H "Content-Type: application/json" \
  -d '{"location":"Greenbush, WI",
       "activity":"trail_running",
       "start_time":"tomorrow morning"}'

What comes back is JSON in the order above, with "ok": true in front.

A time can be ISO 8601 or plain words: "now", "tonight", "tomorrow morning", "Saturday", "6 PM". With no offset it is read in the place's own time zone. "Morning" means 6 AM to noon. A bare hour with no AM or PM is refused rather than guessed.

Units default to imperial in the United States and metric elsewhere. Send units to choose.

REST errors carry real status codes: 400 for bad input, 404 for a tool, a place or a trail we cannot find, 415 when the request does not say Content-Type: application/json, 422 for a time the forecast does not cover, 429 for too fast, 503 when the weather sources are not answering, 504 when a call ran out of time.

Privacy, terms and sources

What an assistant sends us is used to answer and is not written down, and the privacy page says what our logs do keep.

Everyday use is free and a forecast is not a promise. The terms ask you not to copy our answers in bulk or resell them, and to write to us first if you want to build an app on this or expect heavy use.

The weather comes from the National Weather Service and Open-Meteo, and the methodology page lists what each one is used for. Every answer lists its sources. If you repeat our answers, the terms ask you to keep that credit with them.

Get in touch

Questions, corrections, or a tool that answered wrong in an interesting way: help@thelumberoutletgroup.com.