Skip to main content
Glama

Weather MCP Server

A weather MCP (Model Context Protocol) server developed with TypeScript, providing simulated weather data and related functionality.

Features

  • ๐ŸŒค๏ธ Get current weather information

  • ๐Ÿ“… Multi-day weather forecast

  • โš ๏ธ Weather alert system

  • ๐Ÿ” Location search functionality

  • ๐Ÿ“Š Weather statistics

  • ๐ŸŽญ Mock data support

Install Dependencies

pnpm install

๐Ÿš€ Usage

Installation and Build

# Install dependencies pnpm install # Build project pnpm run build

Startup Methods

1. MCP Protocol (stdio)

# For MCP client integration pnpm start

2. HTTP API Server ๐Ÿ†•

# Start HTTP server (default port 8080) pnpm run start:http # Start HTTP server (specified port 3001) pnpm run start:http:3001 # Or specify port directly node dist/http-server.js 8080

3. Simple HTTP Server (Recommended) ๐Ÿš€

# Start with default port 8080 pnpm run start:simple # Start with specific ports pnpm run start:simple:3000 # Development port pnpm run start:simple:5000 # Alternative port pnpm run start:simple:9000 # High port # Or use the serve commands pnpm run serve # Default port 8080 pnpm run serve:dev # Development port 3000 pnpm run serve:prod # Production port 8080 # Or specify any port directly node dist/simple-http-server.js 4000

Dynamic Port Support

The simple HTTP server supports dynamic port configuration:

# Use any port you want node dist/simple-http-server.js 3000 node dist/simple-http-server.js 5000 node dist/simple-http-server.js 9000 node dist/simple-http-server.js 12345

The server will automatically:

  • Use port 8080 as default if no port is specified

  • Accept any valid port number as a command line argument

  • Display the actual port in the startup message and documentation

HTTP API Usage Examples

Once the HTTP server is started, you can use it in the following ways:

Browser Access

  • Open http://localhost:8080 to view API documentation

  • Click links directly to test various APIs

curl Commands

# Get current weather for Hong Kong curl "http://localhost:8080/weather?location=Hong Kong" # Get 5-day weather forecast for Tokyo curl "http://localhost:8080/forecast?location=Tokyo&days=5" # Get weather alerts curl "http://localhost:8080/alerts?location=Hong Kong" # Search locations curl "http://localhost:8080/locations?q=kong" # Get statistics curl "http://localhost:8080/stats"

JavaScript/Fetch

// Get weather data const response = await fetch('http://localhost:8080/weather?location=Tokyo'); const weather = await response.json(); console.log(weather);

Development Mode

# Watch mode compilation pnpm run dev

Available Tools

1. get_current_weather

Get current weather information for a specified location

Parameters:

  • location (string): Location name

Example:

{ "location": "Hong Kong" }

2. get_weather_forecast

Get weather forecast for a specified location

Parameters:

  • location (string): Location name

  • days (number, optional): Forecast days (1-7 days, default 3 days)

Example:

{ "location": "Tokyo", "days": 5 }

3. get_weather_alerts

Get weather alert information

Parameters:

  • location (string, optional): Location name

Example:

{ "location": "Hong Kong" }

4. search_locations

Search supported locations

Parameters:

  • query (string): Search keyword

Example:

{ "query": "kong" }

5. get_weather_stats

Get weather statistics

Parameters: None

Supported Locations

Currently supports detailed weather data for the following locations:

  • Hong Kong

  • Tokyo, Osaka, Kyoto, Hiroshima, Sapporo, Fukuoka (Japan)

  • London (UK)

  • New York (USA)

  • Sydney (Australia)

Other locations will return randomly generated mock data.

Technical Specifications

  • Language: TypeScript

  • Package Manager: pnpm

  • MCP SDK: @modelcontextprotocol/sdk

  • Node.js: >=18

Project Structure

src/ โ”œโ”€โ”€ index.ts # MCP server main file (stdio) โ”œโ”€โ”€ http-server.ts # HTTP API server โ”œโ”€โ”€ simple-http-server.ts # Simple HTTP server โ”œโ”€โ”€ weather-service.ts # Weather service logic โ”œโ”€โ”€ mock-data.ts # Mock data โ””โ”€โ”€ types.ts # TypeScript type definitions

HTTP API Endpoints

Endpoint

Method

Parameters

Description

/

GET

-

API documentation page

/mcp

POST

JSON-RPC 2.0

MCP protocol endpoint

/weather

GET

location (required)

Get current weather

/forecast

GET

location (required), days (optional)

Get weather forecast

/alerts

GET

location (optional)

Get weather alerts

/locations

GET

q (required)

Search locations

/stats

GET

-

Get statistics

License

MIT License

Related MCP Servers

  • A
    security
    -
    license
    A
    quality
    An MCP server that provides real-time weather information including temperature, humidity, wind speed, and sunrise/sunset times through the OpenWeatherMap API.
    Last updated -
    1
    2
    MIT License
    • Linux
    • Apple
  • -
    security
    -
    license
    -
    quality
    An MCP server implementation that allows users to fetch and display weather information for specified cities, including temperature, humidity, wind speed, and weather descriptions.
    Last updated -
    1
    • Linux
    • Apple
  • A
    security
    -
    license
    A
    quality
    A MCP server that provides real-time weather information for any city through a simple tool that resolves geographic coordinates and fetches current weather data.
    Last updated -
    1
    2
  • -
    security
    -
    license
    -
    quality
    A modular server based on Model Context Protocol (MCP) that provides weather queries, mathematical calculations, and search functionalities.
    Last updated -

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bobbyyng/weather-mcp-ts'

If you have feedback or need assistance with the MCP directory API, please join our Discord server