NWS Weather

Dados do Serviço Nacional de Meteorologia dos EUA para agentes: alertas ativos por código de estado de duas letras e previsões de cinco períodos por latitude/longitude. A descoberta é gratuita; cada chamada é paga em USDC na Base via x402. Apenas locais nos EUA.

Servidor MCP hospedado

npx add-mcp 'https://agent-evidence-api.thx93.workers.dev/weather/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Um Servidor MCP de Clima Simples escrito em TypeScript

CI M8ven Score

Um servidor mínimo de Model Context Protocol que expõe dados meteorológicos dos EUA da National Weather Service API como duas ferramentas somente leitura.

A API do NWS é gratuita, sem chave e exclusiva dos EUA, então este servidor não precisa de credenciais nem de conta para funcionar.

FerramentaEntradaRetorno
get-alertsstate — código de duas letras, ex.: CAAlertas meteorológicos ativos para aquele estado
get-forecastlatitude, longitudeOs próximos cinco períodos de previsão para aquele ponto

Ambas as ferramentas são anotadas como readOnlyHint: true e destructiveHint: false, então um host que respeita anotações de ferramentas pode invocá-las sem perguntar antes. Ambas acessam api.weather.gov e são marcadas como openWorldHint: true por esse motivo.

Use hospedado, pago por chamada

Executá-lo você mesmo não custa nada. Há também uma versão hospedada, paga por chamada em USDC na Base via x402, para agentes que preferem não carregar um processo Node e uma camada de dados:

https://agent-evidence-api.thx93.workers.dev/weather/mcp

Ela serve as mesmas duas ferramentas, com os mesmos esquemas de saída e os mesmos fallbacks de null, além de uma ferramenta health gratuita e tools/list gratuitos para que o serviço possa ser descoberto e testado antes de pagar. A descoberta é gratuita; uma chamada tools/call para get-alerts ou get-forecast retorna 402 com o preço. Ambas são declaradas somente leitura, então um host que respeita anotações não perguntará duas vezes.

O server.json neste repositório anuncia esse remoto, então um cliente MCP pode instalá-lo pelo nome do registro em vez de clonar qualquer coisa.

Pré-requisitos

  • Node.js 24+
  • npm

Compilar, testar e executar

npm install
npm test          # builds, then runs the suite
npm run build     # compile only
node build/index.js

A suíte executa o servidor real via InMemoryTransport com a API do NWS simulada, então npm test não toca em rede e não precisa de credenciais. Ela cobre a descoberta de ferramentas e anotações, os caminhos de dados de get-alerts e get-forecast, os fallbacks para campos que o NWS envia como null, o contrato de falha e a validação de entrada.

Executar node build/index.js fala o protocolo MCP via stdio: ele imprime para stderr e aguarda um cliente em stdin, então é feito para ser iniciado por um host em vez de manualmente.

Adicionando a um cliente

A maioria dos hosts MCP usa o mesmo formato de três linhas:

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-weather-server/build/index.js"]
    }
  }
}

Ou, uma vez que o pacote seja publicado no npm:

{
  "mcpServers": {
    "weather": { "command": "npx", "args": ["-y", "@thx93/mcp-weather-server"] }
  }
}

Ou direto do repositório, sem precisar de conta de registro:

npm install github:Thx93/mcp-weather-server

Esse caminho funciona porque prepare compila o servidor durante a instalação; build/ não é versionado, então sem ele o bin apontaria para um arquivo que não existe. Foi verificado de ponta a ponta — instalar do GitHub, depois falar MCP com o resultado, e ambas as ferramentas listam com esquemas de saída de objeto.

Verificado contra a fonte

As ferramentas retornam os próprios dados do National Weather Service, então a correção é verificável em vez de presumida. Em 2026-10-19, api.weather.gov relatou um alerta ativo para TX e uma chamada paga ao get-alerts hospedado retornou exatamente um — Event: Flood Advisory — para o mesmo estado.

Isso importa mais do que parece: o serviço de evidência irmão carrega uma lacuna de confiabilidade documentada em seu veredito (veja seu docs/evidence-quality.md), enquanto estas ferramentas não têm julgamento inferido para errar. Elas buscam e remodelam; os valores são do NWS.

Comportamento que vale a pena conhecer

Falhas são resultados de ferramentas, não erros de protocolo. Uma solicitação que o NWS não pode responder — uma localização fora dos EUA, uma indisponibilidade, um tempo limite — retorna como { isError: true, content: [{ type: "text", text: "<what failed>" }] }. Esse é o contrato MCP para "esta chamada foi bem formada e o trabalho falhou", distinto de um erro JSON-RPC, que significa que a própria chamada estava quebrada. Um cliente pode mostrar o texto a um usuário e tentar novamente.

O NWS demora para desistir e nós não. Cada solicitação carrega um tempo limite de 10 segundos, então um upstream travado aparece como uma chamada de ferramenta falha em vez de uma pendurada.

Campos ausentes têm fallback em vez de imprimir null. O NWS retorna null para campos que não possui. Um nome de evento ausente é renderizado como Unknown, uma temperatura ausente como Unknown — nunca a string literal null.

get-forecast retorna no máximo cinco períodos. Suficiente para responder "como está o clima", curto o bastante para uma janela de contexto.

Conteúdo estruturado

Ambas as ferramentas declaram um outputSchema e retornam structuredContent, e ambos os esquemas são objetos: get-forecast retorna { latitude, longitude, periods }, get-alerts retorna { alerts: [...] }.

get-alerts declarava anteriormente um array de nível superior, o que a revisão de protocolo 2026-07-28 permite. Foi alterado porque um cliente no MCP SDK amplamente implantado rejeita toda a resposta tools/list quando encontra um esquema de array — invalid_value: expected "object" — então tal cliente não consegue se conectar ao servidor de forma alguma. Envolver o array em um objeto é o que torna essas ferramentas acessíveis a partir de clientes comuns; o resumo textual que um modelo lê permanece inalterado.

Proveniência

Iniciado a partir do tutorial Build an MCP server e depois foi além: esquemas de saída tipados, anotações de ferramentas somente leitura, um fetch limitado com um contrato de falha explícito e uma suíte de testes. Licenciado sob ISC.