๐ค๏ธ MCP Weather Server (Cursor + Node.js + WSL)
April 3, 2025 ยท View on GitHub
This project is a simple Model Context Protocol (MCP) server that provides real-time weather data using the OpenWeatherMap API, built with Node.js and designed to run inside WSL (Windows Subsystem for Linux).
๐ฆ Features
- Exposes an MCP tool:
getWhetherByCityName - Fetches weather data for any city using OpenWeatherMap
- Compatible with Cursor AI client
- WSL support with clean
.envconfiguration
๐ ๏ธ Prerequisites
- Cursor installed
- WSL enabled with Ubuntu or other Linux distro
- Node.js and npm installed in WSL
- OpenWeatherMap API key
๐ง Installation
# In WSL terminal
git clone https://github.com/your-username/mcp-weather-server
cd mcp-weather-server
npm install
๐ Environment Setup
Create a .env file in the root of the project:
WHETHER_API_KEY=your_openweather_api_key_here
๐ฑ The server will read this key using
dotenv.
๐ง MCP Configuration (in Cursor)
In your Cursor's mcp.json (or settings UI), use the following:
{
"mcpServers": {
"demo": {
"command": "wsl",
"args": ["node", "/home/kaif/code/learnings/mcp-poc/index.js"]
}
}
}
โ Note:
envkey won't work properly when usingwsl. Use a.envfile instead.
๐ Running the Server
In Cursor, create a new MCP Client using the demo server. Then run queries like:
getWhetherByCityName({ name: "London" })
The server will respond with current weather data for that city.
๐ File Structure
mcp-poc/
โโโ index.js # MCP server entrypoint
โโโ .env # Your API key
โโโ package.json
โโโ README.md
๐ License
MIT