← Back to directory
W

Weather MCP Server

Community
A comprehensive MCP server for real-time weather data with Claude Desktop
Category
Other #150 of 230
Stars
★ 98 Popular
Transport
stdio (local process)
Runtime
Node.js 18+ · Docker
Credentials
API key / credential required
License
MIT
Last commit
⚠
Tools
4
50FMRS · D

This project is a well-featured weather MCP server with a clean architecture and clear tool interfaces. Suitable for developers wanting to integrate weather queries into Claude.

Strongest · Documentation 12/20 Weakest · Security and permissions 8/20

Reliability
9/20
Security and permissions
8/20
Maintenance
12/20
Documentation
12/20
Setup experience
9/20
Why each score
Reliability 9/20
Static review only; no execution evidence. Codebase shows clean architecture, MCP tool definitions, and test configuration (Jest), but no reproducible test results or CI logs are visible in the reviewed files. Deduction for lack of actual test output, unclear error handling (timeouts, retries).
Security and permissions 8/20
No malicious code detected. Credentials use .env, README config examples use placeholders. However, potential over-privilege (unspecified download links), reliance on external APIs and Redis/PostgreSQL services, no explicit data-flow or least-privilege statement. No confirmation prompts, but operations are read-only.
Maintenance 12/20
Repository has 98 stars, MIT license, README indicates active development and CI/CD. But static review cannot verify recent commits or release history. 5 open issues, no clear security-response channel visible.
Documentation 12/20
README is comprehensive: install, configure, usage examples, troubleshooting, architecture. Lacks detailed tool parameter schemas, some content in Portuguese may be a language barrier. No limitations/cost info.
Setup experience 9/20
README provides step-by-step setup including Docker and Claude Desktop config examples. Requires multiple external dependencies (PostgreSQL, Redis, API key), many manual steps, no automation scripts or mainstream package manager installation.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkConnects to a database

Best for

  • Developers looking to integrate real-time weather into Claude Desktop
  • Use cases requiring caching for faster responses
  • Developers interested in Clean Architecture and SOLID principles

Not for

  • Users without an OpenWeatherMap API key
  • Simple use cases that don't require caching or a database
  • Users who cannot run Docker environments

Required permissions

  • Access to external OpenWeatherMap API
  • Read/write to PostgreSQL database (for query history)
  • Read/write to Redis cache
  • Read API keys from environment variables

Risks and side effects

  • API key exposure if not securely stored
  • Database and Redis unavailability could cause failures
  • Cache data may become stale, leading to inaccurate info
  • Dependency on external OpenWeatherMap API, which might have rate limits or downtime

Setup

Before you start

Runtime:Node.js 18+ · Docker

WEATHER_API_KEY requiredsecret OpenWeatherMap API key (required), obtained free at openweathermap.org/api.
DATABASE_URL required PostgreSQL connection string (required) for storing query history, provided by the docker:up stack.
REDIS_URL required Redis connection URL (required) for caching, provided by the docker:up stack.
Other optional settings (4)
NODE_ENV optional Runtime environment flag, e.g. production (optional).
LOG_LEVEL optional Logging level, e.g. error or info (optional).
MCP_MODE optional Set to true to enable MCP mode (optional).
PORT optional HTTP server port, default 3000 (optional).
  1. Clone repository: git clone https://github.com/glaucia86/weather-mcp-server.git
  2. Install dependencies: npm install
  3. Copy .env.example to .env and configure WEATHER_API_KEY, DATABASE_URL, REDIS_URL
  4. Build project: npm run build
  5. Start infrastructure: npm run docker:up
  6. Configure Claude Desktop's claude_desktop_config.json with the provided JSON.
claude_desktop_config.json
{
  "mcpServers": {
    "weather-mcp": {
      "command": "node",
      "args": [
        "/caminho/completo/para/weather-mcp-server/dist/mcp-entry.js"
      ],
      "env": {
        "WEATHER_API_KEY": "SUA_API_KEY_OPENWEATHERMAP",
        "DATABASE_URL": "postgresql://mcp_user:mcp_pass@localhost:5432/weather_mcp",
        "REDIS_URL": "redis://localhost:6379",
        "NODE_ENV": "production",
        "LOG_LEVEL": "error",
        "MCP_MODE": "true"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "weather-mcp": {
      "command": "node",
      "args": [
        "/caminho/completo/para/weather-mcp-server/dist/mcp-entry.js"
      ],
      "env": {
        "WEATHER_API_KEY": "SUA_API_KEY_OPENWEATHERMAP",
        "DATABASE_URL": "postgresql://mcp_user:mcp_pass@localhost:5432/weather_mcp",
        "REDIS_URL": "redis://localhost:6379",
        "NODE_ENV": "production",
        "LOG_LEVEL": "error",
        "MCP_MODE": "true"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add weather-mcp -e WEATHER_API_KEY=SUA_API_KEY_OPENWEATHERMAP -e DATABASE_URL=postgresql://mcp_user:mcp_pass@localhost:5432/weather_mcp -e REDIS_URL=redis://localhost:6379 -e NODE_ENV=production -e LOG_LEVEL=error -e MCP_MODE=true -- node /caminho/completo/para/weather-mcp-server/dist/mcp-entry.js

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After building with npm run build and restarting Claude Desktop completely, the four tools (get_current_weather, get_weather_forecast, get_weather_history, get_cache_statistics) should appear in the client's tool list; ask "What is the current weather in Tokyo?" to confirm live data via OpenWeatherMap.

Troubleshooting

  1. If 'Cannot find module', run rm -rf node_modules package-lock.json; npm cache clean --force; npm install; npm run build
  2. If MCP doesn't connect to Claude Desktop, verify the path in claude_desktop_config.json is correct, ensure dist/mcp-entry.js exists, and completely restart Claude Desktop
  3. If PostgreSQL connection refused, run npm run docker:down and npm run docker:up, then wait 30 seconds

Things to try

Once connected, you can ask your AI assistant things like:

  • What is the current weather in São Paulo?
  • What will the weather be like tomorrow in London?
  • Show me my recent weather query history
  • Show me the Redis cache statistics

Tools 4

get_current_weather read-only
Retrieves current weather conditions for any city.
get_weather_forecast read-only
Provides a 5-day weather forecast.
get_weather_history read-only
Returns past weather query records.
get_cache_statistics read-only
Shows Redis cache performance statistics.

Use cases

Query current weather for any city in real-time
Get a 5-day weather forecast
Review history of past weather queries
Monitor cache system performance

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

The Weather MCP Server is a TypeScript-based MCP server built with Clean Architecture and SOLID principles. It enables Claude Desktop to query real-time weather, 5-day forecasts, history, and cache statistics via OpenWeatherMap, PostgreSQL, and Redis.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 654 · Tools 11 Compare with this →

Source revision 25d68abac2b1 Data synced 2026-10-12 Read the FMRS scoring method