For developers and AI agents
Connect an agent to FernWX
FernWX keeps every forecast it collects, from many providers, and checks them against what actually happened. The documented account reads are available over two transports that share one contract: a remote MCP server and a REST Agent API described by OpenAPI 3.1. Both enforce your account permissions. Every documented operation and MCP tool is a read. Some reads update last-seen timestamps or stale report state, and saved-insight runs append query activity logs; MCP tools declare these side effects.
- MCP server (Streamable HTTP)
- https://fernwx.com/api/mcp
- OpenAPI document
- https://fernwx.com/api/openapi.json
- Documented read operations
- 84 GET operations, 85 MCP tools
- Contract snapshot
- 0.1.0+84.27e39098
The FernWX MCP server
https://fernwx.com/api/mcp serves the Agent API over MCP (JSON-RPC over Streamable HTTP). Add it as a remote connector in any MCP host: Claude (claude.ai custom connectors, Claude Desktop, Claude Code), ChatGPT connectors, Cursor, and others.
Every documented GET operation is one tool (84 in all), plus fernwx_whoami, which reports the connected account and the tool list. Tool names come from the OpenAPI operation ids, for example fernwx_get_forecast, fernwx_get_alerts, fernwx_resolve_location, fernwx_memory_moment and fernwx_forecast_verification. tools/list is the complete catalog.
Hosts that discover credentials (claude.ai, ChatGPT)
Paste the URL into the host's “add custom connector” dialog. The host runs the OAuth 2.1 flow below: you sign in to FernWX, approve the connector, and it receives an ordinary account key.
Hosts that send a header (Claude Code, scripts)
claude mcp add --transport http fernwx https://fernwx.com/api/mcp --header "Authorization: Bearer fwx_YOUR_KEY"The Agent API
The same reads are plain HTTPS GETs under /api/weather-ledger/, selected /api/account/ read models, and /api/public/forecast. The contract is generated from the registered schemas and checked against the MCP tool catalog. Every operation has an operationId, so it imports cleanly as a GPT Action or into any OpenAPI client.
curl -H "Authorization: Bearer fwx_YOUR_KEY" \
"https://fernwx.com/api/weather-ledger/forecast/latest?locationId=YOUR_SAVED_LOCATION"/api/public/forecast is the keyless live-weather REST route: a public forecast lookup by place name or coordinates, rate-limited per IP. Other weather routes may return HTTP 200 synthetic examples when authentication is omitted. Always check example; never report a response withexample: true as live or account weather.
Account API keys and OAuth
Keyed routes take a per-account bearer key, Authorization: Bearer fwx_<prefix>_<secret>. Create one under Account → API keys. The default lifetime is one hour; requested lifetimes range from five minutes to 30 days. Legacy keys without an expiry remain non-expiring. Keys can be renewed or revoked there. An expired, revoked or unknown key gets 401 with a machine-readable code (api_key_expired, api_key_revoked, api_key_invalid), never substitute example data.
FernWX is also its own OAuth 2.1 authorization server for MCP hosts: dynamic client registration (RFC 7591) and Client ID Metadata Documents, PKCE S256, a signed-in consent page, and rotating refresh tokens. The access token it issues is a fwx_ key named oauth:<client>, so each connected host appears in your API keys list and can be revoked there. Scopes: weather-ledger:read and public:read. Scope names are stored, not yet enforced as tool-level limits. A token can access all documented reads allowed by its owning account; requesting only public:read does not restrict it to public tools.
What agents can and cannot do
- Read the account's saved locations, forecast memory, verification, observations, alerts, storms, upper-air soundings, tropical cyclones and saved reports.
- Every documented operation and MCP tool is a read. Some reads update last-seen timestamps or stale report state, and saved-insight runs append query activity logs; MCP tools declare these side effects.
- A key or OAuth token is not read-only. It can also call account routes outside the documented contract that write: generate and save AI explanations of soundings and NWS text products and sounding comparison syntheses (these count against the account’s AI usage limits), generate speech audio, import radiosonde soundings into the account (overwrite mode replaces the account’s own earlier imports), and request or release temporary restores of archived days. Each is limited to the owning account and bounded. It cannot change locations, settings or keys, trigger collectors, create or edit saved reports, Run Books, dashboards or insights, or delete the cold archive. There are no admin routes.
- No database access and no arbitrary SQL.
- Forecast memory is immutable. AI-written synthesis is never returned as observed truth.
The Research Lab (Forecast Ledger Intelligence) is a separate thing: FernWX's own built-in agent, which plans investigations and runs guarded, read-only queries for signed-in users. External agents reach the ledger through the MCP server or the Agent API above.
Where agents can look
- /llms.txt: a plain-text summary of FernWX and these endpoints for language models.
- /.well-known/api-catalog: an RFC 9727 API catalog linking the OpenAPI document and these docs.
- /api/openapi.json: the OpenAPI 3.1 contract.
- /.well-known/oauth-protected-resource/api/mcp: RFC 9728 protected-resource metadata for the MCP server.
- /.well-known/oauth-authorization-server: RFC 8414 authorization-server metadata.
New to FernWX? The Knowledge Base explains forecast memory, verification and the data sources behind every read.



