WeatherXM Pro MCP Server

WeatherXM Pro MCP Server

Provides comprehensive access to real-time weather data, forecasts, historical data, and weather alerts from the WeatherXM decentralized weather network worldwide.

Category
Visit Server

README

WeatherXM Pro MCP Server

smithery badge

A Model Context Protocol (MCP) server that provides comprehensive access to real-time weather data from the WeatherXM decentralized weather network worldwide.

Features

  • Real-time Weather Data: Get current weather conditions from any WeatherXM station
  • Weather Forecasting: Access hourly and daily weather forecasts
  • Historical Data: Retrieve historical weather data for trend analysis
  • Weather Alerts: Get active weather alerts and warnings
  • Station Discovery: Find weather stations near any location
  • Advanced Search: Search for stations by name or location
  • Weather Cells: Explore the decentralized weather network coverage
  • Data Quality Assessment: Check the reliability of weather data from specific stations
  • Comprehensive Weather Metrics: Temperature, humidity, wind, pressure, UV index, solar irradiance, and precipitation data
  • Global Coverage: Access weather data from WeatherXM stations around the world

Prerequisites

Configuration

The server requires a WeatherXM Pro API key to function. You'll need to provide this when connecting to the server.

Getting a WeatherXM Pro API Key

  1. Visit pro.weatherxm.com
  2. Sign up for a Pro account
  3. Navigate to the API section
  4. Generate an API key

Quick Fix for "Connection Failed" / "Load Failed"

The most common cause of connection failures is a missing or invalid WeatherXM Pro API key. Follow these steps:

1. Test Your API Key

Run this command to test your API key:

# Set your API key
export WEATHERXM_API_KEY="your_api_key_here"

# Test the connection
node test-api.js

2. Configure Your MCP Client

Option A: Environment Variable (Recommended)

export WEATHERXM_API_KEY="your_api_key_here"

Option B: MCP Client Configuration

For Claude Desktop or other MCP clients, add to your configuration:

{
  "mcpServers": {
    "weatherxm": {
      "command": "npx",
      "args": ["@oharkins/weatherxm-mcp-server"],
      "env": {
        "WEATHERXM_API_KEY": "your_api_key_here"
      }
    }
  }
}

Option C: Direct Server Configuration

If running the server directly:

WEATHERXM_API_KEY="your_api_key_here" npm run dev

MCP Client Configuration Examples

Using the Published NPM Package

For most users, the recommended approach is to use the published npm package:

{
  "mcpServers": {
    "weatherxm": {
      "command": "npx",
      "args": ["@oharkins/weatherxm-mcp-server"],
      "env": {
        "WEATHERXM_API_KEY": "your_api_key_here"
      }
    }
  }
}

Using Local Development Version

For developers or users who want to run the latest development version:

{
  "mcpServers": {
    "weatherxm": {
      "command": "node",
      "args": ["/path/to/weatherxm-mcp-server/dist/index.js"],
      "env": {
        "WEATHERXM_API_KEY": "your_api_key_here"
      }
    }
  }
}

Note: Replace /path/to/weatherxm-mcp-server with the actual path to your cloned repository. Make sure to run npm run build:tsc first to generate the dist/index.js file using the traditional TypeScript compiler.

Using Local Development with TypeScript

For active development with hot reloading:

{
  "mcpServers": {
    "weatherxm": {
      "command": "npm",
      "args": ["run", "dev"],
      "cwd": "/path/to/weatherxm-mcp-server",
      "env": {
        "WEATHERXM_API_KEY": "your_api_key_here"
      }
    }
  }
}

Note: This requires the development dependencies to be installed (npm install) and is only recommended for development purposes.

3. Verify the Connection

After configuration, the server should start successfully and you should be able to use weather tools like:

  • "What's the weather like at station WXM123456?"
  • "Find weather stations near New York City"
  • "Get weather alerts for 40.7128, -74.0060"

Installation

  1. Clone this repository:
git clone <repository-url>
cd weatherxm-mcp-server
  1. Install dependencies:
npm install
  1. Build the server:

Option A: Using Smithery (Default)

npm run build

Option B: Using Traditional TypeScript

npm run build:tsc

