zkjon/mcp-weather
If you are the rightful owner of mcp-weather and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Weather Server provides real-time weather information globally using the Open-Meteo API.
MCP Weather Server 🌤️
A Model Context Protocol (MCP) server that provides real-time weather information using the Open-Meteo API.
📋 Description
This project implements an MCP server that allows AI models to obtain current weather information for any location worldwide. The server uses Open-Meteo's free APIs for geocoding and weather data.
🔍 Documentation
Check out the documentation for more details on how to work with this server.
✨ Features
- 🌍 Global coverage: Get weather information from any location worldwide
- 🔄 Real-time data: Up-to-date weather information
- 📊 Complete data: Temperature, humidity, precipitation, wind, cloud cover
- 🚀 Fast and efficient: Quick responses with structured JSON data
- 🔧 Easy integration: Compatible with any MCP client
🛠️ Installation
Prerequisites
- Bun (recommended) or Node.js 20+
Installation Steps
-
Clone the repository
git clone https://github.com/zkjon/mcp-weather.git cd mcp-weather
-
Install dependencies
bun install # or npm install
-
Run the server
bunx -y tsx src/main.ts # or npx -y tsx src/main.ts
🚀 Usage
MCP Configuration
To use this server with an MCP client, add the following configuration to your mcp.json
file:
{
"mcpServers": {
"Weather": {
"command": "bunx",
"args": [
"-y",
"tsx",
"C:\\full\\path\\to\\project\\src\\main.ts"
]
}
}
}
Available Tools
get-weather
Gets weather information for a specific location.
Parameters:
location
(string): Location name (city, country, etc.)
Usage Example:
// Request
{
"tool": "get-weather",
"arguments": {
"location": "Madrid"
}
}
// Response
{
"content": [
{
"type": "text",
"text": "{
\"latitude\": 40.4375,
\"longitude\": -3.6875,
\"current\": {
\"temperature_2m\": 18.7,
\"relative_humidity_2m\": 54,
\"precipitation\": 0,
\"rain\": 0,
\"cloud_cover\": 4,
\"wind_speed_10m\": 6.1
}
}"
}
]
}
Workflow
- Request reception: Server receives a request with a location
- Geocoding: Location coordinates are obtained using Open-Meteo API
- Weather query: Weather data is queried using the coordinates
- Structured response: Data is returned in structured JSON format
Code Structure
- Imports: MCP SDK and necessary libraries
- Server configuration: MCP server definition with name and version
- Tool definition: Implementation of the
get-weather
tool - Connection: Transport configuration and server connection
🌐 APIs Used
- Open-Meteo Geocoding API: To convert location names to coordinates
- Open-Meteo Weather API: To get current weather data
📝 License
This project is licensed under the MIT License. See the file for more details.
🤝 Contributing
Contributions are welcome! Please read our for more information.
🔒 Security
If you find any security vulnerability, please check our to know how to report it.
📞 Support
If you have questions or need help:
🙏 Acknowledgments
- Open-Meteo for providing free weather APIs
- Model Context Protocol for the MCP framework
- Bun for the fast JavaScript runtime
Made with ❤️ by zkjon