Skip to main content
Glama
README.md
# mcp-open-meteo

Owned sample MCP server for [Claude Desktop](https://claude.ai/download) or [Cursor](https://cursor.com). Two tools talk to [Open-Meteo](https://open-meteo.com/en/docs) (public weather API). **No API key.**

This is a portfolio demo, not a client deliverable. It shows the SKU shape: tool definitions, client config, README.

## Tools

| Tool | What it does |
| --- | --- |
| `geocode_city` | City name → lat/lon |
| `get_forecast` | Geocode a city, then current conditions + 1–7 day forecast |

## Requirements

- Node 18+
- A client that speaks MCP over stdio: **Cursor** (any paid Cursor plan you already use) or **Claude Desktop**

You do **not** need ChatGPT Plus. Free ChatGPT cannot attach a local custom MCP.

Claude.ai free can add **one remote** custom connector (a public HTTPS MCP). A local stdio server like this one is wired in **Claude Desktop** (`claude_desktop_config.json`) or **Cursor** (`~/.cursor/mcp.json`). Test with no LLM at all via MCP Inspector:

```bash
npm install
npm run inspect
```

## Install

```bash
git clone https://github.com/Jose24San/mcp-open-meteo.git
cd mcp-open-meteo
npm install
```

## Cursor

Settings → MCP → add a server, or merge into `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "open-meteo": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/mcp-open-meteo/src/index.js"]
    }
  }
}
```

Restart MCP (toggle the server off/on). In chat: "What's the 3-day forecast for McKinney, Texas?" Cursor should call `get_forecast`.

## Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):

```json
{
  "mcpServers": {
    "open-meteo": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/mcp-open-meteo/src/index.js"]
    }
  }
}
```

Use an absolute `node` path if Desktop cannot see nvm (`which node`). Fully quit and reopen Claude Desktop. Enable the `open-meteo` connector on a new chat, then ask for a forecast.

## Not this sample

- Marketing automation, email, SMS, GHL
- OAuth or a private CRM (that's a paid gig, Standard/Premium)
- A whole product or a RAG chatbot

TDQS

A3.7/5.0

Scored across 2 tools

Disambiguation4/5

The two tools have distinct purposes: one resolves coordinates, the other returns weather. However, get_forecast internally geocodes a city, creating slight overlap that could confuse an agent about whether geocode_city is a required prerequisite.

Naming Consistency5/5

Both names follow a clear snake_case verb_noun pattern (geocode_city, get_forecast) with no deviations.

Tool Count3/5

Only two tools is thin for a weather API server. While the tools are focused, the surface feels underdeveloped for the apparent scope of Open-Meteo.

Completeness3/5

The server covers basic geocoding and a short forecast, but notable operations like hourly forecasts, historical weather, reverse geocoding, and access to additional weather variables are missing.

Maintenance

ActivityMaintained
ResponsivenessNo issues