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: ```javascript // 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-weathertool - 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 LICENSE file for more details.
🤝 Contributing
Contributions are welcome! Please read our contribution guide for more information.
🔒 Security
If you find any security vulnerability, please check our security file 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












