Skip to main content
Glama
adarshem

MCP Weather Server

by adarshem
README.md
# MCP Weather Server

[![smithery badge](https://smithery.ai/badge/@adarshem/mcp-server-learn)](https://smithery.ai/server/@adarshem/mcp-server-learn)

This project is a demo implementation of a Model Context Protocol (MCP) server that provides weather-related tools. The server exposes two tools:

1. **get-alerts**: Fetches active weather alerts for a given US state.
2. **get-forecast**: Provides a weather forecast for a specific location based on latitude and longitude.

<a href="https://glama.ai/mcp/servers/@adarshem/mcp-server-learn">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@adarshem/mcp-server-learn/badge" alt="Weather Server MCP server" />
</a>

## Features
- Built using Node.js.
- Implements MCP tools for weather data retrieval.
- Uses the US National Weather Service API for accurate and up-to-date weather information.

## Prerequisites
- Node.js installed on your system.
- Familiarity with MCP concepts and tools.

## Setup

### Installing via Smithery

To install mcp-server-learn for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@adarshem/mcp-server-learn):

```bash
npx -y @smithery/cli install @adarshem/mcp-server-learn --client claude
```

### Manual Installation
1. Clone the repository:
   ```bash
   git clone <repository-url>
   cd weather
   ```

2. Install dependencies using `pnpm` (as configured in the project):
   ```bash
   pnpm install
   ```

3. Build the project:
   ```bash
   pnpm build
   ```

## Configuration

Update your `settings.json` file of VSCode to add this MCP server

```json
{
    "mcpServers": {
        "weather": {
            "command": "node",
            "args": [
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather/build/index.js"
            ]
        }
    }
}
```

## Resources
- [MCP Quickstart Guide](https://modelcontextprotocol.io/quickstart/server)
- [US National Weather Service API](https://www.weather.gov/documentation/services-web-api)

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: get-alerts focuses on weather alerts for a state, while get-forecast provides weather forecasts for a location. There is no overlap in functionality, making it easy for an agent to choose the correct tool based on the need for alerts versus forecasts.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern with hyphens (get-alerts and get-forecast). This uniformity makes the tool set predictable and easy to understand, with no deviations in naming conventions.

Tool Count2/5

With only two tools, the server feels thin for a weather domain, as it lacks essential operations like current conditions, historical data, or radar information. While the tools are well-defined, the count is too low to provide comprehensive coverage for typical weather-related tasks.

Completeness2/5

The tool set is severely incomplete for a weather server, missing core functionalities such as current weather conditions, historical data, radar maps, and air quality information. This limited surface will likely cause agent failures when users request common weather data beyond alerts and forecasts.

Maintenance

ActivityInactive
ResponsivenessNo issues