mcp-weather-server
README.md
# 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
1. The MCP server exposes a tool called `get-weather`.
2. 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.
3. If the city is not found, a helpful error message is returned.
## Prerequisites
- Node.js (v18+ recommended)
- MCP Inspector (or any MCP client)
## Setup
1. Clone this repository or copy the files to your workspace.
2. Install dependencies:
```sh
npm install
npm install node-fetch
```
3. Update your `main.ts` to import `fetch` from `node-fetch` if running in Node.js:
```typescript
import fetch from "node-fetch";
```
4. Start the MCP server using MCP Inspector:
```sh
npx -y @modelcontextprotocol/inspector npx tsx main.ts
```
## Usage
- Open MCP Inspector and connect to your server.
- Use the `get-weather` tool, 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 imported `node-fetch`.
- If the city is not found, check for typos or try a nearby major city.
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues