Skip to main content
Glama
schlpbch

Aareguru MCP Server

by schlpbch

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_current_temperature

Retrieves current water temperature for a single city.

Takes city parameter (optional, default: Bern).

Use this for quick temperature checks and simple "how warm is the water?" questions. Returns temperature in Celsius, Swiss German description (e.g., geil aber chli chalt), and swimming suitability.

For multiple cities: Use compare_cities instead - it's 8-13x faster.

Args: city: City identifier (e.g., 'Bern', 'Thun', 'basel', 'olten'). Use compare_cities to discover locations.

Returns: Dictionary containing: - city (str): City identifier - temperature (float): Water temperature in Celsius - temperature_text (str): Swiss German description - swiss_german_explanation (str): English translation of Swiss German phrase - name (str): Location name - warning (str | None): Safety warning if flow is dangerous - suggestion (str): Swimming recommendation based on temperature - seasonal_advice (str): Season-specific swimming guidance - temperature_prec (float): Precise temperature value - temperature_text_short (str): Short temperature description - longname (str): Full location name

get_current_conditions

Retrieves comprehensive swimming conditions for a single city.

Takes city parameter (optional, default: Bern). Returns water temperature, flow rate, water height, weather conditions, and 2-hour forecast.

Use this for safety assessments, "is it safe to swim?" questions, and when users need a complete picture before swimming. This is the most detailed single-city tool.

For comparing multiple cities: Use compare_cities instead - it's 8-13x faster.

Args: city: City identifier (e.g., 'Bern', 'Thun', 'basel', 'olten'). Use compare_cities to discover locations.

Returns: Dictionary containing: - city (str): City identifier - aare (dict): Aare river data with temperature, flow, height, and forecast - location (str): Location name - location_long (str): Full location name - temperature (float): Water temperature in Celsius - temperature_text (str): Swiss German temperature description - swiss_german_explanation (str): English translation - temperature_text_short (str): Short description - flow (float): Flow rate in m³/s - flow_text (str): Flow description - height (float): Water height in meters - forecast2h (float): Temperature forecast for 2 hours - forecast2h_text (str): Forecast description - warning (str | None): Safety warning if applicable - seasonal_advice (str): Season-specific guidance - weather (dict | None): Current weather conditions - forecast (dict | None): Weather forecast

get_historical_data

Retrieves historical time-series data for trend analysis.

Takes city, start, and end parameters (all required). Returns hourly data points for temperature and flow.

Use this for questions like "how has temperature changed this week?" or "what was the warmest day this month?"

Args: city: City identifier (e.g., 'Bern', 'Thun', 'basel', 'olten') start: Start date/time. Accepts ISO format (2024-11-01T00:00:00Z), Unix timestamp, or relative expressions like '-7 days', '-1 week'. end: End date/time. Accepts ISO format, Unix timestamp, or 'now' for current time.

Returns: Dictionary containing: - timestamps (list[str]): ISO 8601 timestamps for each data point - temperatures (list[float]): Water temperatures in Celsius - flows (list[float]): Flow rates in m³/s - city (str): City identifier - start (str): Start timestamp of data range - end (str): End timestamp of data range

get_flow_danger_level

Retrieves current flow rate and safety assessment.

Takes city parameter (optional, default: Bern). Returns flow rate (m³/s), danger level, and safety recommendations based on BAFU thresholds.

Use this for safety-critical questions about current strength and danger.

Flow thresholds:

  • <100: safe

  • 100-220: moderate

  • 220-300: elevated

  • 300-430: high/dangerous

  • >430: very high/extremely dangerous

Args: city: City identifier (e.g., 'Bern', 'Thun', 'basel', 'olten'). Use compare_cities to discover available locations.

Returns: Dictionary containing: - city (str): City identifier - flow (float | None): Current flow rate in m³/s - flow_text (str | None): Flow description - flow_threshold (float): Danger threshold for this location - safety_assessment (str): Safety evaluation (e.g., 'Safe', 'Dangerous') - danger_level (int): Numeric danger level (1-5, higher is more dangerous)

compare_cities

⚡ FAST: Compare multiple cities with parallel fetching (8-13x faster).

This is the recommended tool for comparing cities. Fetches all city data concurrently instead of sequentially.

Performance: 10 cities in ~60-100ms vs ~800ms sequential

Args: cities: List of city identifiers (e.g., ['Bern', 'Thun']). If None, compares all available cities.

Returns: Dictionary with comparison results including temperature ranking, safety status, and recommendations: - cities (list): List of city data with temperature, flow, safety - warmest (dict): City with highest temperature - coldest (dict): City with lowest temperature - safe_count (int): Number of cities with safe flow levels - total_count (int): Total number of cities compared

get_forecasts

⚡ FAST: Get forecasts for multiple cities in parallel (2-5x faster).

This is the recommended tool for batch forecast operations. Fetches all forecasts concurrently.

Args: cities: List of city identifiers (e.g., ['Bern', 'Thun'])

Returns: Dictionary mapping city names to forecast data: - forecasts (dict): Map of city to forecast data with current temp, 2-hour forecast, and trend

Prompts

Interactive templates invoked by user choice

NameDescription
daily-swimming-reportGenerates comprehensive daily swimming report combining conditions, safety. **Args:** city: City to generate the report for (default: `Bern`). Use `compare_cities` to discover available locations. include_forecast: Whether to include 2-hour forecast in the report (default: `true`) **Returns:** Prompt template string instructing the LLM to create a formatted report with current conditions, safety assessment, forecast, and recommendations. The report includes Swiss German descriptions and safety warnings.
compare-swimming-spotsGenerates comparison of all swimming locations ranked by temperature and safety. **Args:** min_temperature: Optional minimum temperature threshold in Celsius (e.g., `18.0`). Filter out cities below this temperature. safety_only: Whether to show only safe locations (flow < 150 m³/s). Default: `false`. **Returns:** Prompt template string instructing the LLM to compare all cities, rank them by temperature and safety, and provide a recommendation for the best swimming location today.
weekly-trend-analysisGenerates trend analysis showing temperature and flow patterns with outlook. **Args:** city: City to analyze (default: `Bern`). Use `compare_cities` to discover locations. days: Number of days to analyze (`3`, `7`, or `14`). Default: `7` days (one week). **Returns:** Prompt template string instructing the LLM to analyze historical data, identify temperature and flow trends, and provide outlook recommendations for optimal swimming times.

Resources

Contextual data attached and managed by the client

NameDescription
get_cities_resourceRetrieves the complete list of cities with Aare monitoring stations. Returns JSON array containing city identifiers, full names, coordinates, and current temperature readings for all monitored locations. Use this resource for location discovery and initial data exploration. Returns: JSON string with array of city objects, each containing: - city (str): City identifier (e.g., 'Bern', 'Thun') - name (str): Display name - longname (str): Full location name - coordinates (object): Latitude and longitude - aare (float): Current water temperature in Celsius

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