weather-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@weather-mcpwhat's the weather like in Paris?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
weather-mcp
Servidor MCP para consultar el tiempo en cualquier ciudad del mundo, usando la API gratuita de Open-Meteo. Sin registro, sin API key.
Arquitectura y componentes
┌─────────────────────────────────────────────────────────────────┐
│ Claude Code / IA │
│ (cliente MCP — cualquier host) │
└────────────────────────┬────────────────────────────────────────┘
│ stdio (JSON-RPC)
▼
┌─────────────────────────────────────────────────────────────────┐
│ weather-mcp (este servidor) │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ MCP Server │ │
│ │ @modelcontextprotocol/sdk + Zod │ │
│ │ │ │
│ │ ┌─────────────────┐ ┌─────────────────┐ │ │
│ │ │get_current_ │ │ get_forecast │ │ │
│ │ │weather │ │ (1–7 días) │ │ │
│ │ └────────┬────────┘ └────────┬────────┘ │ │
│ │ │ │ │ │
│ │ ┌────────▼────────────────────▼────────┐ │ │
│ │ │ get_uv_and_air │ │ │
│ │ │ (índice UV + calidad del aire) │ │ │
│ │ └──────────────────┬───────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ Geocoding helper │ │ │
│ │ │ ciudad → latitud / longitud │ │ │
│ │ └──────────────────┬───────────────────┘ │ │
│ └─────────────────────┼───────────────────────────────────┘ │
└─────────────────────────┼───────────────────────────────────────┘
│ HTTPS (fetch nativo Node 18+)
┌───────────────┼───────────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌────────────────┐ ┌─────────────────────────┐
│ Geocoding │ │ Forecast │ │ Air Quality │
│ API │ │ API │ │ API │
│ open-meteo │ │ open-meteo │ │ air-quality.open-meteo │
└──────────────┘ └────────────────┘ └─────────────────────────┘Flujo de una consulta
IA: "¿Qué tiempo hace en Bogotá?"
│
▼
1. MCP llama get_current_weather({ city: "Bogotá" })
│
▼
2. geocodeCity("Bogotá")
→ GET geocoding-api.open-meteo.com/v1/search
← { latitude: 4.71, longitude: -74.07, country: "Colombia" }
│
▼
3. GET api.open-meteo.com/v1/forecast
← temperatura, humedad, viento, código WMO, precipitación
│
▼
4. Respuesta formateada en texto legible
→ IA la presenta al usuarioRelated MCP server: Weather MCP Server
Estructura del proyecto
weather-mcp/
├── src/
│ ├── index.ts # Entrada: registro de herramientas MCP y arranque del servidor
│ ├── handlers.ts # Lógica de negocio de las 3 herramientas (testeable de forma aislada)
│ ├── weather.ts # Utilidades puras: geocodeCity, describeWeather, WMO_CODES
│ └── __tests__/
│ ├── weather.test.ts # Tests de geocodificación y códigos WMO (9 tests)
│ └── handlers.test.ts # Tests de herramientas con fetch mockeado (31 tests)
├── vitest.config.ts # Configuración de tests y umbrales de cobertura (≥80%)
├── tsconfig.json
└── package.jsonHerramientas utilizadas
Herramienta | Versión | Propósito |
5.8 | Lenguaje principal | |
1.13 | Protocolo MCP (servidor stdio) | |
3.24 | Validación de esquemas de herramientas | |
4.19 | Ejecución directa de TypeScript en desarrollo | |
3.x | Framework de tests unitarios | |
3.x | Cobertura de código con motor V8 | |
— | Datos meteorológicos actuales y pronóstico | |
— | Conversión ciudad → coordenadas | |
— | Índice UV y calidad del aire |
Instalación
Requisitos
Node.js 18 o superior
Claude Code CLI (
npm install -g @anthropic-ai/claude-code)
Pasos
# 1. Clonar el repositorio
git clone https://github.com/relativismofisico/weather-mcp.git
cd weather-mcp
# 2. Instalar dependencias y compilar
npm install
npm run build
# 3. Registrar en Claude Code (global — disponible en cualquier proyecto)
claude mcp add weather --transport stdio --scope user -- node /ruta/absoluta/weather-mcp/dist/index.jsEn Windows usa la ruta completa con barras normales:
node C:/Users/TuUsuario/weather-mcp/dist/index.js
Verificar la instalación
claude mcp list
# weather: node .../dist/index.js - ✔ ConnectedUso desde una IA
Una vez registrado, abre una nueva conversación en Claude Code. Las herramientas estarán disponibles automáticamente. Puedes pedirle a la IA:
Tiempo actual
"¿Qué tiempo hace en Buenos Aires?" "Dame la temperatura actual en Tokio" "¿Está lloviendo en Londres ahora mismo?"
Pronóstico
"Dame el pronóstico de 7 días para Ciudad de México" "¿Cómo va a estar el tiempo en París esta semana?"
UV y calidad del aire
"¿Cuál es el índice UV en Medellín hoy?" "¿La calidad del aire en Beijing es buena?"
Ejemplo de respuesta
📍 Buenos Aires, Ciudad Autónoma de Buenos Aires, Argentina
🕐 2026-06-29T14:00 (hora local) ☀️ Día
🌡️ Temperatura: 18°C (sensación 16°C)
💧 Humedad: 65%
🌬️ Viento: 22 km/h (dirección 180°)
🌧️ Precipitación: 0 mm
☁️ Cielo: Parcialmente nubladoHerramientas MCP expuestas
get_current_weather
Obtiene el tiempo actual de una ciudad.
Parámetro | Tipo | Descripción |
|
| Nombre de la ciudad (ej. |
Datos devueltos: temperatura, sensación térmica, humedad, velocidad y dirección del viento, precipitación, descripción del cielo (código WMO), si es de día o noche.
get_forecast
Pronóstico diario de hasta 7 días.
Parámetro | Tipo | Descripción |
|
| Nombre de la ciudad |
|
| Días del pronóstico (1–7, por defecto 5) |
Datos devueltos por día: temperatura máx/mín, lluvia acumulada, viento máximo, hora de amanecer y atardecer, descripción del cielo.
get_uv_and_air
Índice UV actual y calidad del aire.
Parámetro | Tipo | Descripción |
|
| Nombre de la ciudad |
Datos devueltos: índice UV con etiqueta (Bajo / Moderado / Alto / Muy alto / Extremo), AQI (US), PM2.5, PM10, monóxido de carbono.
Desarrollo
# Ejecutar en modo desarrollo (sin compilar)
npm run dev
# Compilar
npm run build
# Probar con MCP Inspector
npx @modelcontextprotocol/inspector
# → seleccionar "stdio", comando: node dist/index.jsTests y cobertura
El proyecto usa Vitest con cobertura por V8. Los umbrales mínimos configurados son 80% en todas las métricas; actualmente se alcanza el 100%.
# Ejecutar todos los tests
npm test
# Tests en modo watch (desarrollo)
npm run test:watch
# Tests con reporte de cobertura
npm run test:coverageResultado actual
-------------|---------|----------|---------|---------|
File | % Stmts | % Branch | % Funcs | % Lines |
-------------|---------|----------|---------|---------|
handlers.ts | 100 | 100 | 100 | 100 |
weather.ts | 100 | 100 | 100 | 100 |
-------------|---------|----------|---------|---------|
All files | 100 | 100 | 100 | 100 |Qué se testea
Módulo | Tests | Casos cubiertos |
| 9 | Todos los códigos WMO, fallback para código desconocido, geocodificación exitosa, errores HTTP, ciudad no encontrada, caracteres especiales |
| 31 | Día/noche, ubicación con y sin |
Los tests mockean fetch globalmente con vi.stubGlobal — no se realizan llamadas reales a la red.
Changelog
v0.2.0 — 2026-06-29
Refactorización: extracción de
weather.ts(utilidades puras) yhandlers.ts(lógica de herramientas) para habilitar tests unitarios sin dependencia del servidor MCP40 tests unitarios con 100% de cobertura (statements, branches, functions, lines)
Configuración de Vitest con umbrales de cobertura ≥ 80%
coverage/excluido del repositorio vía.gitignore
v0.1.0 — 2026-06-29
Implementación inicial del servidor MCP con transporte stdio
Herramienta
get_current_weather: temperatura, humedad, viento, precipitación y descripción del cieloHerramienta
get_forecast: pronóstico de 1 a 7 días con amanecer/atardecerHerramienta
get_uv_and_air: índice UV y calidad del aire (PM2.5, PM10, CO, AQI)Geocodificación automática de ciudad a coordenadas vía Open-Meteo Geocoding API
Descripciones de cielo en español usando códigos WMO
Sin API key requerida — 100% gratuito
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/relativismofisico/weather-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server