MCP Weather Server
Um servidor MCP (Model Context Protocol) para busca de dados climáticos com suporte a streaming HTTP, desenvolvido em TypeScript.
🚀 Características
🌤️ Dados climáticos em tempo real - Temperatura, umidade, pressão, vento e mais
📡 Streaming HTTP - Requisições assíncronas e eficientes
🗺️ Múltiplas formas de busca - Por cidade, país ou coordenadas geográficas
🔮 Previsão do tempo - Previsão para 5 dias com dados detalhados
🌍 Suporte internacional - Cidades em qualquer país
📊 Dados estruturados - Resposta em JSON bem formatado
🐳 Docker ready - Containerizado para fácil deploy
☸️ Kubernetes ready - Configurado para deploy no AKS
🔧 Health checks - Endpoints para monitoramento
📈 Métricas - Endpoint básico de métricas
📋 Pré-requisitos
Node.js 18+
Docker (para containerização)
Azure CLI (para deploy no AKS)
kubectl (para gerenciamento do Kubernetes)
Chave da API OpenWeatherMap
🛠️ Instalação
1. Clone o repositório
2. Instale as dependências
3. Configure a API key
4. Obtenha uma chave da API OpenWeatherMap
Visite OpenWeatherMap
Crie uma conta gratuita
Gere uma API key
Configure no arquivo
.env
🚀 Execução
Desenvolvimento
Produção
Docker
🔧 Ferramentas MCP Disponíveis
1. get_current_weather
Obtém dados climáticos atuais para uma cidade.
Parâmetros:
city(obrigatório): Nome da cidadecountry(opcional): Código do país (ex: "BR", "US")units(opcional): Unidade de medida ("metric", "imperial", "standard")
2. get_weather_forecast
Obtém previsão do tempo para 5 dias.
Parâmetros:
city(obrigatório): Nome da cidadecountry(opcional): Código do paísunits(opcional): Unidade de medida
3. get_weather_by_coordinates
Obtém dados climáticos usando coordenadas geográficas.
Parâmetros:
lat(obrigatório): Latitudelon(obrigatório): Longitudeunits(opcional): Unidade de medida
🧪 Teste
Cliente de exemplo
Endpoints HTTP
📊 Recursos MCP
weather://current
Recurso para acessar dados climáticos atuais.
weather://forecast
Recurso para acessar previsões do tempo.
🐳 Deploy no Azure Kubernetes Service (AKS)
Pré-requisitos
Azure CLI instalado e configurado
kubectl instalado
Docker instalado
Variáveis de ambiente configuradas
Deploy automatizado
Deploy manual
Limpeza de recursos
📝 Exemplo de Resposta
Clima Atual
🔧 Configuração para Claude Desktop
Adicione ao arquivo de configuração do Claude:
📁 Estrutura do Projeto
🚨 Limitações da API
Plano Gratuito: 1000 chamadas/mês, 60 chamadas/minuto
Dados históricos: Limitados no plano gratuito
Resolução: Dados atualizados a cada 10 minutos
🐛 Troubleshooting
Problemas comuns
Erro de API Key
# Verifique se a variável está configurada echo $OPENWEATHERMAP_API_KEYErro de conectividade
# Teste a conectividade com a API curl "https://api.openweathermap.org/data/2.5/weather?q=London&appid=SUA_API_KEY"Problema com Docker
# Limpar containers e imagens docker system prune -aProblema com Kubernetes
# Verificar logs dos pods kubectl logs -f -n mcp-weather deployment/weather-mcp # Verificar eventos kubectl get events -n mcp-weather
📈 Monitoramento
Métricas disponíveis
Health check:
/healthReadiness:
/readyMétricas:
/metricsStatus:
/status
Logs
🤝 Contribuição
Fork o projeto
Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature)Commit suas mudanças (
git commit -m 'Add some AmazingFeature')Push para a branch (
git push origin feature/AmazingFeature)Abra um Pull Request
📄 Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
🙏 Agradecimentos
OpenWeatherMap pela API de dados climáticos
Model Context Protocol pela especificação
Azure Kubernetes Service pela plataforma
⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!