Skip to main content
Glama

ambient-mcp

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
A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jrolstad/ambient-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server