Skip to main content
Glama
bobbyyng

Weather MCP Server

by bobbyyng

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

Related MCP server: Weather Query MCP Server

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

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

Install Server
A
security โ€“ no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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