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:

  1. Acesse a Página de Releases: Vá para https://github.com/gbrigandi/mcp-server-openmeteo/releases

  2. Escolha Sua Versão: Clique na versão mais recente (ou na versão específica desejada)

  3. 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
  4. 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:

  1. Salve o arquivo
  2. Reinicie o Claude Desktop
  3. 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-DD
  • end_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:

  1. Verifique os problemas existentes no repositório
  2. Crie um novo problema (issue) com informações detalhadas sobre o problema
  3. Inclua logs relevantes e detalhes de configuração
  4. 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