OpenMeteo MCP Server
Acesse dados meteorológicos globais e previsões usando a API OpenMeteo, incluindo condições atuais, dados históricos e busca por localização.
Documentação
OpenMeteo MCP Server
Um servidor Model Context Protocol (MCP) que fornece acesso a dados meteorológicos e previsões através da API OpenMeteo. Este servidor permite que assistentes de IA obtenham condições meteorológicas atuais, previsões, dados meteorológicos históricos e pesquisem locais em todo o mundo.
Recursos
- Clima Atual: Obtenha condições meteorológicas em tempo real, incluindo temperatura, umidade, precipitação, vento e pressão atmosférica
- Previsões do Tempo: Recupere previsões meteorológicas detalhadas para até 16 dias
- Clima Histórico: Acesse dados meteorológicos históricos para análise e comparação
- Busca de Locais: Encontre coordenadas e detalhes de cidades e locais em todo o mundo
- API Gratuita: Usa a API gratuita do OpenMeteo sem necessidade de chave de API
- Dados Abrangentes: Inclui temperatura, precipitação, vento, pressão, cobertura de nuvens e descrições meteorológicas
- Formatação Inteligente: Relatórios meteorológicos legíveis com emojis e organização clara
Instalação
Opção 1: Baixar Binário Pré-compilado (Recomendado)
Baixe a versão mais recente do GitHub:
-
Acesse a Página de Releases: Vá para https://github.com/gbrigandi/mcp-server-openmeteo/releases
-
Escolha Sua Versão: Clique na versão mais recente (ou na versão específica desejada)
-
Baixe para Sua Plataforma: Na seção "Assets", baixe o binário apropriado para seu sistema:
- macOS (Apple Silicon):
mcp-server-openmeteo-aarch64-apple-darwin - macOS (Intel):
mcp-server-openmeteo-x86_64-apple-darwin - Linux (64-bit):
mcp-server-openmeteo-x86_64-unknown-linux-gnu - Windows (64-bit):
mcp-server-openmeteo-x86_64-pc-windows-msvc.exe
- macOS (Apple Silicon):
-
Torne-o Executável (somente macOS/Linux):
chmod +x mcp-server-openmeteo
Opção 2: Compilando a partir do Código Fonte
Se você preferir compilar a partir do código fonte ou precisar da versão de desenvolvimento mais recente:
Pré-requisitos
- Rust 1.87 ou mais recente
- Gerenciador de pacotes Cargo
Etapas de Compilação
git clone https://github.com/gbrigandi/mcp-server-openmeteo
cd mcp-server-openmeteo
cargo build --release
O binário compilado estará disponível em target/release/mcp-server-openmeteo.
Uso
Uso Básico
Execute o servidor com as configurações padrão:
./target/release/mcp-server-openmeteo
Variáveis de Ambiente
Você pode controlar o nível de log usando a variável de ambiente RUST_LOG:
# Enable debug logging
RUST_LOG=debug ./target/release/mcp-server-openmeteo
# Enable info logging (default)
RUST_LOG=info ./target/release/mcp-server-openmeteo
# Disable most logging
RUST_LOG=warn ./target/release/mcp-server-openmeteo
Configuração do Cliente MCP
Claude Desktop
Adicione este servidor ao arquivo de configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"openmeteo": {
"command": "/path/to/mcp-server-openmeteo"
}
}
}
Após adicionar a configuração:
- Salve o arquivo
- Reinicie o Claude Desktop
- As ferramentas meteorológicas do OpenMeteo estarão disponíveis em suas conversas
Ferramentas Disponíveis
1. get_current_weather
Obtenha as condições meteorológicas atuais para um local específico. Retorna dados meteorológicos em tempo real, incluindo temperatura, umidade, precipitação, vento e condições atmosféricas.
Parâmetros:
latitude(obrigatório): Coordenada de latitude (-90 a 90)longitude(obrigatório): Coordenada de longitude (-180 a 180)
Retorna:
- Temperatura atual e temperatura de "sensação térmica"
- Percentual de umidade relativa
- Quantidade de precipitação
- Velocidade do vento, direção e rajadas
- Pressão atmosférica (nível médio do mar)
- Percentual de cobertura de nuvens
- Descrição da condição meteorológica
- Indicador de dia/noite
Exemplo:
{
"latitude": 40.7128,
"longitude": -74.0060
}
2. get_weather_forecast
Obtenha a previsão do tempo para um local específico. Retorna dados detalhados de previsão para até 16 dias, incluindo temperatura diária, precipitação, vento e condições meteorológicas.
Parâmetros:
latitude(obrigatório): Coordenada de latitude (-90 a 90)longitude(obrigatório): Coordenada de longitude (-180 a 180)days(opcional): Número de dias de previsão (1-16, padrão: 7)
Retorna:
- Temperaturas máximas e mínimas diárias
- Descrições das condições meteorológicas
- Quantidades de precipitação
- Velocidades máximas do vento
- Horários do nascer e pôr do sol
- Índice UV e duração da luz do dia
Exemplo:
{
"latitude": 40.7128,
"longitude": -74.0060,
"days": 5
}
3. get_historical_weather
Obtenha dados meteorológicos históricos para um local e intervalo de datas específicos. Retorna estatísticas meteorológicas diárias, incluindo temperatura, precipitação e outros dados meteorológicos para análise.
Parâmetros:
latitude(obrigatório): Coordenada de latitude (-90 a 90)longitude(obrigatório): Coordenada de longitude (-180 a 180)start_date(obrigatório): Data de início no formato YYYY-MM-DDend_date(obrigatório): Data de término no formato YYYY-MM-DD
Retorna:
- Estatísticas diárias de temperatura (mín, máx, média)
- Totais e médias de precipitação
- Dados de velocidade e direção do vento
- Estatísticas resumidas para todo o período
- Amostra de dados diários para os primeiros 5 dias
Exemplo:
{
"latitude": 40.7128,
"longitude": -74.0060,
"start_date": "2024-01-01",
"end_date": "2024-01-31"
}
4. search_locations
Pesquise locais por nome para obter suas coordenadas e detalhes. Use o formato "cidade, país", onde o país é opcional (ex.: "Paris, França" ou apenas "Tóquio"). Retorna uma lista de locais correspondentes com coordenadas e outras informações geográficas.
Parâmetros:
query(obrigatório): Consulta de busca de local no formato "cidade, país" (país é opcional)- Exemplos: "Paris, França", "Tóquio", "Nova York, EUA", "Londres"
limit(opcional): Número máximo de resultados (1-100, padrão: 10)
Retorna:
- Nome da cidade/local e país
- Região administrativa (estado/província)
- Coordenadas precisas (latitude/longitude)
- Informações de fuso horário
- Dados populacionais (quando disponíveis)
Exemplo:
{
"query": "Paris, France",
"limit": 5
}
Fonte de Dados
Todos os dados meteorológicos são fornecidos pela OpenMeteo, uma API meteorológica gratuita que oferece:
- Dados de Alta Qualidade: Baseados em múltiplos modelos meteorológicos e observações
- Cobertura Global: Disponibilidade de dados meteorológicos em todo o mundo
- Sem Necessidade de Chave de API: Acesso gratuito sem registro
- Alta Disponibilidade: Serviço confiável com boa disponibilidade
- Código Aberto: Baseado em modelos meteorológicos de código aberto
- Atualizações em Tempo Real: Condições atuais atualizadas regularmente
- Arquivo Histórico: Acesso a dados meteorológicos históricos
Desempenho
- Tempo Limite de Requisição: Tempo limite de 30 segundos para todas as requisições de API
- Requisições Eficientes: Chamadas de API otimizadas com apenas os parâmetros necessários
- Recuperação de Erros: Tratamento adequado de falhas temporárias da API
- Validação de Coordenadas: Validação de entrada para evitar requisições de API inválidas
Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request. Áreas para contribuição:
- Parâmetros meteorológicos adicionais
- Opções aprimoradas de formatação
- Otimizações de desempenho
- Validação adicional
- Melhorias na documentação
Suporte
Para problemas e dúvidas:
- Verifique os problemas existentes no repositório
- Crie um novo problema (issue) com informações detalhadas sobre o problema
- Inclua logs relevantes e detalhes de configuração
- Forneça coordenadas e parâmetros de exemplo que causam problemas
Registro de Alterações
Versão 0.1.0
- Lançamento inicial com funcionalidade completa do servidor MCP
- Condições meteorológicas atuais com dados abrangentes
- Previsões meteorológicas para até 16 dias
- Dados meteorológicos históricos com resumos estatísticos
- Busca de locais com geocodificação