Mt Washington Observatory Weather
Dados meteorológicos do observatório meteorológico Mt Washington em New Hampshire.
GitHubExperimente este MCPPatrocinado
Documentação
Servidor MCP do Observatório Mt Washington
Um servidor MCP (Model Context Protocol) que expõe dados meteorológicos em tempo real do Observatório Mt Washington como recursos, construído com FastMCP.
Fontes de Dados
| Endpoint | Conteúdo |
|---|---|
/uploads/json/weather.JSON | Condições atuais do cume (temperatura, vento, rajadas, direção, METAR) |
/uploads/json/outlook.JSON | Pacote completo de previsão (perspectiva do cume/vale, estatísticas de 24h, almanaque) |
/uploads/pdf/forms/{year}/{month:02d}.pdf | Formulários mensais F6 em PDF (2005–presente) |
Início Rápido
Pré-requisitos
- Python 3.14+
- uv
Instalação
git clone <repo>
cd mt_washington_obs_mcp
uv sync
Execução
uv run mtw-obs-mcp
Ou equivalentemente:
uv run python -m mt_washington_mcp
O servidor inicia no transporte stdio (padrão para MCP). Conecte-o a um cliente MCP como Claude Desktop ou opencode.
Recursos
Todos os dados estão disponíveis como recursos MCP:
| URI | Retorna | Descrição |
|---|---|---|
weather://current | JSON | Temperatura atual do cume, vento, rajadas, direção, METAR |
weather://outlook/current | JSON | Metadados completos da perspectiva (exclui subseções com URIs dedicados) |
weather://outlook/summit | JSON | Previsão dos Cumes Mais Altos com discussão de 4 períodos |
weather://outlook/valley | JSON | Previsão do Vale com discussão de 4 períodos |
weather://outlook/statistics | JSON | Últimas 24h: temp máx/mín, rajada máxima, precipitação, queda de neve |
weather://outlook/almanac | JSON | Recordes, médias mensais, nascer/pôr do sol |
f6://current | PDF (bytes) | Formulário F6 do mês atual |
f6://{year}/{month} | PDF (bytes) | Formulário F6 para um ano/mês específico |
Ferramentas
| Ferramenta | Descrição |
|---|---|
extract_f6_csv(year?, month?) | Extrai a tabela de dados diários do PDF F6 como CSV |
list_f6_forms() | Lista todas as combinações de ano/mês disponíveis como CSV |
Desenvolvimento
Testes
uv run pytest
Todos os testes usam snapshots de fixtures — sem chamadas de rede.
Lint e verificação de tipos
uv run ruff check .
uv run mypy src/mt_washington_mcp/
Ou use o Taskfile.yml:
task check # test + lint + typecheck
task test
task lint
task typecheck
Estrutura do projeto
mt_washington_obs_mcp/
├── src/mt_washington_mcp/
│ ├── client.py # Async httpx WeatherClient
│ ├── f6.py # F6 PDF table extraction
│ ├── models.py # Pydantic models with validators
│ ├── server.py # FastMCP server + resources + tools
│ ├── __init__.py # Entry point
│ └── __main__.py # python -m support
├── tests/
│ ├── test_client.py # Client tests with httpx.MockTransport
│ ├── test_f6.py # F6 PDF extraction tests
│ ├── test_models.py # Model parsing and validation tests
│ ├── test_server.py # Resource output format tests
│ └── fixtures/ # Saved API snapshots
├── .github/workflows/
│ └── ci.yml # GitHub Actions CI
├── pyproject.toml
└── Taskfile.yml