Clima MCP Server
Enables weather queries through OpenWeatherMap API, providing current conditions, intelligent city search, and configuration validation.
README
Servidor MCP de Clima en Python (Windows) con OpenWeatherMap
Este proyecto implementa un servidor MCP (Model Context Protocol) completo en Python para consultar información meteorológica mediante la API de OpenWeatherMap. Diseñado específicamente para ejecutarse en Windows y facilitar la integración con clientes MCP como Claude Desktop.
🎯 Características
- ✅ Consultar clima actual por nombre de ciudad con códigos de país
- ✅ Búsqueda inteligente de ubicaciones con resultados múltiples
- ✅ Validación de configuración y diagnóstico del servidor
- ✅ Manejo robusto de errores con códigos específicos
- ✅ Logging detallado para debugging y monitoreo
- ✅ Configuración flexible mediante variables de entorno
- ✅ Soporte multiidioma para descripciones meteorológicas
- ✅ Protocolo MCP estándar con transporte stdio
- ✅ Instalación automática en Windows con script
- ✅ Documentación exhaustiva con ejemplos
📋 Requisitos
- Python 3.10 o superior
- API Key de OpenWeatherMap (gratuita, 1,000 llamadas/día)
- Windows 10/11 (también compatible con Linux/macOS)
🚀 Instalación Rápida
Opción 1: Instalación Automática (Windows)
# Descargar y ejecutar el instalador automático
install.bat
Opción 2: Instalación Manual
# 1. Clonar/descargar el proyecto
cd climate-mcp-server
# 2. Crear entorno virtual
python -m venv venv
# 3. Activar entorno virtual
venv\Scripts\activate
# 4. Instalar dependencias
pip install -r requirements.txt
# 5. Configurar API key
copy .env.example .env
# Editar .env y agregar tu API key de OpenWeatherMap
🔑 Configuración
-
Obtener API Key gratuita:
- Visitar OpenWeatherMap API
- Crear cuenta gratuita
- Copiar la API key
-
Configurar variables de entorno:
# En archivo .env OPENWEATHERMAP_API_KEY=tu_api_key_aqui
🛠️ Uso
Ejecutar Servidor
# Activar entorno virtual
venv\Scripts\activate
# Ejecutar servidor
python clima_mcp_server.py
Probar Funcionamiento
# Ejecutar suite de pruebas
python test_servidor.py
Integración con Claude Desktop
-
Configurar cliente MCP:
- Editar:
%APPDATA%\Claude\claude_desktop_config.json - Usar configuración de
config.json
- Editar:
-
Ejemplo de configuración:
{ "mcpServers": { "clima-servidor": { "command": "python", "args": ["C:/ruta/a/clima_mcp_server.py"], "env": { "OPENWEATHERMAP_API_KEY": "tu_api_key_aqui" } } } }
📚 Herramientas MCP Disponibles
1. consultar_clima_actual
Consulta el clima actual para una ciudad específica.
Parámetros:
ciudad(string, requerido): Nombre de la ciudadcodigo_pais(string, opcional): Código ISO de paísunidades(string): "metric", "imperial", "standard"idioma(string): Código de idioma ("es", "en", "fr", etc.)
Ejemplos:
Consultar clima en Madrid
Clima en Paris, FR en Fahrenheit
Weather in London with English descriptions
2. buscar_ciudades
Busca ciudades que coincidan con un término.
Parámetros:
query(string, requerido): Término de búsquedalimit(integer): Número máximo de resultados
Ejemplos:
Buscar ciudades con "New"
Encontrar ubicaciones que contengan "Madrid"
3. validar_configuracion
Valida la configuración del servidor y API key.
Ejemplos:
Validar configuración del servidor
Check server setup and API connection
📊 Ejemplo de Respuesta
{
"ciudad": "Madrid",
"pais": "ES",
"coordenadas": {
"latitud": 40.4168,
"longitud": -3.7038
},
"temperatura": 22.5,
"sensacion_termica": 25.0,
"humedad": 65,
"presion": 1013,
"visibilidad": 10000,
"condiciones": "cielo despejado",
"viento": {
"velocidad": 5.2,
"direccion": 180,
"gustas": null
},
"nubes": {
"porcentaje": 10
},
"amanecer": "07:30",
"atardecer": "19:45",
"timezone": 3600,
"timestamp": "2025-11-04T02:14:20",
"unidades": "metric (°C)"
}
🚨 Manejo de Errores
| Código | Descripción | Solución |
|---|---|---|
API_KEY_INVALIDA |
API key no configurada o inválida | Verificar configuración en .env |
CIUDAD_NO_ENCONTRADA |
Ciudad no encontrada | Verificar nombre, usar código de país |
TIMEOUT |
API no responde | Verificar conectividad, aumentar timeout |
RATE_LIMIT |
Límite de solicitudes excedido | Esperar antes de nuevas consultas |
PARAMETRO_INVALIDO |
Parámetros faltantes | Verificar parámetros de entrada |
📁 Estructura del Proyecto
code/ejemplos_mcp/
├── clima_mcp_server.py # Servidor MCP principal
├── test_servidor.py # Suite de pruebas
├── install.bat # Instalador automático Windows
├── requirements.txt # Dependencias Python
├── .env.example # Ejemplo de configuración
├── config.json # Configuración detallada
└── README.md # Este archivo
docs/
└── ejemplo_clima_instructions.md # Documentación completa
🔧 Desarrollo
Agregar Nuevas Funcionalidades
- Nuevas herramientas MCP: Usar decorador
@server.tool() - Nuevos modelos: Crear clases que hereden de
BaseModel - Nuevas APIs: Expandir métodos en
ClimaMCPServer - Testing: Agregar tests en
test_servidor.py
Logging
El servidor genera logs detallados:
2025-11-04 02:14:20 - INFO - Servidor MCP de clima inicializado
2025-11-04 02:14:21 - INFO - Consultando clima para: Madrid
2025-11-04 02:14:22 - INFO - Coordenadas encontradas: lat=40.4168, lon=-3.7038
2025-11-04 02:14:23 - INFO - Consulta completada exitosamente
📖 Documentación Completa
Para documentación detallada, consultar:
- Guía Completa - Manual exhaustivo
- Configuración MCP - Especificaciones técnicas
- Protocolo MCP - Documentación oficial
🆘 Solución de Problemas
Error: "API key no configurada"
# Verificar archivo .env existe
dir .env
# Verificar contenido
type .env
Error: "Module not found"
# Reactivar entorno virtual
venv\Scripts\activate
# Reinstalar dependencias
pip install -r requirements.txt
Error: "Timeout en la consulta"
# Aumentar timeout en .env
API_TIMEOUT=60.0
📄 Licencia
MIT License - Ver archivo LICENSE para detalles.
🤝 Contribución
- Fork el proyecto
- Crear rama de feature:
git checkout -b feature/nueva-funcionalidad - Commit cambios:
git commit -am 'Agregar nueva funcionalidad' - Push a la rama:
git push origin feature/nueva-funcionalidad - Crear Pull Request
📞 Soporte
- Issues: Reportar problemas en el repositorio
- Documentación: Protocolo MCP
- API Docs: OpenWeatherMap
🏆 Características Destacadas
- 600+ líneas de código comentado y documentado
- 3 herramientas MCP completamente funcionales
- 10+ tipos de errores manejados específicamente
- Instalación automatizada para Windows
- Testing automatizado con simulación
- Configuración flexible para múltiples escenarios
- Documentación exhaustiva con ejemplos
Desarrollado por: MiniMax Agent
Versión: 1.0.0
Fecha: 2025-11-04
Compatibilidad: Python 3.10+, Windows 10+, MCP SDK 1.0+
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.