Skip to main content

WeatherFlow Tempest MCP Server

A Model Context Protocol (MCP) server that gives AI assistants read-only access to your own WeatherFlow Tempest weather station(s): current observations, forecasts, and station metadata.

It is not a general weather service. It does not cover:

  • locations away from your station, or global/regional weather (use a public weather API)
  • air quality, pollen, or smoke
  • severe-weather alerts, radar, or watches/warnings
  • historical archives beyond what the live Tempest API returns

🌤️ Features

  • Current conditions from your station: temperature, humidity, pressure, wind, rain, solar radiation, UV, and lightning
  • Forecasts: hourly (up to 48 h) and daily (up to 10 days), plus a current snapshot
  • Station inventory: your stations, their locations, devices, and sensor capabilities
  • Caching in memory and on disk, with a refresh option for the latest reading
  • Structured results and errors for agents: typed output schemas, explicit units, RFC3339 timestamps, and error responses that include a ready-to-run corrected call

🚀 Quick Start

Prerequisites

Installation

While each client has its own way of specifying, you'll generally use the following values:

Field Value
Command uvx
Arguments mcp-server-tempest
Environment WEATHERFLOW_API_TOKEN = <YOUR TOKEN>

Development Version

If you'd like to use the latest and greatest, the server can be pulled straight from GitHub. Just add an additional --from argument:

Field Value
Command uvx
Arguments --from, git+https://github.com/briandconnelly/mcp-server-tempest, mcp-server-tempest
Environment WEATHERFLOW_API_TOKEN = <YOUR TOKEN>

Install as a Desktop Extension (.mcpb)

For one-click installation in apps that support MCP Bundles (e.g. Claude for macOS/Windows):

  1. Download the .mcpb from the latest release.
  2. Open the file with your MCPB-capable client to launch the install dialog.
  3. Paste your WeatherFlow API token when prompted (the cache settings are optional).
  4. Make sure the extension is enabled (in Claude Desktop: Settings → Extensions). It is not turned on automatically until the required API token has been provided.

The bundle uses the MCPB uv runtime (manifest_version 0.4), so the host must ship a recent enough uv/MCPB runtime; it resolves dependencies on first launch — no separate Python install is required.

Troubleshooting: if the server fails to start because its install directory is read-only (uv cannot create a .venv next to the bundle), set the UV_PROJECT_ENVIRONMENT environment variable for the server to a writable path before launching.

📋 Configuration

Environment Variables

Variable Description Default Required
WEATHERFLOW_API_TOKEN Your WeatherFlow API token - ✅ Yes
WEATHERFLOW_CACHE_TTL In-memory cache TTL in seconds 300 No
WEATHERFLOW_CACHE_SIZE Maximum in-memory cache entries 100 No
WEATHERFLOW_DISK_CACHE_TTL Disk cache TTL in seconds 86400 No

Caching & data freshness

The server caches responses in two layers:

  • In-memory (WEATHERFLOW_CACHE_TTL / WEATHERFLOW_CACHE_SIZE): all four data tools (tempest_get_capabilities is static and uncached).
  • On disk (WEATHERFLOW_DISK_CACHE_TTL, default 24h): tempest_get_stations and tempest_get_station_details only. Stored under platformdirs.user_cache_dir("mcp-server-tempest") in a per-token (hash-keyed) subdirectory.

To bypass the cache for current data, pass refresh=true to tempest_get_observation or tempest_get_forecast. Station data has no refresh argument: to clear it, restart the server (in-memory) or delete the cache directory (disk). Every data result carries retrieved_at, the time the server fetched it from WeatherFlow.

Transport

stdio (the default for uvx mcp-server-tempest and the configuration above).

🛠️ Usage

Tools

Tool Use it for Arguments
tempest_get_stations Listing your stations, their locations, and devices. Start here: station IDs can't be guessed. none
tempest_get_station_details One station's configuration and hardware, plus the sensor capabilities the station list omits station_id
tempest_get_observation Current conditions station_id; detailed (default false: condensed); refresh (default false)
tempest_get_forecast Hourly and daily forecast, plus a current snapshot station_id; hours 1–48 (default 6); days 1–10 (default 2); detailed; refresh
tempest_get_capabilities What the server does and doesn't do, its tools, error codes, and a fingerprint of its interface. Needs no API token. none

The same capability summary is available as the MCP resource tempest://capabilities. It is the authoritative, machine-readable contract; the table above is a quick guide.

Reading results

  • Units. Observation values are always metric/SI and are described by the result's units object. Forecast values are described by the forecast's own units. The observation's station_units is the station owner's display preference, not the unit of the values: convert to it when presenting.
  • Times. Raw fields such as timestamp, time, and lightning_strike_last_epoch are Unix seconds. Observations also carry observed_at and lightning_strike_last_at, and every data result carries retrieved_at, all RFC3339 in UTC. Hourly forecast entries include local_day and local_hour in the station's own timezone.
  • Errors come back as a tool error whose structured content has a symbolic code (branch on it, not on message), temporary (plus retry_after_ms when true), and, when the server can build one, repair: a corrected call to make as-is. The full error contract is the error_channel field of the capability summary. Version 0.11.0 changed the error format (next became repair); see the CHANGELOG.

🌟 Example questions

Once the server is configured, ask your assistant in plain language. Some examples, with the tool it will typically use:

You ask Tool
"What weather stations do I have?" / "What's my station's elevation?" tempest_get_stations
"Is it raining at home right now?" / "How windy is it?" tempest_get_observation
"Has there been any lightning nearby?" tempest_get_observation
"Will it freeze tonight?" / "What's the forecast for the weekend?" tempest_get_forecast
"Is it a good afternoon for a run?" tempest_get_forecast
"What can my station measure?" / "What hardware does it have?" tempest_get_station_details
"What can this weather server do?" tempest_get_capabilities

Building your own client instead? Any MCP client works; the tools return structured results described by each tool's output schema. See, for example, the FastMCP client docs.

🤝 Contributing

Contributions are welcome. AGENTS.md is the guide for humans and AI agents alike: environment setup with uv, how to run the tests and linters, branch and commit conventions (conventional commits; signed commits on main), and how pull requests are reviewed and merged. Release notes live in CHANGELOG.md.

Please report security issues privately, as described in SECURITY.md.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

Metadata

Release files for mcp-server-tempest 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-server-tempest 0.11.0
File Size Uploaded Provenance
mcp_server_tempest-0.11.0.tar.gz 644.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-server-tempest 0.11.0
File Interpreter ABI Platform
mcp_server_tempest-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 690.0 kB

Release files / mcp_server_tempest-0.11.0.tar.gz

Download URL mcp_server_tempest-0.11.0.tar.gz
Size 644.9 kB
Tags Source
SHA-256 checksum
How to use checksums
505a49c77ce2c64745c26183036c1aa53669f5fc84384c84b9cb1d3215dcacc8
BLAKE2b-256 checksum
How to use checksums
12acd5937d15ba972dadab3d7fc59d45eb6b84227c521cc3c999126beae71075
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / mcp_server_tempest-0.11.0-py3-none-any.whl

Download URL mcp_server_tempest-0.11.0-py3-none-any.whl
Size 45.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3e4ffb7f11b33c21968d579f9504527bfc3a5747cc2012087020b66737e14e4
BLAKE2b-256 checksum
How to use checksums
49d60a59bca13db0fee04a37ffcdc3e3e39d0a247be233c0d00a437b9e5a4b5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Security for mcp-server-tempest 0.11.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mcp_server_tempest-0.11.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page