๐ŸŒค๏ธ 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 .env configuration

๐Ÿ› ๏ธ 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: env key won't work properly when using wsl. Use a .env file 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


โœจ Credits