Note: The traditional TypeScript build creates a dist/ directory with compiled JavaScript files. Use this option if you prefer not to use Smithery or need the compiled output for deployment.

Development and Local Runner

This server supports both Smithery and local runner capabilities for development and testing.

Using Smithery (Recommended)

Smithery provides a modern development experience with hot reloading and optimized builds.

Development mode:

npm run dev

Build for production:

npm run build

Using Local Runner

For local development and testing without Smithery:

Set your API key:

export WEATHERXM_API_KEY="your_api_key_here"

Run the local runner:

npm run runner

Or run directly with tsx:

tsx src/runner.ts

Development Scripts

  • npm run dev - Start Smithery development server
  • npm run dev:tsc - Start development with TypeScript compiler
  • npm run runner - Run local server for testing
  • npm run build - Build with Smithery
  • npm run build:tsc - Build with TypeScript compiler
  • npm run clean - Clean build artifacts
  • npm start - Run built server
  • npm run start:dev - Run development server
  • npm test - Test server creation

Configuration Files

The repository includes example configuration files for MCP clients:

  • mcp-config-example.json - Standard configuration using the published npm package
  • mcp-config-local-dev.json - Local development configuration

Copy and modify these files as needed for your MCP client setup.

Available Tools

1. Get Current Weather (get_current_weather)

Retrieves the latest weather observation from a specific WeatherXM station.

Parameters:

  • station_id (string): WeatherXM station ID (e.g., "station_123" or "WXM123456")

Returns:

  • Temperature (Fahrenheit and Celsius)
  • Feels like temperature
  • Weather conditions
  • Humidity percentage
  • Dew point
  • Wind speed and direction
  • Wind gust (if available)
  • Barometric pressure
  • UV index
  • Solar irradiance
  • Precipitation rate and accumulated precipitation
  • Data quality score

2. Get Hourly Forecast (get_hourly_forecast)

Retrieves detailed hourly weather forecasts for a specific WeatherXM station.

Parameters:

  • station_id (string): WeatherXM station ID
  • hours (number, optional): Number of hours to forecast (1-48, default: 48)

Returns:

  • Hourly temperature predictions
  • Precipitation probability
  • Wind conditions
  • Humidity and pressure forecasts
  • UV index predictions

3. Get Daily Forecast (get_daily_forecast)

Retrieves daily weather forecasts including high/low temperatures and precipitation.

Parameters:

  • station_id (string): WeatherXM station ID
  • days (number, optional): Number of days to forecast (1-7, default: 7)

Returns:

  • Daily high and low temperatures
  • Precipitation probability and type
  • Wind conditions
  • Humidity and pressure forecasts
  • UV index predictions

4. Get Historical Weather Data (get_historical_weather)

Retrieves historical weather data for trend analysis and pattern recognition.

Parameters:

  • station_id (string): WeatherXM station ID
  • start_date (string): Start date in ISO format (YYYY-MM-DD)
  • end_date (string): End date in ISO format (YYYY-MM-DD)

Returns:

  • Historical temperature data
  • Precipitation records
  • Wind and pressure history
  • Summary statistics
  • Recent observations

5. Get Weather Alerts (get_weather_alerts)

Retrieves active weather alerts and warnings for a specific location.

Parameters:

  • latitude (number): Latitude in decimal degrees
  • longitude (number): Longitude in decimal degrees

Returns:

  • Active weather alerts
  • Alert severity and type
  • Effective and expiration times
  • Affected areas
  • Alert descriptions

6. Find Weather Stations (find_weather_stations)

Discovers WeatherXM stations near a specified location.

Parameters:

  • latitude (number): Latitude in decimal degrees
  • longitude (number): Longitude in decimal degrees
  • radius (number, optional): Search radius in kilometers (default: 50, max: 100)

Returns:

  • List of nearby stations with their details
  • Station names, IDs, and locations
  • Station creation dates
  • Cell index information

7. Search Weather Stations (search_weather_stations)

Searches for WeatherXM stations by name or location description.

Parameters:

  • query (string): Search query (station name, city, or location)
  • page (number, optional): Page number for pagination (default: 1)
  • limit (number, optional): Results per page (1-50, default: 10)

Returns:

  • Matching stations with details
  • Total result count
  • Pagination information

8. Get Weather Cells (get_weather_cells)

