Skip to main content
Glama
SarthakRay26

Open Meteo MCP Server

by SarthakRay26

MCP Open Meteo Server

A comprehensive Model Context Protocol (MCP) server for accessing Open Meteo weather data and services. This server provides multiple tools to interact with various Open Meteo APIs, including current weather, forecasts, historical data, air quality, marine weather, and climate data.

Features

šŸŒ¤ļø Weather Services

  • Current Weather - Real-time weather conditions for any location

  • Weather Forecast - Detailed hourly and daily forecasts up to 16 days

  • Historical Weather - Past weather data with comprehensive statistics

šŸŒ Location Services

  • Geocoding - Search for locations and get coordinates

  • Reverse Geocoding - Get location details from coordinates

🌊 Environmental Data

  • Air Quality - Air pollution data with AQI indices (European & US)

  • Marine Weather - Wave heights, ocean currents, and marine conditions

  • Climate Data - Long-term climate projections and historical climate data

šŸ“Š Data Features

  • Multiple temperature units (Celsius/Fahrenheit)

  • Comprehensive weather statistics

  • Health recommendations for air quality

  • Marine safety information

  • Climate model comparisons

Related MCP server: Weather MCP Server

Installation

Local Development

# Clone the repository
git clone <repository-url>
cd mcp-open-meteo

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

Docker Usage

Build and Run

# Build the Docker image
npm run docker:build

# Run the container
npm run docker:run

Using Docker Compose

# Build and start with compose
npm run docker:up

# Stop the service
npm run docker:down

# View logs
npm run docker:logs

Usage

MCP Configuration

Local Node.js

Add this server to your MCP client configuration:

{
  "mcpServers": {
    "open-meteo": {
      "command": "node",
      "args": ["path/to/mcp-open-meteo/dist/index.js"]
    }
  }
}

Docker

{
  "mcpServers": {
    "open-meteo": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "open-meteo-mcp-server"]
    }
  }
}

Docker Compose

{
  "mcpServers": {
    "open-meteo": {
      "command": "docker-compose",
      "args": ["run", "--rm", "open-meteo-mcp"]
    }
  }
}

Available Tools

1. Get Current Weather

Get real-time weather conditions for any location.

{
  "name": "get_current_weather",
  "arguments": {
    "latitude": 40.7128,
    "longitude": -74.0060,
    "units": "celsius"
  }
}

Parameters:

  • latitude (required): Latitude coordinate (-90 to 90)

  • longitude (required): Longitude coordinate (-180 to 180)

  • units (optional): Temperature units ("celsius" or "fahrenheit", default: "celsius")

2. Get Weather Forecast

Get detailed weather forecasts with hourly and daily data.

{
  "name": "get_weather_forecast",
  "arguments": {
    "latitude": 40.7128,
    "longitude": -74.0060,
    "days": 7,
    "hourly": true,
    "daily": true,
    "units": "celsius"
  }
}

Parameters:

  • latitude (required): Latitude coordinate (-90 to 90)

  • longitude (required): Longitude coordinate (-180 to 180)

  • days (optional): Number of forecast days (1-16, default: 7)

  • hourly (optional): Include hourly forecast (default: true)

  • daily (optional): Include daily forecast (default: true)

  • units (optional): Temperature units (default: "celsius")

3. Get Historical Weather

Retrieve historical weather data for analysis.

{
  "name": "get_historical_weather",
  "arguments": {
    "latitude": 40.7128,
    "longitude": -74.0060,
    "start_date": "2023-01-01",
    "end_date": "2023-01-31",
    "daily": true,
    "hourly": false,
    "units": "celsius"
  }
}

Parameters:

  • latitude (required): Latitude coordinate (-90 to 90)

  • longitude (required): Longitude coordinate (-180 to 180)

  • start_date (required): Start date in YYYY-MM-DD format

  • end_date (required): End date in YYYY-MM-DD format

  • daily (optional): Include daily data (default: true)

  • hourly (optional): Include hourly data (default: false)

  • units (optional): Temperature units (default: "celsius")

4. Search Locations

Find locations by name and get their coordinates.

{
  "name": "search_locations",
  "arguments": {
    "name": "New York",
    "count": 10,
    "language": "en"
  }
}

Parameters:

  • name (required): Location name to search for

  • count (optional): Maximum number of results (1-100, default: 10)

  • language (optional): Language for results (default: "en")

5. Get Air Quality

Retrieve air quality data and forecasts.

{
  "name": "get_air_quality",
  "arguments": {
    "latitude": 40.7128,
    "longitude": -74.0060,
    "days": 3,
    "current": true
  }
}

Parameters:

  • latitude (required): Latitude coordinate (-90 to 90)

  • longitude (required): Longitude coordinate (-180 to 180)

  • days (optional): Number of forecast days (1-5, default: 3)

  • current (optional): Include current air quality (default: true)

6. Get Marine Weather

Get marine weather forecasts including waves and ocean conditions.

{
  "name": "get_marine_weather",
  "arguments": {
    "latitude": 40.7128,
    "longitude": -74.0060,
    "days": 7
  }
}

Parameters:

  • latitude (required): Latitude coordinate (-90 to 90)

  • longitude (required): Longitude coordinate (-180 to 180)

  • days (optional): Number of forecast days (1-7, default: 7)

7. Get Climate Data

Access climate change scenarios and long-term climate data.

{
  "name": "get_climate_data",
  "arguments": {
    "latitude": 40.7128,
    "longitude": -74.0060,
    "start_date": "2020-01-01",
    "end_date": "2020-12-31",
    "models": ["EC_Earth3P_HR", "FGOALS_f3_H"]
  }
}

Parameters:

  • latitude (required): Latitude coordinate (-90 to 90)

  • longitude (required): Longitude coordinate (-180 to 180)

  • start_date (required): Start date in YYYY-MM-DD format

  • end_date (required): End date in YYYY-MM-DD format

  • models (optional): Array of climate models to use

Available Climate Models

  • EC_Earth3P_HR - EC-Earth3P-HR (High Resolution European Centre)

  • FGOALS_f3_H - FGOALS-f3-H (Chinese Academy of Sciences)

  • HiRAM_SIT_HR - HiRAM-SIT-HR (NOAA High Resolution)

  • MRI_AGCM3_2_S - MRI-AGCM3-2-S (Japan Meteorological Research Institute)

  • EC_Earth3P - EC-Earth3P (European Centre Standard)

  • FGOALS_f3 - FGOALS-f3 (Chinese Academy of Sciences Standard)

  • MPI_ESM1_2_HR - MPI-ESM1-2-HR (Max Planck Institute High Resolution)

  • MRI_AGCM3_2 - MRI-AGCM3-2 (Japan Meteorological Research Institute Standard)

Example Workflows

1. Complete Weather Analysis for a City

# 1. First, search for the location
search_locations: {name: "London, UK"}

# 2. Get current weather
get_current_weather: {latitude: 51.5074, longitude: -0.1278}

# 3. Get 7-day forecast
get_weather_forecast: {latitude: 51.5074, longitude: -0.1278, days: 7}

# 4. Check air quality
get_air_quality: {latitude: 51.5074, longitude: -0.1278}

2. Historical Weather Analysis

# Compare weather patterns between years
get_historical_weather: {
  latitude: 40.7128, 
  longitude: -74.0060, 
  start_date: "2022-06-01", 
  end_date: "2022-08-31"
}

get_historical_weather: {
  latitude: 40.7128, 
  longitude: -74.0060, 
  start_date: "2023-06-01", 
  end_date: "2023-08-31"
}

3. Marine Weather for Sailing

# Check marine conditions before sailing
get_marine_weather: {latitude: 36.1699, longitude: -5.3543, days: 3}
get_weather_forecast: {latitude: 36.1699, longitude: -5.3543, days: 3}

4. Climate Research

# Long-term climate analysis
get_climate_data: {
  latitude: 59.3293,
  longitude: 18.0686,
  start_date: "1990-01-01",
  end_date: "2020-12-31",
  models: ["EC_Earth3P_HR", "MPI_ESM1_2_HR"]
}

Data Sources

This server uses the following Open Meteo APIs:

  • Weather API - Current weather and forecasts

  • Historical Weather API - Past weather data

  • Geocoding API - Location search and coordinates

  • Air Quality API - Pollution and air quality data

  • Marine Weather API - Ocean and wave conditions

  • Climate API - Long-term climate data and projections

Development

Project Structure

src/
ā”œā”€ā”€ index.ts              # Main MCP server
ā”œā”€ā”€ types/
│   └── openmeteo.ts     # TypeScript types and schemas
└── tools/
    ā”œā”€ā”€ current-weather.ts    # Current weather tool
    ā”œā”€ā”€ weather-forecast.ts   # Weather forecast tool
    ā”œā”€ā”€ historical-weather.ts # Historical weather tool
    ā”œā”€ā”€ geocoding.ts         # Location search tool
    ā”œā”€ā”€ air-quality.ts       # Air quality tool
    ā”œā”€ā”€ marine-weather.ts    # Marine weather tool
    └── climate-data.ts      # Climate data tool

Build Commands

# Install dependencies
npm install

# Build TypeScript
npm run build

# Start development server
npm run dev

# Watch for changes
npm run watch

# Clean build directory
npm run clean

Adding New Tools

  1. Create a new tool file in src/tools/

  2. Export an async function that handles the tool logic

  3. Add the tool to the imports in src/index.ts

  4. Add the tool definition to the ListToolsRequestSchema handler

  5. Add the tool case to the CallToolRequestSchema handler

API Rate Limits

Open Meteo APIs have the following rate limits:

  • Free tier: 10,000 API calls per day

  • Commercial tier: Higher limits available

For high-volume usage, consider:

  • Implementing caching mechanisms

  • Using the commercial API for higher rate limits

  • Batching requests when possible

Error Handling

The server includes comprehensive error handling:

  • Input validation for all parameters

  • API error response handling

  • Network timeout and retry logic

  • Informative error messages

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

License

MIT License - see LICENSE file for details

Acknowledgments

Support

For issues and questions:

  1. Check the Open Meteo documentation

  2. Review the error messages for specific guidance

  3. Open an issue in this repository for bugs or feature requests

Available Tools

7 tools
get_air_qualityC

Get air quality data and forecasts for a location

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate (-90 to 90)
longitudeYesLongitude coordinate (-180 to 180)
daysNoNumber of forecast days (1-5, default: 3)
currentNoInclude current air quality (default: true)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions getting 'data and forecasts,' implying a read-only operation, but doesn't specify whether this requires authentication, rate limits, data freshness, or error handling. For a tool with no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'Get air quality data and forecasts for a location.' It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. Every part of the sentence earns its place by specifying what is retrieved and for what scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what 'air quality data' includes (e.g., AQI, pollutants), how forecasts are structured, or the response format. Without annotations or an output schema, the agent lacks critical context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting all parameters (latitude, longitude, days, current) with types, ranges, and defaults. The description adds no additional parameter semantics beyond what the schema provides, such as explaining the format of returned data or interactions between parameters. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get air quality data and forecasts for a location.' It specifies the verb ('Get'), resource ('air quality data and forecasts'), and scope ('for a location'), which distinguishes it from siblings like get_current_weather or get_weather_forecast. However, it doesn't explicitly differentiate from get_climate_data, which might overlap in some contexts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when-not scenarios, prerequisites, or comparisons to sibling tools like get_climate_data or get_weather_forecast. This leaves the agent to infer usage based on the tool name alone, which is insufficient for optimal selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_climate_dataC

Get climate change scenarios and long-term climate data

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate (-90 to 90)
longitudeYesLongitude coordinate (-180 to 180)
start_dateYesStart date in YYYY-MM-DD format
end_dateYesEnd date in YYYY-MM-DD format
modelsNoClimate models to use (default: all available)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It doesn't specify whether this is a read-only operation, what data format is returned, whether there are rate limits, authentication requirements, or any constraints beyond what's implied by the parameters. The description merely restates the tool's purpose without adding behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence that directly states the tool's purpose with zero wasted words. It's front-loaded with the core functionality and appropriately sized for a tool with well-documented parameters in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'climate change scenarios' means, what data is returned, format of results, or any behavioral aspects. The agent must rely entirely on the input schema for parameter details but has no guidance on output or usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning about parameters beyond what's in the schema (e.g., it doesn't explain what 'climate change scenarios' entail or how models affect results). The baseline score of 3 reflects adequate parameter documentation solely through the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('get') and resources ('climate change scenarios and long-term climate data'), distinguishing it from weather-focused siblings like get_current_weather or get_historical_weather. However, it doesn't explicitly differentiate from all siblings (e.g., get_air_quality might also provide climate-related data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when climate data is preferable to weather data, nor does it reference any sibling tools for comparison. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_weatherC

Get current weather conditions for a specific location

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate (-90 to 90)
longitudeYesLongitude coordinate (-180 to 180)
unitsNoTemperature units (default: celsius)celsius

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't mention any behavioral traits such as rate limits, authentication requirements, data freshness, error handling, or response format. This leaves significant gaps for an agent to understand operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a simple tool and gets straight to the point, earning full marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like rate limits or auth, nor does it explain return values (e.g., temperature, humidity). For a weather tool with siblings, more context on differentiation and usage would be needed for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-specific information beyond what's already in the input schema, which has 100% coverage with clear descriptions for latitude, longitude, and units. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate or add extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'current weather conditions for a specific location', making the purpose immediately understandable. However, it doesn't explicitly differentiate from siblings like get_weather_forecast (current vs. forecast) or get_historical_weather (current vs. historical), which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like get_weather_forecast for future predictions or get_historical_weather for past data, nor does it specify prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_historical_weatherB

Get historical weather data for a specific location and date range

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate (-90 to 90)
longitudeYesLongitude coordinate (-180 to 180)
start_dateYesStart date in YYYY-MM-DD format
end_dateYesEnd date in YYYY-MM-DD format
dailyNoInclude daily data (default: true)
hourlyNoInclude hourly data (default: false)
unitsNoTemperature units (default: celsius)celsius

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' data, implying a read-only operation, but doesn't mention any behavioral traits such as rate limits, authentication needs, data freshness, or what happens with invalid inputs. For a tool with 7 parameters and no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that is front-loaded with the core purpose. There is no wasted language or redundancy, making it highly concise and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no output schema, no annotations), the description is minimally adequate but lacks depth. It covers the basic purpose but doesn't address behavioral aspects, usage context, or output expectations. For a data retrieval tool with multiple parameters, more completeness would be beneficial, though the high schema coverage mitigates some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal semantic context beyond the input schema, mentioning 'location and date range' which aligns with the required parameters (latitude, longitude, start_date, end_date). However, with 100% schema description coverage, the schema already documents all parameters thoroughly, so the description doesn't add significant value. The baseline score of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Get') and resource ('historical weather data'), and specifies the scope ('for a specific location and date range'). However, it doesn't explicitly differentiate from sibling tools like 'get_current_weather' or 'get_weather_forecast' beyond the 'historical' qualifier, which is why it doesn't reach a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_current_weather' or 'get_weather_forecast'. It mentions the scope ('historical weather data') but doesn't clarify exclusions, prerequisites, or specific contexts where this tool is preferred over siblings, leaving the agent to infer usage based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_marine_weatherC

Get marine weather forecasts including waves and ocean conditions

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate (-90 to 90)
longitudeYesLongitude coordinate (-180 to 180)
daysNoNumber of forecast days (1-7, default: 7)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' forecasts, implying a read-only operation, but doesn't cover critical aspects like whether it requires authentication, has rate limits, returns real-time or cached data, error handling, or output format. For a tool with no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words and directly communicates the tool's function. However, it could be slightly more structured by explicitly mentioning the required parameters or context, but it's still highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 parameters, no output schema, no annotations), the description is incomplete. It lacks details on behavioral traits, usage guidelines, and output expectations. While the schema covers parameters well, the overall context for effective tool invocation is insufficient, especially without annotations to fill gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting all three parameters (latitude, longitude, days) with types, ranges, defaults, and requirements. The description adds no additional parameter semantics beyond implying marine context, which is already covered by the tool's name and purpose. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('marine weather forecasts'), including key components like waves and ocean conditions. However, it doesn't explicitly differentiate from sibling tools like 'get_current_weather' or 'get_weather_forecast', which might also provide weather data but potentially for different contexts or with different focuses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_current_weather' and 'get_weather_forecast', there's no indication of whether this tool is for marine-specific forecasts, how it differs in scope or data, or any prerequisites for usage. This leaves the agent without clear direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_weather_forecastC

Get weather forecast (hourly and daily) for a location

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate (-90 to 90)
longitudeYesLongitude coordinate (-180 to 180)
daysNoNumber of forecast days (1-16, default: 7)
hourlyNoInclude hourly forecast (default: true)
dailyNoInclude daily forecast (default: true)
unitsNoTemperature units (default: celsius)celsius

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the forecast types (hourly/daily) but doesn't cover critical aspects like rate limits, authentication needs, error conditions, response format, or data freshness. For a weather API tool with 6 parameters, this leaves significant behavioral gaps unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a straightforward weather forecast tool and front-loads the essential information. Every word earns its place in this concise formulation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (6 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what the forecast data looks like, how results are structured, or any limitations beyond what parameters imply. For a forecast tool that likely returns complex meteorological data, more context about the response would be valuable for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds minimal value beyond the schema by mentioning 'hourly and daily' forecasts, which corresponds to two boolean parameters. However, it doesn't provide additional context about parameter interactions or usage patterns beyond what's already in the structured schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('weather forecast') with specific scope ('hourly and daily') and target ('for a location'). It distinguishes from siblings like get_current_weather by specifying forecast data rather than current conditions, though it doesn't explicitly name alternatives. This makes the purpose clear but not fully differentiated from all siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_current_weather or get_historical_weather. It doesn't mention prerequisites, timing considerations, or specific use cases. The agent must infer usage from the name and parameters alone, which is insufficient for optimal tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_locationsB

Search for locations by name and get their coordinates

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLocation name to search for
countNoMaximum number of results (1-100, default: 10)
languageNoLanguage for the results (default: en)en

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the action ('search') and outcome ('get coordinates'), but lacks details on permissions, rate limits, error handling, or response format. For a tool with no annotation coverage, this is insufficient to inform safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the tool's purpose without redundancy. It's front-loaded and wastes no words, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks behavioral details and usage context. Without an output schema, it doesn't explain return values, leaving gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters (name, count, language). The description adds no additional parameter semantics beyond what's in the schema, such as examples or search behavior nuances. Baseline 3 is appropriate when the schema handles documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search for locations by name and get their coordinates.' It specifies the verb ('search'), resource ('locations'), and outcome ('get their coordinates'). However, it doesn't explicitly differentiate from sibling tools like 'get_current_weather' or 'get_air_quality', which focus on weather data rather than location search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or suggest scenarios where location search is appropriate (e.g., before fetching weather data). Without such context, an agent might struggle to choose between this and other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting different meteorological data types (air quality, climate, current weather, historical weather, marine weather, forecasts, and location search). There is no overlap or ambiguity in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_air_quality, get_current_weather). The naming is uniform across all seven tools, with no deviations in style or convention.

Tool Count5/5

With 7 tools, the server is well-scoped for a weather and climate data service. Each tool serves a specific, non-redundant function, and the count is appropriate for covering key meteorological queries without being overwhelming or insufficient.

Completeness5/5

The toolset provides comprehensive coverage for the meteorological domain, including current conditions, forecasts, historical data, air quality, climate scenarios, marine weather, and location search. There are no obvious gaps, and the tools support a full range of weather-related workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides real-time weather data, hourly forecasts, and daily summaries using the free Open-Meteo API with no API key required. It enables users to search for weather conditions by specific coordinates or city names across multiple measurement units.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables to interact with comprehensive weather data through the MCP protocol, including current conditions, multi-day forecasts, hourly forecasts, and geocoding.
    22
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Open-Meteo free weather APIs, offering 16 tools for forecast, historical, air quality, marine, flood, ensemble, climate, seasonal, and scheduled data collection with no API key required.
    77
    MIT

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/SarthakRay26/open-meteo-MCP'

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