Skip to main content
Glama
r-u-d-r-a-a

rudra-weather-mcp

by r-u-d-r-a-a

šŸŒ¤ļø Weather MCP Server

A simple Model Context Protocol (MCP) server that provides weather alerts to AI assistants such as Claude Code.

The server runs locally and communicates with the MCP client using stdio (standard input/output). It fetches weather information from an external weather API and exposes it as an MCP tool.

Architecture

Claude Code
     ↕
   stdio
     ↕
Weather MCP Server
     ↓
Weather API

The MCP server runs as a local Node.js process. It does not expose a web server or listen on a port such as localhost:3000.

Related MCP server: MCP Weather Server

Features

  • šŸŒ”ļø Get current weather alerts

  • šŸ“ Query weather for a specified location

  • šŸ”Œ MCP-compatible tool interface

  • šŸ’» Runs locally using stdio

  • šŸ“¦ Installable through npm

  • šŸ¤– Designed for use with Claude Code

Requirements

  • Node.js

  • npm

  • Claude Code

  • An API key for the weather service, if required by the implementation

Installation

Using npm

The package is available on npm as:

npx rudra-weather-mcp

No global installation is required.

From source

Clone the repository:

git clone <YOUR_GITHUB_REPOSITORY_URL>
cd weather

Install dependencies:

npm install

Run the server:

npm start

Using with Claude Code

Add the MCP server to Claude Code:

claude mcp add weather -- npx rudra-weather-mcp

Claude Code will automatically start the MCP server locally when it needs to communicate with it.

You can verify the MCP configuration with:

claude mcp list

Example Prompt

After adding the MCP server, ask Claude Code:

Use the weather MCP server to get the current weather alerts in Boston, Massachusetts.

Do not answer from your own knowledge. Use the MCP tool.

Claude Code should invoke the weather MCP tool and return the information provided by the server.

How It Works

MCP defines how an AI application communicates with external tools.

In this project, stdio is the transport mechanism used to send MCP messages between Claude Code and the local MCP server.

Claude Code
    │
    │ MCP messages
    │
    ā–¼
  stdio
    │
    ā–¼
Weather MCP Server
    │
    │ HTTP request
    ā–¼
Weather API
    │
    │ Weather data
    ā–¼
Weather MCP Server
    │
    │ MCP response
    ā–¼
Claude Code

The MCP server itself is not an HTTP server. It runs as a local process and communicates through:

  • stdin — receives messages from Claude Code

  • stdout — sends responses to Claude Code

  • stderr — used for errors/logging

Local vs Remote MCP

This project is designed as a local MCP server.

Local

Claude Code
     ↕
   stdio
     ↕
MCP Server

Each user runs their own copy of the MCP server on their computer.

Remote

A remote MCP server could instead communicate over HTTP:

Claude Code
     ↓ HTTP
Remote MCP Server
     ↓
Weather API

This project does not currently require a remote server.

Development

Start the server directly with:

npm start

The project uses:

  • TypeScript — MCP server implementation

  • Node.js — runtime

  • tsx — TypeScript execution

  • Zod — schema validation

  • MCP SDK — MCP server implementation

Project Structure

weather/
ā”œā”€ā”€ bin/
│   └── weather-mcp.js
ā”œā”€ā”€ src/
│   └── index.ts
ā”œā”€ā”€ package.json
└── README.md

npm Package

The published npm package is:

rudra-weather-mcp

Run it with:

npx rudra-weather-mcp

License

MIT

Available Tools

1 tool
get-alertsA

Get the active weather alerts for a US state

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter US state code, e.g. CA

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. 'Get' implies a read-only operation and 'active' suggests temporal filtering, but the description does not disclose data source, return shape, or any limitations beyond the state scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence that front-loads the action and scope. Every word adds value, with no redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with one fully documented parameter and no output schema, the description is largely sufficient to let an agent call it correctly. Minor gaps remain around response format and whether 'active' has a time-bound meaning, but these are not blocking for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the only parameter with a clear example ('Two-letter US state code, e.g. CA'), so the description adds no additional parameter meaning. Given 100% schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get the active weather alerts for a US state'. It clearly identifies the tool's scope and differentiates it from vague or ambiguous actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for fetching active weather alerts within a US state, which is sufficient for this simple case. However, it does not explicitly state when not to use it or how it compares to alternatives, though no siblings are listed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedget-alerts

TDQS

A3.8/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between tools. The purpose is clearly defined as retrieving active weather alerts for a US state.

Naming Consistency5/5

The single tool name 'get-alerts' follows a clear verb-noun pattern. With only one tool, naming is trivially consistent.

Tool Count3/5

One tool is borderline; it feels thin for a server named 'weather-mcp', but it is appropriately focused for a single-purpose alerts service.

Completeness2/5

The server only provides alerts, leaving obvious gaps in weather data such as current conditions and forecasts. The surface is too limited for a weather-focused MCP.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI models to fetch weather alerts and detailed forecasts for US locations using the National Weather Service API.
    98 npm
    GPL 3.0
  • -
    license
    B
    quality
    D
    maintenance
    Enables users to retrieve current weather alerts for US states and detailed weather forecasts by geographic coordinates using the US National Weather Service API. Built with Node.js and TypeScript following Model Context Protocol standards for seamless LLM integration.
    2
    -
  • F
    license
    A
    quality
    D
    maintenance
    Provides real-time weather alerts from the National Weather Service API via the Model Context Protocol. It allows LLMs to fetch active alerts for specific US states using both STDIO and SSE transport protocols.
    1
    1
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time weather alerts and forecasts from the National Weather Service for US locations, integrating with AI assistants via the Model Control Protocol.
    -