Aareguru MCP Server
The Aareguru MCP Server provides real-time Swiss Aare river data and swimming condition analysis for AI assistants, with no authentication required.
6 Tools:
get_current_temperature– Water temperature for any monitored city (default: Bern), including Swiss German descriptions (e.g., "geil aber chli chalt"), swimming suitability, and seasonal adviceget_current_conditions– Comprehensive conditions: water temperature, flow rate, water height, weather, and 2-hour forecastget_flow_danger_level– Flow rate and BAFU safety assessment with danger levels (Safe / Moderate / Elevated / High / Very High)compare_cities– Parallel comparison of multiple cities to find warmest/safest spots (8-13x faster than sequential)get_forecasts– Batch forecasts for multiple cities concurrently: current temperature, 2-hour forecast, and trendget_historical_data– Time-series temperature and flow data over custom date ranges for trend analysis
3 Resources accessible via aareguru:// URIs (city lists, full current data, minimal current data)
3 Pre-built Prompts:
daily_swimming_report– Comprehensive daily conditions and recommendationscompare_swimming_spots– Best swimming spots across all monitored citiesweekly_trend_analysis– Temperature and flow trend analysis
Additional features: Prometheus-compatible metrics for monitoring, rate limiting (100 req/min), and multiple deployment options (FastMCP Cloud, local, Docker, cloud platforms).
Exposes a metrics endpoint for monitoring and observability, tracking tool invocation counts, execution durations, and API request health.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Aareguru MCP Serveris it safe to swim in Bern today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aareguru MCP Server
MCP server for Swiss Aare river data, enabling AI assistants like Claude to answer questions about swimming conditions, water temperature, flow rates, and safety.
Latest Release: v4.7.0 — i18n for all 9 FastMCPApps (de / en / fr / it via
lang= parameter), historical chart 400 fix, 464 tests (80% coverage). See
docs/RELEASE_NOTES_v4.7.0.md for details.
🚀 Quick Start
Use directly from FastMCP Cloud (no installation needed).
Add it as a custom connector in Claude Desktop:

No authentication is needed.
Alternatively, add the aareguru-mcp.mcpb file via
Claude → Settings → Extensions, or edit the Claude Desktop config directly:
{
"mcpServers": {
"aareguru": {
"url": "https://aareguru.fastmcp.app/mcp"
}
}
}📸 Screenshots

🎯 Features
Feature | Description |
12 MCP Tools | Temperature, flow, safety, forecasts, history, comparisons + shop/checkout |
8 MCP Resources | Direct data access via |
3 MCP Prompts | Daily reports, spot comparisons, weekly trends |
9 FastMCPApps | Interactive dashboards, charts, map, cart/checkout — in de / en / fr / it |
UCP Checkout | Shop cart and checkout via Universal Commerce Protocol over WooCommerce |
MCP Elicitation | Asks for confirmation on dangerous flows and large data requests |
Rate Limiting | 100 req/min, 1000 req/hour protection against abuse |
Metrics | Prometheus endpoint for monitoring and observability |
Swiss German | Authentic temperature descriptions ("geil aber chli chalt") |
BAFU Safety | Official flow danger levels and thresholds |
464 Tests | 80% coverage, comprehensive test suite (0 skipped) |
Async-First | Context managers, parallel API fetching with asyncio.gather() |
🛠️ Tools
Aare river tools
Tool | Description | Example Query |
| Water temperature with Swiss German text | "What's the Aare temperature?" |
| Full conditions (temp, flow, weather) | "How's the Aare looking today?" |
| Flow rate + BAFU safety assessment | "Is it safe to swim?" |
| Compare all cities (parallel fetching) | "Which city is warmest?" |
| Forecasts for multiple cities (parallel) | "Show forecasts for all cities" |
| Temperature/flow history (hourly data) | "Show last 7 days for Bern" |
Shop tools (konsum.aare.guru — UCP checkout)
Tool | Description | Example Query |
| Browse merchandise catalog with prices in CHF | "What merch is available?" |
| Full details for a specific product | "Tell me more about the swim buoy" |
| Start a UCP checkout session (adds items to cart) | "I want to buy the beach towel" |
| Attach billing/shipping address to a session | "My address is Bahnhofplatz 1, Bern" |
| Submit the order and return the PostFinance payment URL | "Confirm my order" |
| Cancel a session and clear the cart | "Never mind, cancel my order" |
BAFU Safety Thresholds
Flow Rate | Level | Status |
< 100 m³/s | Safe | Swimming OK |
100–220 m³/s | Moderate | Experienced swimmers only |
220–300 m³/s | Elevated | Caution advised |
300–430 m³/s | High | Dangerous |
> 430 m³/s | Very High | Extremely dangerous |
📊 Resources
URI | Description |
| All monitored cities with coordinates |
| Full current conditions for a city |
| Minimal current snapshot |
| Weather forecast entries |
| Historical hourly time series |
| BAFU 1–5 danger level reference table |
| Flow zone breakpoints with hex colors |
| Merchandise catalog from konsum.aare.guru |
🖥️ Interactive Apps (FastMCPApps)
Nine apps render rich UIs directly inside AI conversations via fastmcp[apps]:
App | Description |
| Dashboard: water temp, flow, weather, BAFU level |
| Area chart of temperature and flow over time |
| Sortable table comparing all cities |
| 24-hour forecast with air-temperature chart |
| Today's intraday water temperature sparkline |
| All cities ranked by temperature or safety |
| BAFU 1–5 danger level briefing with current reading |
| Interactive OpenStreetMap with all stations, satellite toggle |
| Cart and UCP checkout UI: items, total, billing, payment URL |
💬 Prompts
Prompt | Description |
| Comprehensive daily report with conditions, safety, forecast, and recommendation |
| Compare all cities to find the best swimming spot today |
| Analyze temperature and flow trends over the past week |
💻 Local Installation
# Install uv and clone
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/schlpbch/aareguru-mcp.git && cd aareguru-mcp
uv sync
# Run tests
uv run pytestClaude Desktop (Local)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"aareguru": {
"command": "uv",
"args": ["--directory", "/path/to/aareguru-mcp", "run", "aareguru-mcp"]
}
}
}🐳 Docker
cp .env.example .env
docker-compose up -d
curl http://localhost:8000/health☁️ Hosting
FastMCP Cloud (Recommended)
This server is deployed on FastMCP Cloud, a managed platform for MCP servers with zero-config deployment.
Features:
✅ Zero-Config Deployment — Connect GitHub repo, automatic deployment
✅ Serverless Scaling — Scale from 0 to millions of requests instantly
✅ Git-Native CI/CD — Auto-deploy on push to
main, branch deployments for PRs✅ Built-in Security — OAuth support, token management, secure endpoints
✅ MCP Analytics — Request/response tracking, tool usage insights
✅ Free Tier — Available for personal servers
Deployment Steps:
Sign in to fastmcp.cloud with GitHub
Create Project and link your repository
Deploy — Platform automatically clones, builds, and deploys
Access — Get your unique URL (e.g.,
https://aareguru.fastmcp.app/mcp)
Configuration:
No special configuration needed. FastMCP Cloud auto-detects FastMCP servers:
Health endpoint:
https://your-app.fastmcp.app/healthMCP endpoint:
https://your-app.fastmcp.app/mcp
Pricing:
Free tier for personal projects
Pay-as-you-go for teams (usage-based)
Alternative Hosting Options
FastMCP servers can be deployed to any Python-compatible cloud platform.
Container Platforms: Google Cloud Run, AWS ECS/Fargate, Azure Container Instances
PaaS Providers: Railway, Render, Vercel
Cloud VMs: AWS EC2, Google Compute Engine, Azure VMs
📊 Monitoring & Observability
Prometheus Metrics
The server exposes Prometheus-compatible metrics at /metrics:
Metric | Type | Description |
| Counter | Tool invocations by name and status |
| Histogram | Tool execution times |
| Counter | Aareguru API requests |
| Counter | Errors by type and component |
| Gauge | Currently active requests |
Rate Limiting
HTTP endpoints are protected with rate limiting:
Default limits: 100 requests/minute, 1000 requests/hour
Health endpoint: 60 requests/minute
Headers: Rate limit info included in responses
429 responses: Automatic retry-after headers when limits exceeded
🧪 Development
uv run pytest # Run tests (464 tests, all passing)
uv run pytest --cov=aareguru_mcp # With coverage (80%)
uv run ruff check src/ tests/ # Lint (all passing)
uv run mypy src/ # Type check (0 errors)
uv run fastmcp dev apps run-ext-apps.py # Preview all 9 appsVisual Debugging - All Apps on One Page
For comprehensive visual testing, render all 12 apps on one page:
./run-debug-all-apps.sh # Start debug server on http://localhost:3000This debug page includes:
✅ Complete conditions dashboard
✅ All 4 individual condition cards (temperature, flow, weather, sun)
✅ Historical chart (7 days) and intraday sparkline
✅ 24-hour forecast view
✅ City comparison table and city finder
✅ Safety briefing with BAFU levels
✅ Interactive OpenStreetMap with all stations
✅ Shop cart and checkout (UCP)
Perfect for:
Visual regression testing
Design system verification
Quick overview of all UI components
Debugging layout and styling issues
📖 Documentation
ARCHITECTURE.md — Comprehensive architecture guide
CLAUDE.md — Development guide for AI assistants
specs/ADR_COMPENDIUM.md — 18 Architecture Decision Records
docs/ — API documentation and planning
📁 Project Structure
aareguru-mcp/
├── src/aareguru_mcp/
│ ├── apps/ # 9 FastMCPApps (conditions, history, compare, …, map, shop)
│ ├── server.py # FastMCP server, tools, resources, prompts
│ ├── service.py # Business logic service layer
│ ├── client.py # Async HTTP client with caching
│ ├── models.py # Pydantic models
│ └── helpers.py # Shared utilities
├── tests/ # 464 tests, 80% coverage (0 skipped)
├── docs/ # API docs, testing, implementation notes
├── ARCHITECTURE.md
├── CLAUDE.md
└── pyproject.toml🔐 Privacy
No personal data is collected. See PRIVACY.md for the full policy.
🔒 Data Attribution
Data from BAFU, Aare.guru, MeteoSchweiz, Meteotest.
Non-commercial use only — Contact: aaregurus@existenz.ch
📄 License
MIT License — See LICENCE.md
Built with ❤️ for the Swiss Aare swimming community
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/schlpbch/aareguru-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server