Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Ambient

FreeNot checked

An MCP server that wraps the Ambient Weather REST API. Query your personal weather stations conversationally from Claude Code, Claude.ai, or any MCP-compatible

GitHubEmbed

About

An MCP server that wraps the Ambient Weather REST API. Query your personal weather stations conversationally from Claude Code, Claude.ai, or any MCP-compatible client.

README

License: MIT

An MCP (Model Context Protocol) server that wraps the Ambient Weather REST API. Query your personal weather stations conversationally from Claude Code, Claude.ai, or any MCP-compatible client.

Tools

Tool Description
get_devices List all stations on the account with metadata and the latest observation (lastData)
get_latest_observation Most recent reading for a single station — served from the devices cache, no extra API call
get_historical_data Recent observations for a single station, paginated by days (default 1, max 30; newest-first)
reset_cache Clear the in-process cache

Configuration

Get an Application Key and API Key from https://ambientweather.net/account. Both are required:

AMBIENT_APP_KEY=...
AMBIENT_API_KEY=...

The Ambient Weather API is rate-limited to 1 request per second per API key, so this server keeps an in-process cache with a 10-minute TTL (stations typically report every 5 minutes).

Run locally (stdio)

pip install -r requirements.txt
cp .env.example .env  # fill in keys
python server.py

Connect to Claude Code

Add to ~/.claude.json under mcpServers:

{
  "mcpServers": {
    "ambient": {
      "type": "stdio",
      "command": "python",
      "args": ["/path/to/ambient-mcp/server.py"],
      "env": {
        "AMBIENT_APP_KEY": "your_application_key_here",
        "AMBIENT_API_KEY": "your_api_key_here"
      }
    }
  }
}

Run hosted (HTTP)

Set MCP_TRANSPORT=streamable-http and the server exposes a Streamable HTTP endpoint on PORT (default 8000). The included Dockerfile defaults to this mode.

docker build -t ambient-mcp .
docker run --rm -p 8000:8000 \
  -e AMBIENT_APP_KEY=... \
  -e AMBIENT_API_KEY=... \
  ambient-mcp

Hosting options

Option Approx. cost Notes
Azure Container Apps ~$0/month Scales to zero; free tier covers low-frequency weather queries
AWS App Runner ~$5–11/month Always-on, no cold starts
Railway ~$0 free / ~$5/month Simplest GitHub-connected deploy

When hosted, add a MCP_AUTH_TOKEN environment variable on the platform and configure the client to send Authorization: Bearer <token>.

Connect to Claude.ai or Claude Code (HTTP)

{
  "mcpServers": {
    "ambient": {
      "type": "http",
      "url": "https://<your-host>/mcp",
      "headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
    }
  }
}

Project structure

ambient_client.py   # httpx-based REST client (list_devices, get_device_data)
server.py           # FastMCP tool definitions + in-process cache + transport toggle
requirements.txt
Dockerfile          # python:3.11-slim, streamable-http transport by default
.env.example

from github.com/jrolstad/ambient-mcp

Installing Ambient

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/jrolstad/ambient-mcp

FAQ

Is Ambient MCP free?

Yes, Ambient MCP is free — one-click install via Unyly at no cost.

Does Ambient need an API key?

No, Ambient runs without API keys or environment variables.

Is Ambient hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Ambient in Claude Desktop, Claude Code or Cursor?

Open Ambient on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Ambient with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs