Mt Washington Observatory Weather
Datos meteorológicos del observatorio meteorológico Mt Washington en Nuevo Hampshire.
GitHubPrueba este MCPPatrocinado
Documentación
Servidor MCP del Observatorio Mt Washington
Un servidor MCP (Protocolo de Contexto de Modelo) que expone datos meteorológicos en tiempo real del Observatorio Mt Washington como recursos, construido con FastMCP.
Fuentes de Datos
| Endpoint | Contenido |
|---|---|
/uploads/json/weather.JSON | Condiciones actuales de la cumbre (temperatura, viento, ráfagas, dirección, METAR) |
/uploads/json/outlook.JSON | Paquete completo de pronóstico (perspectiva de cumbre/valle, estadísticas de 24h, almanaque) |
/uploads/pdf/forms/{year}/{month:02d}.pdf | Formularios mensuales F6 en PDF (2005–presente) |
Inicio Rápido
Requisitos previos
- Python 3.14+
- uv
Instalación
git clone <repo>
cd mt_washington_obs_mcp
uv sync
Ejecución
uv run mtw-obs-mcp
O de manera equivalente:
uv run python -m mt_washington_mcp
El servidor se inicia en el transporte stdio (estándar para MCP). Conéctalo a un cliente MCP como Claude Desktop o opencode.
Recursos
Todos los datos están disponibles como recursos MCP:
| URI | Devuelve | Descripción |
|---|---|---|
weather://current | JSON | Temperatura actual de la cumbre, viento, ráfagas, dirección, METAR |
weather://outlook/current | JSON | Metadatos completos de la perspectiva (excluye subsecciones con URIs dedicados) |
weather://outlook/summit | JSON | Pronóstico de Cumbres Altas con discusión de 4 períodos |
weather://outlook/valley | JSON | Pronóstico del Valle con discusión de 4 períodos |
weather://outlook/statistics | JSON | Últimas 24h: temp máx/mín, ráfaga máxima, precipitación, nevadas |
weather://outlook/almanac | JSON | Récords, promedios mensuales, amanecer/atardecer |
f6://current | PDF (bytes) | Formulario F6 del mes actual |
f6://{year}/{month} | PDF (bytes) | Formulario F6 para un año/mes específico |
Herramientas
| Herramienta | Descripción |
|---|---|
extract_f6_csv(year?, month?) | Extraer tabla de datos diarios del PDF F6 como CSV |
list_f6_forms() | Listar todas las combinaciones de año/mes disponibles como CSV |
Desarrollo
Pruebas
uv run pytest
Todas las pruebas usan instantáneas de fixtures — sin llamadas de red.
Lint y verificación de tipos
uv run ruff check .
uv run mypy src/mt_washington_mcp/
O usa el Taskfile.yml:
task check # test + lint + typecheck
task test
task lint
task typecheck
Estructura del proyecto
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