Enables retrieving weather data through curl commands for current weather, forecasts, alerts, and location searches
Provides a fetch interface for JavaScript applications to access weather data including current conditions, forecasts, and alerts
Runs as a Node.js application with HTTP API endpoints for weather data, requiring Node.js 18 or later
Uses pnpm as the package manager for installation and dependency management
Developed with TypeScript, providing type-safe interfaces for weather data interaction
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Weather MCP Serverwhat's the forecast for Tokyo this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildStartup Methods
1. MCP Protocol (stdio)
# For MCP client integration
pnpm start2. 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 80803. 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 4000Dynamic 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 12345The 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:8080to view API documentationClick 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 devAvailable 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 namedays(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 definitionsHTTP API Endpoints
Endpoint | Method | Parameters | Description |
| GET | - | API documentation page |
| POST | JSON-RPC 2.0 | MCP protocol endpoint |
| GET | location (required) | Get current weather |
| GET | location (required), days (optional) | Get weather forecast |
| GET | location (optional) | Get weather alerts |
| GET | q (required) | Search locations |
| GET | - | Get statistics |
License
MIT License