spraveenitpro/mcp-weather-server
3.1
If you are the rightful owner of mcp-weather-server 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.
This project demonstrates how to build a simple Model Context Protocol (MCP) server that provides weather information for any city using the Open-Meteo API.
Tools
1
Resources
0
Prompts
0
MCP Weather Server Tutorial
This project demonstrates how to build a simple Model Context Protocol (MCP) server that provides weather information for any city using the Open-Meteo API.
Features
- MCP server using
@modelcontextprotocol/sdk - One tool:
get-weather(returns weather for a given city) - Uses geocoding and weather APIs from Open-Meteo
- Returns weather data in JSON format
How It Works
- The MCP server exposes a tool called
get-weather. - When a city name is provided, the server:
- Uses Open-Meteo's geocoding API to get latitude and longitude for the city.
- Fetches current weather data for those coordinates.
- Returns the weather data as a JSON response.
- If the city is not found, a helpful error message is returned.
Prerequisites
- Node.js (v18+ recommended)
- MCP Inspector (or any MCP client)
Setup
- Clone this repository or copy the files to your workspace.
- Install dependencies:
npm install npm install node-fetch - Update your
main.tsto importfetchfromnode-fetchif running in Node.js:import fetch from "node-fetch"; - Start the MCP server using MCP Inspector:
npx -y @modelcontextprotocol/inspector npx tsx main.ts
Usage
- Open MCP Inspector and connect to your server.
- Use the
get-weathertool, enter a city name (e.g., "Paris", "Bangalore", "Chennai"). - The server will respond with the current weather data for that city.
Example Tool Response
{
"latitude": 13,
"longitude": 80.125,
"current": {
"temperature_2m": 30,
"relative_humidity_2m": 66,
"wind_speed_10m": 14.9,
"cloud_cover": 94,
"apparent_temperature": 33.2
}
}
Troubleshooting
- If you see
fetch is not defined, make sure you have installed and importednode-fetch. - If the city is not found, check for typos or try a nearby major city.
License
MIT