Retrieves WeatherXM weather cells (geographic areas) near a location.

Parameters:

  • latitude (number): Latitude in decimal degrees
  • longitude (number): Longitude in decimal degrees
  • radius (number, optional): Search radius in kilometers (default: 50, max: 100)

Returns:

  • Weather cell information
  • Cell center coordinates
  • Station count per cell
  • Network coverage details

9. Get Station Health (get_station_health)

Assesses the data quality and reliability of a specific WeatherXM station.

Parameters:

  • station_id (string): WeatherXM station ID

Returns:

  • Data quality score (0-100%)
  • Location quality score and reason
  • Overall assessment of data reliability
  • Health check timestamp

10. Get Station Local Time (get_station_local_time)

Gets the current local time at a station's location.

Parameters:

  • station_id (string): WeatherXM station ID

Returns:

  • Current local time at the station's location

Usage Examples

Example 1: Get Current Weather

What's the weather like at station WXM123456?

Example 2: Get Weather Forecast

What's the hourly forecast for station WXM789012 for the next 24 hours?

Example 3: Get Historical Data

Show me the weather data for station WXM345678 from January 1st to January 7th, 2024

Example 4: Check Weather Alerts

Are there any weather alerts for New York City (40.7128, -74.0060)?

Example 5: Find Stations Near a Location

Find weather stations within 25km of New York City (40.7128, -74.0060)

Example 6: Search for Stations

Search for weather stations in "San Francisco"

Example 7: Check Station Data Quality

How reliable is the weather data from station station_789?

Example 8: Get Local Time

What time is it at station WXM456789?

Data Units

The server provides weather data in the following units:

  • Temperature: Celsius (with Fahrenheit conversion)
  • Wind Speed: m/s (with mph conversion)
  • Pressure: hPa (with inHg conversion)
  • Precipitation: mm (with inches conversion)
  • Solar Irradiance: W/m²
  • UV Index: dimensionless
  • Humidity: percentage

Error Handling

The server handles various error conditions:

  • 401 Unauthorized: Invalid API key
  • 404 Not Found: Station not found or no data available
  • 429 Too Many Requests: API rate limit exceeded
  • 500 Internal Server Error: WeatherXM service temporarily unavailable
  • Network Errors: Connection issues

Troubleshooting

Common Error Messages

Error: "Invalid API key"

  • Double-check your API key from pro.weatherxm.com
  • Ensure the API key is properly set in your environment

Error: "Station not found"

  • Try searching for stations first: "Find weather stations near [your location]"
  • Use the station IDs returned by the search

Error: "API rate limit exceeded"

  • Wait a few minutes before trying again
  • Consider upgrading your WeatherXM Pro plan

Error: "WeatherXM service temporarily unavailable"

  • The WeatherXM service may be experiencing issues
  • Try again later

Common Issues

  1. Missing API Key: The server requires a valid WeatherXM Pro API key
  2. Invalid API Key: Double-check the key from your WeatherXM Pro account
  3. Network Issues: Ensure you have internet connectivity
  4. Rate Limiting: You may have exceeded your API quota

Development

Running in Development Mode

Option A: Using Smithery (Default)

npm run dev

Option B: Using TypeScript with tsx

npm run dev:tsc

Note: The dev:tsc command uses tsx for fast TypeScript execution without compilation. Use this for development if you prefer not to use Smithery.

Building for Production

npm run build

API Reference

This server uses the WeatherXM Pro API. For detailed API documentation, visit:

Key Endpoints Used

  • GET /stations/{station_id}/latest - Get latest observation
  • GET /stations/{station_id}/forecast/hourly - Get hourly forecast
  • GET /stations/{station_id}/forecast/daily - Get daily forecast
  • GET /stations/{station_id}/historical - Get historical data
  • GET /alerts - Get weather alerts
  • GET /stations - Find nearby stations
  • GET /stations/search - Search for stations
  • GET /cells - Get weather cells

License

ISC

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Support

For issues related to:

  • WeatherXM Pro API: Contact WeatherXM support at pro.weatherxm.com
  • MCP Server Issues: Check the main README.md for more details
  • Weather Data: Check the data quality scores provided by the server
  • Configuration Issues: Review the Configuration and Troubleshooting sections above

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured