OpenWeatherMap MCP Server
The OpenWeatherMap MCP Server provides access to comprehensive weather data and location services through the OpenWeatherMap API:
Current Weather: Get real-time conditions for any location
Weather Forecasts:
5-day forecasts with 3-hour intervals
Hourly forecasts (up to 48 hours)
Daily forecasts (up to 8 days) with temperature ranges and astronomical data
Minute-by-minute precipitation forecasts for the next hour
Weather Alerts: Access active warnings with severity classification
Air Quality: Monitor real-time pollution data, historical measurements, and forecasts
Location Services:
Convert coordinates to location details (reverse geocoding)
Convert location names/addresses to coordinates (geocoding)
Customization Options:
Choose temperature units (metric, imperial, or standard)
Control data scope and result limits
Used as the runtime environment for the OpenWeatherMap MCP server, supporting its installation, development, and execution.
Supports environment variable configuration for the OpenWeatherMap MCP server, including API key storage and transport settings.
Used for version control and installation of the OpenWeatherMap MCP server through repository cloning.
Hosts the OpenWeatherMap MCP server repository for download and installation, and provides issue tracking for support.
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., "@OpenWeatherMap MCP Serverwhat's the weather forecast for New York this weekend?"
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.
OpenWeatherMap MCP Server
A Model Context Protocol (MCP) server that provides comprehensive weather data and forecasts through the OpenWeatherMap API. This server enables AI assistants to access real-time weather information, forecasts, air quality data, and location services.
Features
Weather Tools
Current Weather - Get current conditions for any location
Weather Forecast - 5-day weather forecast with 3-hour intervals
Hourly Forecast - Detailed hourly forecasts for up to 48 hours
Daily Forecast - Daily weather forecasts for up to 8 days with temperature ranges and astronomical data
Minutely Forecast - Minute-by-minute precipitation forecasts for the next hour
Weather Alerts - Active weather warnings and alerts with severity classification
Air Quality & Location
Current Air Pollution - Real-time air quality index and pollutant measurements
Location Info - Reverse geocoding to get location details from coordinates
OneCall Weather - Comprehensive weather data combining multiple forecasts
Air Pollution - Historical and forecast air quality data
Geocoding - Convert location names to coordinates
Related MCP server: Weather MCP
Installation
Prerequisites
Bun runtime
OpenWeatherMap API key (free at openweathermap.org)
Setup
Clone the repository:
git clone https://github.com/robertn702/mcp-openweathermap.git
cd mcp-openweathermapInstall dependencies:
bun installSet up your environment variables:
cp .env.example .env
# Edit .env and add your OpenWeatherMap API keyEnvironment variables:
OPENWEATHER_API_KEY- Your OpenWeatherMap API key (required for stdio transport only)PORT- Server port for HTTP transport (default: 3000)MCP_TRANSPORT- Transport type:stdioorhttpStream(default: stdio)MCP_ENDPOINT- HTTP endpoint path (default: /stream)
Usage
Running the Server
Stdio Transport (default):
bun run src/main.tsHTTP Stream Transport:
MCP_TRANSPORT=httpStream PORT=3000 bun run src/main.tsClaude Desktop Configuration
Add this configuration to your Claude Desktop MCP settings:
{
"mcpServers": {
"openweathermap": {
"command": "npx",
"args": ["mcp-openweathermap"],
"env": {
"OPENWEATHER_API_KEY": "your-api-key-here"
}
}
}
}API Tools
Weather Information
get-current-weather- Current weather conditionsget-weather-forecast- 5-day forecastget-hourly-forecast- Hourly forecasts (up to 48 hours)get-daily-forecast- Daily forecasts (up to 8 days)get-minutely-forecast- Minute-by-minute precipitation
Alerts & Air Quality
get-weather-alerts- Weather warnings and alertsget-current-air-pollution- Current air quality dataget-air-pollution- Air quality forecasts and history
Location Services
get-location-info- Reverse geocoding from coordinatesgeocode-location- Convert addresses to coordinatesget-onecall-weather- Comprehensive weather data
Development
Running in Development
bun run src/main.tsTesting with MCP Inspector
bun run src/main.tsThen connect the MCP Inspector to test the tools interactively.
Build
bun run buildAuthentication
Stdio Transport: Requires OPENWEATHER_API_KEY environment variable.
HTTP Transport: The OpenWeatherMap API key is passed as a bearer token in the HTTP request headers. No environment variable needed.
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
openweather-api-node Library - The underlying API client
Available Tools
11 toolsgeocode-locationC
Convert location name to coordinates or vice versa
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 5) | |
| query | Yes | Location name, zip code, or address to geocode |
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 conversion action but lacks details on error handling, rate limits, authentication needs, or what happens with ambiguous queries. For a tool with no annotation coverage, this is a significant gap in transparency about its operational behavior.
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 and front-loaded, consisting of a single, clear sentence that directly states the tool's purpose. There is no wasted language or unnecessary elaboration, making it efficient and easy to parse for an AI agent.
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 complexity of geocoding (which can involve ambiguous inputs and varied outputs), the lack of annotations, and no output schema, the description is incomplete. It doesn't explain return values, error conditions, or how reverse geocoding works (coordinates to location name). For a tool with no structured support, more contextual detail is needed to be fully helpful.
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 already documents both parameters ('query' and 'limit') with clear descriptions. The tool description adds no additional meaning beyond what the schema provides, such as examples or edge cases. With high schema coverage, a baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
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: converting location names to coordinates or vice versa. It specifies the verb 'convert' and the resource 'location', making it understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-location-info', which might provide similar or overlapping functionality, preventing 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 any context, prerequisites, or exclusions, and with sibling tools like 'get-location-info' available, there's no indication of how this tool differs or when it should be preferred. This lack of comparative guidance limits its utility for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-air-pollutionC
Get air quality index and pollution data
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate | |
| longitude | Yes | Longitude coordinate |
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 what data is retrieved but doesn't mention any behavioral traits such as rate limits, authentication requirements, data freshness (real-time vs. cached), error conditions, or response format. For a data retrieval tool with zero annotation coverage, this is a significant gap.
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 and front-loaded with a single, clear sentence: 'Get air quality index and pollution data'. Every word earns its place, with no redundant or unnecessary information. It efficiently communicates the core purpose without verbosity.
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 complexity of environmental data tools and the lack of annotations and output schema, the description is incomplete. It doesn't address key contextual aspects like data sources, temporal scope (current vs. historical), units of measurement, or how results are structured. For a tool with no structured output information, more descriptive context is needed.
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%, with both parameters ('latitude' and 'longitude') clearly documented in the schema. The description doesn't add any meaningful parameter semantics beyond what's already in the schema (e.g., it doesn't explain coordinate systems, precision requirements, or geographic scope). Baseline 3 is appropriate when 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 function: 'Get air quality index and pollution data' with a specific verb ('Get') and resource ('air quality index and pollution data'). However, it doesn't distinguish itself from the sibling tool 'get-current-air-pollution', which appears to serve a very similar purpose, making differentiation unclear.
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 sibling tools like 'get-current-air-pollution' and 'get-current-weather' available, there's no indication of whether this tool is for historical data, specific timeframes, or how it differs from other pollution/weather tools. Usage context is implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-current-air-pollutionC
Get current air quality data
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City name (e.g., 'New York') or coordinates (e.g., 'lat,lon') |
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. 'Get current air quality data' implies a read-only operation but doesn't specify data freshness, rate limits, authentication requirements, error conditions, or response format. For a tool that likely makes external API calls, this leaves significant behavioral aspects undocumented.
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 at just 5 words, which is appropriate for a simple data retrieval tool. It's front-loaded with the core purpose. However, given the lack of differentiation from siblings and missing behavioral context, this brevity might be under-specification rather than optimal 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 tool's apparent complexity (retrieving current air quality data likely involves external API calls), no annotations, no output schema, and multiple similar sibling tools, the description is incomplete. It doesn't explain what 'current' means, what data is returned, how it differs from 'get-air-pollution', or any operational constraints.
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 mentions no parameters at all, while the schema has 100% coverage with a well-documented 'location' parameter. Since schema_description_coverage is high (100%), the baseline score is 3. The description adds no parameter information beyond what the schema already provides.
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 'Get current air quality data' clearly states the verb ('Get') and resource ('current air quality data'), making the basic purpose understandable. However, it doesn't distinguish this tool from its sibling 'get-air-pollution' - both appear to retrieve air pollution data, so the distinction isn't clear from the description alone.
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 about when to use this tool versus alternatives. With multiple weather/pollution-related siblings including 'get-air-pollution', 'get-current-weather', and various forecast tools, there's no indication of what makes this tool unique or when it should be preferred over other options.
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 location
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City name (e.g., 'New York') or coordinates (e.g., 'lat,lon') | |
| units | No | Temperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It lacks information about rate limits, error handling, data freshness, authentication needs, or response format. For a read operation with no annotation coverage, this is insufficient.
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 with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple tool.
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 no annotations and no output schema, the description is too minimal. It doesn't explain what 'current weather conditions' includes (temperature, humidity, etc.), response format, or behavioral constraints. Given the complexity and lack of structured data, it should provide more 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 both parameters. The description adds no parameter-specific information beyond what's in the schema. Baseline 3 is appropriate when the schema does all the work.
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 the resource 'current weather conditions for a location', making the purpose explicit. It distinguishes from siblings like forecasts or alerts by specifying 'current' conditions, but doesn't explicitly contrast with all alternatives like 'get-weather-forecast'.
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-daily-forecast' or 'get-hourly-forecast'. It mentions 'current weather conditions' which implies real-time data, but offers no explicit usage context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-daily-forecastC
Get daily weather forecast for up to 8 days
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to forecast (1-8, default: 8) | |
| include_today | No | Include today's forecast (default: false) | |
| location | Yes | City name (e.g., 'New York') or coordinates (e.g., 'lat,lon') | |
| units | No | Temperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin) |
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 mentions the 8-day limit but doesn't cover other critical aspects like rate limits, authentication needs, error handling, or what the output looks like (e.g., format, data fields). 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 that front-loads the core purpose without unnecessary words. It earns its place by clearly stating the tool's function and key constraint (8-day limit), making it easy to parse.
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 no annotations and no output schema, the description is incomplete. It doesn't explain what the forecast includes (e.g., temperature, precipitation), how results are structured, or any behavioral traits like rate limits. For a tool with 4 parameters and rich functionality, this leaves too much undefined 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 parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain interactions between parameters like 'days' and 'include_today'). Baseline 3 is appropriate when 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 action ('Get daily weather forecast') and resource ('weather forecast'), specifying the scope ('for up to 8 days'). It distinguishes from siblings like 'get-current-weather' by focusing on daily forecasts, though it doesn't explicitly differentiate from 'get-weather-forecast' which might be similar.
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-hourly-forecast' or 'get-weather-forecast'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to 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-hourly-forecastB
Get hourly weather forecast for up to 48 hours
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Number of hours to forecast (1-48, default: 48) | |
| location | Yes | City name (e.g., 'New York') or coordinates (e.g., 'lat,lon') | |
| units | No | Temperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin) |
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 mentions the 48-hour limit, which is useful, but doesn't cover other important aspects like rate limits, authentication needs, error handling, or what the output format looks like (e.g., JSON structure, timestamps). For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
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 ('Get hourly weather forecast') and includes the key constraint ('for up to 48 hours'). There is no wasted text, and it's appropriately sized for the tool's complexity.
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 and scope but lacks details on usage guidelines, behavioral traits, and output format. With no output schema, the description should ideally hint at what data is returned, but it doesn't, leaving the agent uncertain about the response structure.
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, with clear documentation for all three parameters (hours, location, units). The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting. However, it doesn't compensate for any gaps since there are none.
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 action ('Get') and resource ('hourly weather forecast') with a specific scope ('for up to 48 hours'). It distinguishes from siblings like 'get-daily-forecast' by specifying 'hourly' but doesn't explicitly differentiate from 'get-minutely-forecast' or 'get-weather-forecast' which might overlap.
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?
No guidance is provided on when to use this tool versus alternatives like 'get-daily-forecast' or 'get-current-weather'. The description mentions the 48-hour limit but doesn't explain if this is the best tool for short-term vs. long-term forecasts or how it relates to other forecast tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-location-infoB
Get location information from coordinates (reverse geocoding)
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude coordinate | |
| longitude | Yes | Longitude coordinate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation, potential rate limits, authentication needs, error handling (e.g., invalid coordinates), or what happens with edge cases (e.g., coordinates over water). The phrase 'reverse geocoding' hints at a standard mapping service behavior, but lacks specifics needed for full 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 ('Get location information') and adds clarifying context ('from coordinates (reverse geocoding)'). There is zero wasted verbiage, 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 moderate complexity (reverse geocoding with 2 parameters), no annotations, and no output schema, the description is incomplete. It fails to explain what information is returned (e.g., address components, place types), potential limitations (e.g., coverage areas, accuracy), or how results are structured. This leaves significant gaps for an agent to use the tool effectively.
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%, with clear descriptions for latitude and longitude parameters including valid ranges. The description adds no additional parameter semantics beyond what's in the schema, such as coordinate format (e.g., decimal degrees), precision requirements, or examples. Baseline 3 is appropriate since the schema adequately documents parameters.
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 action ('Get location information') and the method ('from coordinates (reverse geocoding)'), which distinguishes it from sibling tools like 'geocode-location' (likely forward geocoding). However, it doesn't specify what type of location information is returned (e.g., address, place name, administrative details), leaving some ambiguity.
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 implies usage when you have coordinates and need location information, but provides no explicit guidance on when to use this versus alternatives like 'geocode-location' (which likely converts addresses to coordinates). There's no mention of prerequisites, error conditions, or performance considerations, leaving usage context partially implied rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-minutely-forecastC
Get minute-by-minute precipitation forecast for next hour
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of minutes to forecast (1-60, default: 60) | |
| location | Yes | City name (e.g., 'New York') or coordinates (e.g., 'lat,lon') |
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 returns a forecast but doesn't describe key behavioral traits such as data format, potential errors (e.g., invalid location), rate limits, authentication needs, or whether it's a read-only operation. 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, front-loaded sentence: 'Get minute-by-minute precipitation forecast for next hour.' It efficiently conveys the core purpose without unnecessary words, making it easy for an agent to parse. Every part of the sentence earns its place by specifying key details like granularity and resource.
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 complexity of a weather forecasting tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral aspects (e.g., error handling, data format), usage context relative to siblings, and output details. While the schema covers parameters well, the overall context for effective tool invocation is insufficient, especially for a tool that likely returns structured data.
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, with clear documentation for both parameters ('limit' and 'location'), including constraints and examples. The description doesn't add any semantic details beyond what the schema provides (e.g., it doesn't explain how 'location' affects the forecast or the meaning of 'precipitation' in the output). Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 minute-by-minute precipitation forecast for next hour.' It specifies the action ('Get'), resource ('precipitation forecast'), and temporal scope ('minute-by-minute... for next hour'), which is specific and informative. However, it doesn't explicitly distinguish this tool from sibling tools like 'get-hourly-forecast' or 'get-daily-forecast' in terms of granularity or precipitation focus, missing full sibling differentiation.
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 like 'get-hourly-forecast' or 'get-daily-forecast' for comparison, nor does it specify use cases or exclusions (e.g., when precipitation data is needed vs. general weather). This leaves the agent without context for tool selection among similar weather-related options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-onecall-weatherC
Get comprehensive weather data (current + 7-day forecast)
| Name | Required | Description | Default |
|---|---|---|---|
| exclude | No | Parts of weather data to exclude from the response | |
| latitude | Yes | Latitude coordinate | |
| longitude | Yes | Longitude coordinate | |
| units | No | Temperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin) |
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 'comprehensive weather data' but doesn't describe what that includes beyond 'current + 7-day forecast', nor does it mention rate limits, authentication needs, error conditions, or response format. For a weather API tool with no annotation coverage, this is inadequate.
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 purpose without waste. It's appropriately sized and front-loaded with the essential information.
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 weather data tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'comprehensive' means beyond mentioning current and 7-day forecast, nor does it help the agent understand when to choose this tool over its many specialized siblings. The description should provide more context about the tool's scope and differentiation.
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 already fully documents all 4 parameters. The description adds no parameter information beyond what's in the schema. The baseline score of 3 is appropriate when the schema does all the heavy lifting for parameter 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: 'Get comprehensive weather data (current + 7-day forecast)'. It specifies both the verb ('Get') and the resource ('weather data') with scope details. However, it doesn't explicitly distinguish this comprehensive tool from its many siblings that provide specific weather components (current, hourly, daily, etc.), which would require a 5.
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 its many siblings. With tools like get-current-weather, get-daily-forecast, get-hourly-forecast, and get-weather-forecast available, the agent receives no help in choosing between comprehensive data (this tool) versus specific components (siblings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-weather-alertsC
Get active weather alerts and warnings
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City name (e.g., 'New York') or coordinates (e.g., 'lat,lon') |
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. 'Get active weather alerts and warnings' implies a read-only operation, but doesn't specify whether this requires authentication, has rate limits, returns real-time or historical data, or what format the alerts come in. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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 at just five words, front-loading the essential purpose with zero wasted language. Every word earns its place: 'Get' (action), 'active' (temporal scope), 'weather alerts and warnings' (resource). This is a model of efficient tool description.
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 weather alert tool with no annotations and no output schema, the description is insufficiently complete. It doesn't indicate what types of alerts are returned (severe thunderstorm, flood, tornado), whether alerts are filtered by severity, what geographic scope applies, or what the response format looks like. Given the complexity of weather alert systems and the lack of structured metadata, more contextual information would be valuable.
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 schema description coverage is 100%, with the single 'location' parameter fully documented in the schema. The description adds no additional parameter information beyond what's already in the schema. This meets the baseline expectation when schema coverage is complete, but doesn't provide extra context about how location affects alert retrieval.
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 ('active weather alerts and warnings'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'get-current-weather' or 'get-weather-forecast', but the focus on 'alerts and warnings' provides some implicit distinction from general weather data tools.
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' available, there's no indication whether this tool should be used for emergency situations, severe weather only, or as a complement to other weather tools. The user 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-weather-forecastC
Get weather forecast for up to 5 days
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to forecast (1-5, default: 5) | |
| location | Yes | City name (e.g., 'New York') or coordinates (e.g., 'lat,lon') | |
| units | No | Temperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin) |
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 forecast duration ('up to 5 days') but doesn't cover other important aspects like rate limits, authentication requirements, error handling, or what the forecast includes (e.g., temperature, precipitation). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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, clear sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main purpose and appropriately sized for the tool's complexity. Every part of the sentence earns its place by specifying key constraints.
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 insufficiently complete. It doesn't explain what the forecast returns (e.g., data structure, time intervals), potential limitations, or how it differs from sibling tools. For a weather forecasting tool with multiple similar alternatives, more context is needed to help the agent use it correctly.
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 doesn't add any parameter-specific information beyond what's already in the input schema, which has 100% coverage. It mentions 'up to 5 days', which aligns with the 'days' parameter's description in the schema, but provides no additional context about parameter interactions or usage examples. With high schema coverage, the baseline score of 3 is appropriate.
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 weather forecast for up to 5 days'. It specifies the verb ('Get'), resource ('weather forecast'), and scope ('up to 5 days'), making it easy to understand. However, it doesn't explicitly differentiate from siblings like 'get-daily-forecast' or 'get-hourly-forecast', which might have overlapping functionality.
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-daily-forecast', 'get-hourly-forecast', and 'get-current-weather', the agent is left to infer usage based on tool names alone. No explicit when/when-not statements or alternative recommendations are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v1.0.0- First observed
geocode-location - First observed
get-air-pollution - First observed
get-current-air-pollution - First observed
get-current-weather - First observed
get-daily-forecast - First observed
get-hourly-forecast - First observed
get-location-info - First observed
get-minutely-forecast - First observed
get-onecall-weather - First observed
get-weather-alerts - First observed
get-weather-forecast
TDQS
Most tools are clearly distinct, covering specific weather and location data types like current weather, forecasts, air pollution, and geocoding. However, there is some overlap between 'get-daily-forecast', 'get-weather-forecast', and 'get-onecall-weather', which could cause confusion as they all provide forecast data with different scopes or formats.
All tool names follow a consistent 'get-' or 'geocode-' prefix pattern with descriptive kebab-case nouns, such as 'get-current-weather' and 'geocode-location'. This uniformity makes the tools predictable and easy to understand at a glance.
With 11 tools, the server is well-scoped for an OpenWeatherMap integration, covering a comprehensive range of weather and location services. Each tool serves a distinct purpose, from basic weather queries to specialized forecasts and alerts, without feeling bloated or sparse.
The tool set provides complete coverage for weather and location data, including current conditions, various forecast types (minutely, hourly, daily), air pollution, alerts, and geocoding. There are no obvious gaps, enabling agents to handle a wide range of weather-related queries effectively.
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
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
1MCP server for weather with reasoning — umbrella advice, outdoor checks, city comparisons.
OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)
Open-Meteo MCP — weather forecast + historical reanalysis + sister APIs
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that enables AI assistants and LLMs to access real-time weather data and forecasts by connecting to the OpenWeatherMap API.-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables natural language weather queries for global cities, integrating with OpenWeather API to provide real-time weather information in an easy-to-read format.1-
- FlicenseBqualityDmaintenanceA Model Context Protocol server that provides real-time weather data to AI clients through Server-Sent Events, enabling them to fetch current weather conditions, multi-day forecasts, and location-based weather information.5-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides weather information using the Open-Meteo API, allowing users to get current weather for specific cities and retrieve weather data for date ranges.Apache 2.0
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/robertn702/mcp-openweathermap'
If you have feedback or need assistance with the MCP directory API, please join our Discord server