Skip to main content
Glama
robertn702

OpenWeatherMap MCP Server

by robertn702

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

Setup

  1. Clone the repository:

git clone https://github.com/robertn702/mcp-openweathermap.git
cd mcp-openweathermap
  1. Install dependencies:

bun install
  1. Set up your environment variables:

cp .env.example .env
# Edit .env and add your OpenWeatherMap API key

Environment 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: stdio or httpStream (default: stdio)

  • MCP_ENDPOINT - HTTP endpoint path (default: /stream)

Usage

Running the Server

Stdio Transport (default):

bun run src/main.ts

HTTP Stream Transport:

MCP_TRANSPORT=httpStream PORT=3000 bun run src/main.ts

Claude 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 conditions

  • get-weather-forecast - 5-day forecast

  • get-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 alerts

  • get-current-air-pollution - Current air quality data

  • get-air-pollution - Air quality forecasts and history

Location Services

  • get-location-info - Reverse geocoding from coordinates

  • geocode-location - Convert addresses to coordinates

  • get-onecall-weather - Comprehensive weather data

Development

Running in Development

bun run src/main.ts

Testing with MCP Inspector

bun run src/main.ts

Then connect the MCP Inspector to test the tools interactively.

Build

bun run build

Authentication

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

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Available Tools

11 tools
geocode-locationC

Convert location name to coordinates or vice versa

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 5)
queryYesLocation name, zip code, or address to geocode

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 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.

Conciseness5/5

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.

Completeness2/5

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.

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 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.

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: 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.

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 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

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate
longitudeYesLongitude coordinate

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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

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 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.

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 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

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesCity name (e.g., 'New York') or coordinates (e.g., 'lat,lon')

TDQS

C2.6/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. '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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesCity name (e.g., 'New York') or coordinates (e.g., 'lat,lon')
unitsNoTemperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin)

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 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.

Conciseness5/5

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.

Completeness2/5

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.

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 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.

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 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.

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-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

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to forecast (1-8, default: 8)
include_todayNoInclude today's forecast (default: false)
locationYesCity name (e.g., 'New York') or coordinates (e.g., 'lat,lon')
unitsNoTemperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin)

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 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.

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 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.

Completeness2/5

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.

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 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.

Purpose4/5

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.

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-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

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoNumber of hours to forecast (1-48, default: 48)
locationYesCity name (e.g., 'New York') or coordinates (e.g., 'lat,lon')
unitsNoTemperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin)

TDQS

B3.1/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 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.

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 ('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.

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 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude coordinate
longitudeYesLongitude coordinate

TDQS

B3.2/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 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.

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 ('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.

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 (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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of minutes to forecast (1-60, default: 60)
locationYesCity name (e.g., 'New York') or coordinates (e.g., 'lat,lon')

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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

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 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.

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 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)

ParametersJSON Schema
NameRequiredDescriptionDefault
excludeNoParts of weather data to exclude from the response
latitudeYesLatitude coordinate
longitudeYesLongitude coordinate
unitsNoTemperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin)

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 '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.

Conciseness5/5

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.

Completeness2/5

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.

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 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.

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 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.

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 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

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesCity name (e.g., 'New York') or coordinates (e.g., 'lat,lon')

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. '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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

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 ('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.

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' 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

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to forecast (1-5, default: 5)
locationYesCity name (e.g., 'New York') or coordinates (e.g., 'lat,lon')
unitsNoTemperature units: metric (Celsius), imperial (Fahrenheit), or standard (Kelvin)

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 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.

Conciseness5/5

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.

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 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.

Parameters3/5

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.

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 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.

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-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.

  1. 11 tool updatesv1.0.0
    • First observedgeocode-location
    • First observedget-air-pollution
    • First observedget-current-air-pollution
    • First observedget-current-weather
    • First observedget-daily-forecast
    • First observedget-hourly-forecast
    • First observedget-location-info
    • First observedget-minutely-forecast
    • First observedget-onecall-weather
    • First observedget-weather-alerts
    • First observedget-weather-forecast

TDQS

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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
    -
  • F
    license
    B
    quality
    D
    maintenance
    A 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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

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