loading…
Search for a command to run...
loading…
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
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.
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.
| 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 |
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).
pip install -r requirements.txt
cp .env.example .env # fill in keys
python server.py
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"
}
}
}
}
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
| 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>.
{
"mcpServers": {
"ambient": {
"type": "http",
"url": "https://<your-host>/mcp",
"headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
}
}
}
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
Run in your terminal:
claude mcp add ambient-mcp -- npx