Weather-MCP-Server

IAcademico/Weather-MCP-Server

3.2

If you are the rightful owner of Weather-MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Weather Server MCP Implementation is a Node.js-based server that allows language models to access real-time weather information and query a local search history using open APIs and local JSON storage.

Tools
2
Resources
0
Prompts
0

🌤️ Weather Server - MCP Implementation (Node.js)

🧩 Servidor MCP de Clima e Historial – Versión Final

Este proyecto implementa un servidor MCP (Model Context Protocol) en Node.js que permite a modelos de lenguaje (como Claude o GPT) obtener información climática en tiempo real y consultar un historial local de búsquedas, utilizando APIs abiertas y almacenamiento local en JSON.


🌐 1. ¿Qué es el MCP (Model Context Protocol)?

El Model Context Protocol (MCP) es un protocolo abierto desarrollado por Anthropic y la comunidad de IA para conectar modelos de lenguaje con fuentes de información externas y herramientas locales de manera segura y estructurada.

En términos simples:

El MCP permite que un modelo de IA hable con tu aplicación, acceda a datos o ejecute funciones, sin exponer directamente tu código ni tus APIs privadas.


⚙️ 2. Cómo funciona el MCP

Un MCP Server es una aplicación que expone:

  • 🛠️ Tools (herramientas) → Acciones que el modelo puede ejecutar (por ejemplo: get-weather, get-history).
  • 📚 Resources (recursos) → Archivos o datos a los que el modelo puede acceder (por ejemplo: weather-codes.json).
  • 🔔 Events (opcional) → Notificaciones o flujos de datos en tiempo real.

El modelo de IA actúa como cliente MCP, que se comunica con tu servidor usando un canal seguro (en este caso, stdio, o entrada/salida estándar).


🧩 3. Descripción del proyecto (main.ts)

El archivo main.ts define un servidor MCP en Node.js que ofrece dos herramientas y un recurso:


🛠️ Herramienta 1: get-weather

Propósito: Obtener el clima actual de una ciudad.

Flujo:

  1. Busca la ciudad en la Geocoding API de Open Meteo para obtener coordenadas.
  2. Consulta los datos del clima actual en la Weather API de Open Meteo.
  3. Guarda la consulta (ciudad, coordenadas, temperatura, fecha) en un archivo local history.json.
  4. Devuelve al modelo una respuesta simplificada con temperatura y humedad.

📄 Ejemplo de respuesta:

{
  "city_searched": "Santiago",
  "current_temperature_c": 22.5,
  "relative_humidity_percent": 48,
  "weather_code": 1
}

🧠 **Arquitectura conceptual**

          ┌──────────────────────────────┐
          │      Modelo de IA (Cliente)  │
          │    (Claude, GPT, etc.)       │
          └─────────────┬────────────────┘
            JSON (via STDIO / MCP)
          ┌─────────────┴────────────────┐
          │     Tu Servidor MCP (Node)   │
          │ ├── Tool: get-weather        │
          │ ├── Tool: get-history        │
          │ └── Resource: weather-codes  │
          └─────────────┬────────────────┘
          ┌─────────────┴────────────────┐
          │     APIs externas (OpenMeteo)│
          │     Archivos locales (.json) │
          └──────────────────────────────┘


📦 **Instalación y ejecución**

# Clonar el repositorio
git clone https://github.com/IAcademico/weather-mcp-server.git
cd weather-mcp-server

# Instalar dependencias
npm install

# Ejecutar el servidor MCP
npm run start

📁 **Estructura del proyecto**

📦 weather-mcp-server
 ┣ 📂 .vscode/
 ┣ 📂 node_modules/
 ┣ 📂 project_scanners/
 ┣ 📜 main.ts
 ┣ 📜 history.json
 ┣ 📜 weather-codes.json
 ┗ 📜 README.md