A Model Context Protocol (MCP) server that provides real-time weather information using the Open-Meteo API.
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.
Check out the documentation for more details on how to work with this server.
- π 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
- Bun (recommended) or Node.js 20+
-
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
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"
]
}
}
}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
}
}"
}
]
}- 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
- 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
- Open-Meteo Geocoding API: To convert location names to coordinates
- Open-Meteo Weather API: To get current weather data
This project is licensed under the MIT License. See the LICENSE file for more details.
Contributions are welcome! Please read our contribution guide for more information.
If you find any security vulnerability, please check our security file to know how to report it.
If you have questions or need help:
- Open-Meteo for providing free weather APIs
- Model Context Protocol for the MCP framework
- Bun for the fast JavaScript runtime
Made with β€οΈ by zkjon