Open Meteo MCP Server
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., "@Open Meteo MCP Serverwhat's the current weather and air quality in New York?"
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.
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 startDocker Usage
Build and Run
# Build the Docker image
npm run docker:build
# Run the container
npm run docker:runUsing Docker Compose
# Build and start with compose
npm run docker:up
# Stop the service
npm run docker:down
# View logs
npm run docker:logsUsage
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 formatend_date(required): End date in YYYY-MM-DD formatdaily(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 forcount(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 formatend_date(required): End date in YYYY-MM-DD formatmodels(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 toolBuild 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 cleanAdding New Tools
Create a new tool file in
src/tools/Export an async function that handles the tool logic
Add the tool to the imports in
src/index.tsAdd the tool definition to the
ListToolsRequestSchemahandlerAdd the tool case to the
CallToolRequestSchemahandler
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
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
MIT License - see LICENSE file for details
Acknowledgments
Open Meteo for providing free weather APIs
Model Context Protocol for the MCP specification
Support
For issues and questions:
Check the Open Meteo documentation
Review the error messages for specific guidance
Open an issue in this repository for bugs or feature requests
Available Tools
7 toolsget_air_qualityC
Get air quality data and forecasts for a location
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate (-90 to 90) | |
| longitude | Yes | Longitude coordinate (-180 to 180) | |
| days | No | Number of forecast days (1-5, default: 3) | |
| current | No | Include current air quality (default: true) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate (-90 to 90) | |
| longitude | Yes | Longitude coordinate (-180 to 180) | |
| start_date | Yes | Start date in YYYY-MM-DD format | |
| end_date | Yes | End date in YYYY-MM-DD format | |
| models | No | Climate models to use (default: all available) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate (-90 to 90) | |
| longitude | Yes | Longitude coordinate (-180 to 180) | |
| units | No | Temperature units (default: celsius) | celsius |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate (-90 to 90) | |
| longitude | Yes | Longitude coordinate (-180 to 180) | |
| start_date | Yes | Start date in YYYY-MM-DD format | |
| end_date | Yes | End date in YYYY-MM-DD format | |
| daily | No | Include daily data (default: true) | |
| hourly | No | Include hourly data (default: false) | |
| units | No | Temperature units (default: celsius) | celsius |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate (-90 to 90) | |
| longitude | Yes | Longitude coordinate (-180 to 180) | |
| days | No | Number of forecast days (1-7, default: 7) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate (-90 to 90) | |
| longitude | Yes | Longitude coordinate (-180 to 180) | |
| days | No | Number of forecast days (1-16, default: 7) | |
| hourly | No | Include hourly forecast (default: true) | |
| daily | No | Include daily forecast (default: true) | |
| units | No | Temperature units (default: celsius) | celsius |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Location name to search for | |
| count | No | Maximum number of results (1-100, default: 10) | |
| language | No | Language for the results (default: en) | en |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Smarter Weather MCP: forecasts, alerts, outlooks, observations, AQI, grids, and map imagery.
350+ production-ready APIs through one MCP server ā weather, geocoding, validation, financial data.
Open-Meteo MCP ā weather forecast + historical reanalysis + sister APIs
Geocoding, truck routing, traffic, weather, and place search via MCP ā 11 hosted tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn 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.1MIT
- AlicenseNot gradedqualityDmaintenanceMCP Server for global weather, forecasts, air quality, and climate data using Open-Meteo, no API key required.MIT
- AlicenseNot gradedqualityDmaintenanceEnables to interact with comprehensive weather data through the MCP protocol, including current conditions, multi-day forecasts, hourly forecasts, and geocoding.22MIT
- AlicenseNot gradedqualityBmaintenanceMCP 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.77MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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