Skip to main content
Glama
Weather & Location MCP Server

Weather & Location MCP Server

by Sousam2002

Weather & Location MCP Server

A beginner-friendly MCP server built with TypeScript, Node.js, the MCP TypeScript SDK, OpenWeather API, dotenv, and zod.

Features

  • getCurrentWeather(city)

  • getForecast(city)

  • getAirQuality(city)

  • Sunrise and sunset information

  • Environment variable support with dotenv

  • Input validation with zod

  • TypeScript response types for API data

  • Helpful error handling

Related MCP server: Weather MCP Server

Tech Stack

  • TypeScript

  • Node.js

  • @modelcontextprotocol/sdk

  • OpenWeather API

  • dotenv

  • zod

Project Structure

weather-location-mcp-server/
|- src/
|  |- index.ts
|  |- weatherApi.ts
|  `- types.ts
|- .env.example
|- .gitignore
|- package.json
|- README.md
`- tsconfig.json

Setup

1. Install dependencies

npm install

2. Create your environment file

Create a .env file in the project root:

OPENWEATHER_API_KEY=your_api_key_here

You can copy from .env.example and replace the placeholder value with your real OpenWeather API key.

3. Build the project

npm run build

Run the Server

Development mode

npm run dev

Production build

npm run build
npm run start

The server runs over stdio, so it will wait quietly for an MCP client to connect.

Available Tools

getCurrentWeather

Input:

{
  "city": "Delhi"
}

Returns:

  • City name

  • Country

  • Weather condition and description

  • Temperature

  • Feels-like temperature

  • Humidity

  • Sunrise time

  • Sunset time

getForecast

Input:

{
  "city": "Delhi"
}

Returns:

  • City name

  • Country

  • First 5 forecast entries

  • Temperature

  • Weather condition and description

getAirQuality

Input:

{
  "city": "Delhi"
}

Returns:

  • AQI value

  • AQI label

  • CO

  • NO2

  • O3

  • PM2.5

  • PM10

Using with Codex

If you want Codex to use this server as an MCP tool provider, add a project config file at .codex/config.toml:

[mcp_servers.weather_location]
command = "node"
args = ["dist/index.js"]
cwd = "D:\\My PC\\Coding\\web development\\Weather & Location MCP Server"
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 60

Then restart Codex or open a new thread in the project.

Notes

  • Keep .env out of GitHub because it contains your API key.

  • Keep .codex/ out of GitHub if it contains your personal local Codex setup.

  • This project uses Node.js native fetch.

License

ISC

Available Tools

3 tools
getAirQualityGet Air QualityB

Get air quality information for a city

Inputs: city (required).

getCurrentWeatherGet Current WeatherC

Get the current weather for a city

Inputs: city (required).

getForecastGet ForecastC

Get a weather forecast for a city

Inputs: city (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool returns a distinct type of weather information (air quality, current weather, forecast), so an agent can easily select the correct one without ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent 'get' + noun pattern in camelCase (getAirQuality, getCurrentWeather, getForecast), making them predictable and easy to remember.

    Tool Count5/5

    Three tools is a well-scoped set for a weather service, covering the most common queries without being overly sparse or bloated.

    Completeness4/5

    The set covers the essential weather operations (current, forecast, air quality). One could argue for additional tools like weather alerts or historical data, but the core is complete.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers