Skip to main content
Glama

Weather MCP Server

by bobbyyng
MIT License
8

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
# 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

EndpointMethodParametersDescription
/GET-API documentation page
/mcpPOSTJSON-RPC 2.0MCP protocol endpoint
/weatherGETlocation (required)Get current weather
/forecastGETlocation (required), days (optional)Get weather forecast
/alertsGETlocation (optional)Get weather alerts
/locationsGETq (required)Search locations
/statsGET-Get statistics

License

MIT License

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

A TypeScript-based MCP server that provides simulated weather data including current conditions, forecasts, alerts, and location search functionality through both MCP protocol and HTTP API endpoints.

  1. Features
    1. Install Dependencies
      1. 🚀 Usage
        1. Installation and Build
        2. Startup Methods
        3. Dynamic Port Support
        4. HTTP API Usage Examples
        5. Development Mode
      2. Available Tools
        1. get_current_weather
        2. get_weather_forecast
        3. get_weather_alerts
        4. search_locations
        5. get_weather_stats
      3. Supported Locations
        1. Technical Specifications
          1. Project Structure
            1. HTTP API Endpoints
              1. License

                Related MCP Servers

                • A
                  security
                  A
                  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
                  Python
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  F
                  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 -
                  Python
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  An MCP server that connects to OpenWeatherMap's API to provide current weather data and multi-day forecasts for locations worldwide in different measurement units.
                  Last updated -
                  12
                  TypeScript
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  An MCP server that provides weather information like forecasts and alerts for US locations using the National Weather Service API.
                  Last updated -
                  1
                  JavaScript

                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