🌤️ Weather MCP Server (Tutorial)
Este repositorio contiene el código fuente del servidor MCP (Model Context Protocol) desarrollado en el tutorial de YouTube. Este servidor permite conectar Claude Desktop con la API pública de Open-Meteo para obtener datos climáticos en tiempo real.
📺 VER EL TUTORIAL COMPLETO EN YOUTUBE
🚀 Características
- Servidor MCP Básico: Implementación limpia usando el SDK oficial de TypeScript.
- Herramienta (Tool) personalizada:
get-weatherque acepta ciudad y código de país. - Integración API Real: Conexión con Open-Meteo (sin necesidad de API Key).
- Validación de datos: Uso de Zod para validar esquemas.
🛠️ Requisitos
- Node.js (v18 o superior)
- Claude Desktop App instalado
📦 Instalación
- Clona este repositorio:
git clone [https://github.com/acenaga/mcpWeather.git](https://github.com/acenaga/mcpWeather.git) cd mcpWeather
2. Instala las dependencias:
```bash
npm install
⚙️ Configuración en Claude Desktop
Para usar este servidor en Claude, debes editar tu archivo de configuración.
- Abre el archivo de configuración de Claude: MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
- Agrega tu servidor a la lista mcpServers. Asegúrate de poner la ruta absoluta a tu carpeta build/index.js.
{
"mcpServers": {
"weather-server": {
"command": "node",
"args": [
"/RUTA/ABSOLUTA/HACIA/TU/PROYECTO/build/index.js"
]
}
}
}
- Reinicia Claude Desktop. Deberías ver un icono de "enchufe" 🔌 indicando que el servidor está conectado.
🐛 Debugging (MCP Inspector)
Si quieres probar el servidor sin usar Claude, puedes usar el Inspector oficial de MCP:
npx @modelcontextprotocol/inspector node build/index.js
Esto abrirá una interfaz web donde puedes probar las herramientas manualmente.
🤝 Contribuir
¡Las PRs son bienvenidas! Si tienes ideas para mejorar este ejemplo o agregar más herramientas climáticas, siéntete libre de contribuir.
Desarrollado por Carlos Ferrer "Acenaga" Si este código te sirvió, considera dejar una ⭐ en el repo y suscribirte al canal.
