Skip to main content
Glama

Weather MCP Server

A simple Model Context Protocol (MCP) server that exposes a get_weather tool. It fetches real-time weather for any GPS coordinates using the free Open-Meteo API — no API key required.

Requirements

  • Node.js 18 or later. If you use nvm and have multiple Node versions installed, make sure a compatible version resolves first in your PATH, or point your MCP client config at a specific Node binary (see Usage below).

  • No API key or environment variables required.

Related MCP server: mcp-poc

Tool

get_weather

Fetches current temperature, feels-like temperature, humidity, and wind speed for a given location.

Inputs:

  • latitude (number) — latitude coordinate of the target location

  • longitude (number) — longitude coordinate of the target location

Setup

git clone https://github.com/tarunmalpani/mcp-weather.git
cd mcp-weather
npm install

Usage

This server communicates over stdio, so it's meant to be launched by an MCP-compatible client, not run standalone.

Claude Code

Add a .mcp.json file in your project root (replace cwd with the absolute path where you cloned this repo):

{
  "mcpServers": {
    "weather": {
      "command": "npx",
      "args": ["tsx", "server.ts"],
      "cwd": "/absolute/path/to/mcp-weather"
    }
  }
}

Claude Desktop

Add the same mcpServers block to your claude_desktop_config.json (Settings → Developer → Edit Config).

After saving the config, restart the client. The get_weather tool will be available automatically.

Remote / Hosted Usage

This repo also includes remote-server.ts, which exposes the same get_weather tool over Streamable HTTP instead of stdio. Deploy it to any Node hosting platform (e.g. Render) and clients can connect via URL — no local clone or install needed on the client side.

Deploying (e.g. on Render):

  • Build Command: npm install

  • Start Command: npm run start:remote

  • No environment variables required (the host's PORT is picked up automatically)

A live, hosted instance is running at https://mcp-weather-1cyg.onrender.com/mcp — you can connect to it directly without deploying your own.

Connecting a client to the remote URL:

  • Claude Code: add to .mcp.json:

    {
      "mcpServers": {
        "weather": {
          "type": "http",
          "url": "https://mcp-weather-1cyg.onrender.com/mcp"
        }
      }
    }
  • Claude Desktop: Desktop does not support a plain url field in claude_desktop_config.json for remote servers. Instead, go to Settings → Connectors → Add Custom Connector and paste the URL there.

Note: free hosting tiers typically spin down after a period of inactivity, so the first request after idling may take 10-30 seconds while the instance wakes up.

Development

Run the server directly (useful for testing it starts without errors):

npm start

To run the remote/HTTP variant locally:

npm run start:remote

Available Tools

1 tool
get_weatherA

Fetches the current real-time weather and temperature for specific GPS coordinates globally.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesThe latitude coordinate of the target location
longitudeYesThe longitude coordinate of the target location

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full behavioral burden. It indicates a read-only operation fetching real-time data, but does not disclose error handling, data source freshness, or any limitations. This is acceptable for a simple tool but could be more transparent.

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 sentence with no unnecessary words. It front-loads the action and resource, making it highly efficient and easy to parse.

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?

The tool is simple with two required parameters and no output schema. The description mentions 'weather and temperature', hinting at the output structure. It adequately covers the functionality for a straightforward lookup, though it could detail additional return fields.

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?

Schema descriptions for 'latitude' and 'longitude' already define the parameters clearly. The description adds 'specific GPS coordinates' which is redundant. With 100% schema coverage, the description provides no additional meaning, scoring the baseline of 3.

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 clearly states the verb 'Fetches' and the resource 'current real-time weather and temperature' for specific GPS coordinates globally. It accurately reflects the tool's function with no ambiguity.

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

Usage Guidelines4/5

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

The description implies usage for any global location via GPS coordinates. Without sibling tools, no alternatives are needed, and the scope is clear. It lacks explicit when-to-use or when-not-to-use guidance, but is adequate for a single-purpose tool.

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_weather

TDQS

A3.9/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between tools.

Naming Consistency5/5

Single tool name 'get_weather' follows a clear verb_noun pattern, consistent with the tool's purpose.

Tool Count3/5

A single tool for a weather server is minimal but acceptable if it covers the core use case. However, it lacks additional functionality like forecasts.

Completeness2/5

The server only provides current weather, missing common features such as forecasts, historical data, or severe weather alerts, which are significant gaps for a weather service.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers