Weather MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Weather MCP Serverwhat's the weather like in Tokyo right now?"
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.
Weather MCP Server
A Model Context Protocol (MCP) server that provides weather information and system notifications. This server allows Claude (any other MCP client) to fetch current weather data for any city and send native system notifications (for MacOS only) with the weather information.
Features
Get Weather: Fetch current weather conditions for any city worldwide
Send Notifications: Display weather information as native system notifications
Human-readable: Formats weather data in pleasant, conversational language
Related MCP server: Weather Agent MCP Server
Installation
Prerequisites
Node.js (version 16 or higher)
npm or yarn package manager
Setup
Clone or download the project files
git clone <your-repository-url> cd weather-mcpInstall dependencies
npm installTest the server
npm start
Adding to Claude Desktop
To use this MCP server with Claude Desktop, you need to add it to Claude's configuration:
1. Locate Claude's Configuration File
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json2. Add the Weather MCP Server
Edit the configuration file and add your weather MCP server to the mcpServers section:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/path/to/your/weather-mcp/index.js"],
"env": {
"OPENWEATHER_API_KEY": "your_api_key_here"
}
}
}
}Important: Replace /path/to/your/weather-mcp/index.js with the actual absolute path to your project's index.js file.
3. Restart Claude Desktop
After updating the configuration file, restart Claude Desktop for the changes to take effect.
Usage
Once installed and configured, you can use the following commands with Claude:
Get Weather Information
"What's the weather in London?"
"Get the current weather for Tokyo"
"Tell me about the weather conditions in Paris"Send Weather Notifications
"Get the weather for Berlin and send it as a notification"
"Send me weather notifications for New York, London, and Tokyo"
"Check the weather in Miami and notify me with pleasant text"Available Functions
weather:get_weather
Fetches current weather conditions for a specified city.
Parameters:
city(string): Name of the city to get weather for
Returns:
Temperature (°C)
Weather condition
Humidity (%)
Wind speed (m/s)
Atmospheric pressure (hPa)
weather:send_notification
Displays a system notification with custom title and message.
Parameters:
title(string): Notification titlemessage(string): Notification message content
Troubleshooting
Common Issues
"Command not found" error
Ensure Node.js is installed and in your PATH
Verify the path to index.js is correct in the configuration
Weather data not loading
Check that your OpenWeatherMap API key is valid
Ensure the API key is properly set in the environment variables
Claude not recognizing the MCP server
Restart Claude Desktop after configuration changes
Check the JSON syntax in claude_desktop_config.json
Verify file permissions on the MCP server files
Debug Mode
To run the server in debug mode with verbose logging:
DEBUG=* npm startAPI Rate Limits
The free OpenWeatherMap API tier includes:
1,000 calls per day
60 calls per minute
For higher usage, consider upgrading to a paid plan.
License
This project is open source and available under the MIT License.
Support
For issues related to:
MCP Protocol: Check the MCP documentation
OpenWeatherMap API: Visit OpenWeatherMap support
Claude Desktop: Contact Anthropic support
Happy weather checking! 🌤️
Available Tools
2 toolsget_weatherC
Get current weather for a city
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Name of the city to get weather for |
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 'Get current weather' but doesn't specify aspects like rate limits, error handling, data sources, or whether it requires authentication. For a tool with no annotations, this is a significant gap in transparency about 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 is front-loaded with the core purpose. There is no wasted language or unnecessary elaboration, making it easy to parse quickly. It earns its place by clearly stating the tool's function without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns, potential errors, or behavioral traits. For a tool with no structured data to rely on, the description should provide more context to help the agent use it effectively, but it falls short.
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 the 'city' parameter fully documented. The description adds no additional meaning beyond the schema, such as format examples or constraints. According to the rules, when schema coverage is high (>80%), the baseline score is 3, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('current weather for a city'), making the purpose immediately understandable. However, it doesn't differentiate from the sibling tool 'send_notification', which is unrelated, so this doesn't impact the score negatively. The description avoids tautology by specifying what is being retrieved.
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, such as other weather-related tools that might exist in a broader context. It only states what the tool does, without mentioning prerequisites, limitations, or scenarios for use. This leaves the agent with minimal context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_notificationB
Send a macOS notification with provided weather data
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Notification title | |
| message | Yes | Notification message |
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 states the tool sends notifications but doesn't mention important behavioral aspects like whether this requires specific macOS permissions, if notifications are persistent or transient, what happens if the system is in Do Not Disturb mode, or whether there are rate limits. The description provides basic functionality but lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple notification tool and front-loads the essential information about what the tool does.
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 simple 2-parameter tool with no output schema and no annotations, the description provides basic functionality but lacks important context. It doesn't explain what happens after sending (success/failure indicators), doesn't connect to the sibling weather tool, and doesn't address macOS-specific considerations. While adequate for the simplest use case, there are clear gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already fully documents both parameters (title and message). The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain what constitutes appropriate weather data formatting, character limits, or how the parameters relate to the weather context mentioned. The 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 ('send') and resource ('macOS notification with provided weather data'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from the sibling 'get_weather' tool, which appears to be a data retrieval function rather than a notification delivery mechanism.
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. While it mentions 'weather data' which might imply usage after obtaining weather information, there's no explicit connection to the sibling 'get_weather' tool or any other alternatives. No context about appropriate scenarios or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct purposes: get_weather retrieves weather data, while send_notification handles macOS notifications. There is no overlap in functionality, making it easy for an agent to choose the right tool for each task.
Both tools follow a consistent verb_noun naming pattern (get_weather and send_notification). The verbs are descriptive and appropriate for their actions, and there are no deviations in style or convention.
With only two tools, the server feels thin for a weather domain. It lacks essential operations like forecasting, historical data, or multi-location queries, which are typical for weather services. The scope is too limited for practical agent use.
The tool surface is severely incomplete for a weather server. It only provides current weather retrieval and notification sending, missing core features like forecasts, alerts, or location-based searches. This will likely cause agent failures when handling common weather-related requests.
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
Get current weather for any city and create images from your prompts. Streamline planning, reports…
Provide real-time and forecast weather information for locations in the United States using natura…
Real-time weather conditions and multi-day forecasts via Open-Meteo — free, no API key required
Free, keyless real-time weather and 7-day forecasts for any city worldwide.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to fetch current weather conditions and forecasts for any city using the Open-Meteo API. Provides temperature, precipitation, and hourly forecast data through natural language queries.
- AlicenseNot gradedqualityDmaintenanceEnables users to get current weather information for any city using the OpenWeatherMap API. Returns formatted weather data including temperature, humidity, and weather description through natural language queries.MIT
- FlicenseBqualityDmaintenanceEnables users to retrieve current weather information for any city location. Provides a simple interface to fetch weather data through natural language queries.1
- AlicenseNot gradedqualityDmaintenanceProvides current weather information for any city worldwide using the free Open-Meteo API, enabling users to query temperature, wind speed, humidity, and weather conditions through natural language.21MIT
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/shtansky-bikeleasing/weather-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server