Skip to main content
Glama
jefercort

Weather MCP Server

by jefercort

Practice MCP JS

A Model Context Protocol (MCP) server implementation in TypeScript that provides weather information tools for AI assistants.

Description

This project demonstrates how to create an MCP server that exposes weather-related tools to Large Language Models (LLMs). The server provides a fetch-weather tool that retrieves current weather data and forecasts for any city using the Open-Meteo API.

Related MCP server: Weather MCP Server

Features

  • Weather Tool: Fetch current weather conditions and forecasts for any city

  • Input Validation: Uses Zod for robust input/output validation

  • MCP Protocol: Compatible with AI assistants that support the Model Context Protocol

  • TypeScript: Fully typed implementation for better development experience

Prerequisites

  • Node.js (version 14 or higher)

  • npm or yarn package manager

Installation

  1. Clone the repository:

git clone <repository-url>
cd practice-mcp-js
  1. Install dependencies:

npm install

Usage

Running the Server

To start the MCP server:

npx tsx main.ts

The server will start and listen for MCP connections via stdio transport.

Available Tools

fetch-weather

Retrieves weather information for a specified city.

Parameters:

  • city (string): Name of the city to get weather information for

Example Response: The tool returns current weather conditions including:

  • Temperature

  • Precipitation

  • Day/night status

  • Rain information

  • Hourly forecast data

Project Structure

practice-mcp-js/
├── main.ts           # Main server implementation
├── package.json      # Project configuration and dependencies
├── package-lock.json # Dependency lock file
└── README.md         # This file

Dependencies

  • @modelcontextprotocol/sdk: Core MCP SDK for server implementation

  • zod: Schema validation library for input/output validation

API Integration

This project integrates with the following external APIs:

  1. Open-Meteo Geocoding API: For converting city names to coordinates

  2. Open-Meteo Weather API: For retrieving weather data and forecasts

How It Works

  1. The server creates an MCP server instance with the name "PRO INDUSTRIAL MCP SERVER"

  2. It defines a fetch-weather tool that:

    • Accepts a city name as input

    • Geocodes the city name to get coordinates

    • Fetches weather data using the coordinates

    • Returns formatted weather information

  3. The server connects via stdio transport for communication with AI assistants

Development

The main server logic is implemented in main.ts:7-55. Key components include:

  • Server initialization (main.ts:7-10)

  • Tool definition (main.ts:13-50)

  • Transport setup (main.ts:54-55)

Error Handling

The weather tool includes error handling for:

  • Cities that cannot be found

  • API request failures

  • Invalid input parameters (via Zod validation)

License

ISC

Contributing

This is a practice project for learning MCP server development. Feel free to fork and experiment with additional tools and features.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables users to get current weather information for any city using the Open-Meteo API. Provides detailed meteorological data including temperature, precipitation, day/night status, and hourly forecasts through natural language queries.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to retrieve real-time weather data and 5-day forecasts for any city using the OpenWeather API, supporting both metric and imperial units.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides current weather information for any city worldwide using the free Open-Meteo API, enabling users to query temperature, wind speed, humidity, and weather conditions through natural language.
    10 npm
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI assistants to retrieve current weather, forecasts, and summaries for any global location using the Open-Meteo API, with no API key required.
    10 npm
    Creative Commons Zero v1.0 Universal