Servidor MCP de mareas y corrientes de la NOAA
Este es un servidor MCP (Protocolo de contexto de modelo) que proporciona herramientas para interactuar con la API de mareas y corrientes de la NOAA utilizando el marco FastMCP.
Características
Recuperación de datos de nivel de agua (en tiempo real e históricos)
Predicciones de mareas (altas/bajas o basadas en intervalos)
Datos actuales (en tiempo real e históricos)
Predicciones actuales
Recuperación de metadatos de la estación
Viento, temperatura del aire, temperatura del agua y otros datos meteorológicos
Información sobre las fases lunares (pasadas, presentes y futuras)
Datos de salida/puesta del sol y posición (pasado, presente y futuro)
Related MCP server: Node.js MCP Weather Server
Prerrequisitos
Node.js (v18 o superior)
npm o hilo
Configuración
Instalación mediante herrería
Para instalar NOAA Tides and Currents para Claude Desktop automáticamente a través de Smithery :
Instalación manual
Clonar este repositorio
Instalar dependencias
Cree un archivo
.envbasado en el archivo.env.example:
Construir el código TypeScript
Iniciar el servidor
Uso
Este servidor MCP se puede utilizar con cualquier host MCP como Claude Desktop, lo que le permite utilizar la API de mareas y corrientes de la NOAA a través del protocolo MCP.
También puedes probarlo directamente usando la herramienta de línea de comandos fastmcp :
O bien, puede utilizar el Inspector MCP:
Herramientas disponibles
Niveles de agua
get_water_levels- Obtener datos del nivel de agua para una estaciónParámetros:
station(cadena) - ID de la estacióndate(cadena, opcional): fecha para la que se recuperarán los datos ("hoy", "más reciente", "reciente" o fecha específica)begin_date(cadena, opcional) - Fecha de inicio (AAAAMMDD o MM/DD/AAAA)end_date(cadena, opcional) - Fecha de finalización (AAAAMMDD o MM/DD/AAAA)range(número, opcional) - Número de horas para recuperar datosdatum(cadena, opcional) - Dato a utilizar (MLLW, MSL, etc.)units(cadena, opcional) - Unidades a utilizar ("inglés" o "métrico")time_zone(cadena, opcional) - Zona horaria (gmt, lst, lst_ldt)format(cadena, opcional) - Formato de salida (json, xml, csv)
Predicciones de mareas
get_tide_predictions- Obtener datos de predicción de mareasParámetros:
station(cadena) - ID de la estaciónbegin_date(cadena) - Fecha de inicio (AAAAMMDD o MM/DD/AAAA)end_date(cadena) - Fecha de finalización (AAAAMMDD o MM/DD/AAAA)datum(cadena, opcional) - Dato a utilizar (MLLW, MSL, etc.)units(cadena, opcional) - Unidades a utilizar ("inglés" o "métrico")time_zone(cadena, opcional) - Zona horaria (gmt, lst, lst_ldt)interval(cadena, opcional) - Intervalo (hilo, hl, h o un número para minutos)format(cadena, opcional) - Formato de salida (json, xml, csv)
Corrientes
get_currents- Obtener datos de corrientes para una estaciónParámetros:
station(cadena) - ID de la estacióndate(cadena, opcional): fecha para la que se recuperarán los datos ("hoy", "más reciente", "reciente" o fecha específica)begin_date(cadena, opcional) - Fecha de inicio (AAAAMMDD o MM/DD/AAAA)end_date(cadena, opcional) - Fecha de finalización (AAAAMMDD o MM/DD/AAAA)bin(número, opcional) - Número de contenedorunits(cadena, opcional) - Unidades a utilizar ("inglés" o "métrico")time_zone(cadena, opcional) - Zona horaria (gmt, lst, lst_ldt)format(cadena, opcional) - Formato de salida (json, xml, csv)
Predicciones actuales
get_current_predictions- Obtener predicciones actualesParámetros:
station(cadena) - ID de la estacióndate(cadena, opcional): fecha para la que se recuperarán los datos ("hoy", "más reciente", "reciente" o fecha específica)begin_date(cadena, opcional) - Fecha de inicio (AAAAMMDD o MM/DD/AAAA)end_date(cadena, opcional) - Fecha de finalización (AAAAMMDD o MM/DD/AAAA)bin(número, opcional) - Número de contenedorinterval(cadena, opcional) - Intervalo (MAX_SLACK o un número para minutos)vel_type(cadena, opcional) - Tipo de velocidad (speed_dir o predeterminado)units(cadena, opcional) - Unidades a utilizar ("inglés" o "métrico")time_zone(cadena, opcional) - Zona horaria (gmt, lst, lst_ldt)format(cadena, opcional) - Formato de salida (json, xml, csv)
Datos meteorológicos
get_meteorological_data- Obtener datos meteorológicosParámetros:
station(cadena) - ID de la estaciónproduct(cadena) - Producto (temperatura del aire, viento, etc.)date(cadena, opcional): fecha para la que se recuperarán los datos ("hoy", "más reciente", "reciente" o fecha específica)begin_date(cadena, opcional) - Fecha de inicio (AAAAMMDD o MM/DD/AAAA)end_date(cadena, opcional) - Fecha de finalización (AAAAMMDD o MM/DD/AAAA)units(cadena, opcional) - Unidades a utilizar ("inglés" o "métrico")time_zone(cadena, opcional) - Zona horaria (gmt, lst, lst_ldt)format(cadena, opcional) - Formato de salida (json, xml, csv)
Información de la estación
get_stations- Obtener lista de estacionesParámetros:
type(cadena, opcional) - Tipo de estación (niveles de agua, corrientes, etc.)units(cadena, opcional) - Unidades a utilizar ("inglés" o "métrico")format(cadena, opcional) - Formato de salida (json, xml)
get_station_details- Obtener información detallada sobre una estaciónParámetros:
station(cadena) - ID de la estaciónunits(cadena, opcional) - Unidades a utilizar ("inglés" o "métrico")format(cadena, opcional) - Formato de salida (json, xml)
Información sobre las fases lunares
get_moon_phase- Obtener información de la fase lunar para una fecha específicaParámetros:
date(cadena, opcional): Fecha para obtener la fase lunar (formato AAAA-MM-DD). El valor predeterminado es la fecha actual.latitude(número, opcional) - Latitud para cálculos específicos de la ubicaciónlongitude(número, opcional) - Longitud para cálculos específicos de la ubicaciónformat(cadena, opcional) - Formato de salida (json o texto)
get_moon_phases_range: obtiene información de las fases lunares para un rango de fechasParámetros:
start_date(cadena) - Fecha de inicio (formato AAAA-MM-DD)end_date(cadena) - Fecha de finalización (formato AAAA-MM-DD)latitude(número, opcional) - Latitud para cálculos específicos de la ubicaciónlongitude(número, opcional) - Longitud para cálculos específicos de la ubicaciónformat(cadena, opcional) - Formato de salida (json o texto)
get_next_moon_phase- Obtener las próximas ocurrencias de una fase lunar específicaParámetros:
phase(cadena) - Fase lunar a encontrar (Luna nueva, Cuarto creciente, Luna llena, Cuarto menguante)date(cadena, opcional): Fecha de inicio (formato AAAA-MM-DD). El valor predeterminado es la fecha actual.count(número, opcional): Número de ocurrencias a devolver. El valor predeterminado es 1.format(cadena, opcional) - Formato de salida (json o texto)
Información sobre la salida y puesta del sol
get_sun_times: obtiene la hora de salida y puesta del sol y otros eventos solares para una fecha y ubicación específicasParámetros:
date(cadena, opcional): Fecha para obtener la hora del sol (formato AAAA-MM-DD). El valor predeterminado es la fecha actual.latitude(número) - Latitud para cálculos específicos de la ubicaciónlongitude(número) - Longitud para cálculos específicos de la ubicaciónformat(cadena, opcional) - Formato de salida (json o texto)timezone(cadena, opcional): Zona horaria de los resultados. El valor predeterminado es UTC.
get_sun_times_range: obtiene las horas de salida y puesta del sol y otros eventos solares para un rango de fechas y una ubicaciónParámetros:
start_date(cadena) - Fecha de inicio (formato AAAA-MM-DD)end_date(cadena) - Fecha de finalización (formato AAAA-MM-DD)latitude(número) - Latitud para cálculos específicos de la ubicaciónlongitude(número) - Longitud para cálculos específicos de la ubicaciónformat(cadena, opcional) - Formato de salida (json o texto)timezone(cadena, opcional): Zona horaria de los resultados. El valor predeterminado es UTC.
get_sun_position: obtiene información sobre la posición del sol para una fecha, hora y ubicación específicasParámetros:
date(cadena, opcional): Fecha para obtener la posición del sol (formato AAAA-MM-DD). El valor predeterminado es la fecha actual.time(cadena, opcional): Hora para obtener la posición del sol (formato HH:MM:SS). El valor predeterminado es la hora actual.latitude(número) - Latitud para cálculos específicos de la ubicaciónlongitude(número) - Longitud para cálculos específicos de la ubicaciónformat(cadena, opcional) - Formato de salida (json o texto)
get_next_sun_event- Obtener las próximas ocurrencias de un evento solar específicoParámetros:
event(cadena) - Evento solar a buscar (amanecer, atardecer, amanecer, anochecer, mediodía solar, etc.)date(cadena, opcional): Fecha de inicio (formato AAAA-MM-DD). El valor predeterminado es la fecha actual.latitude(número) - Latitud para cálculos específicos de la ubicaciónlongitude(número) - Longitud para cálculos específicos de la ubicacióncount(número, opcional): Número de ocurrencias a devolver. El valor predeterminado es 1.format(cadena, opcional) - Formato de salida (json o texto)timezone(cadena, opcional): Zona horaria de los resultados. El valor predeterminado es UTC.
Documentación de la API
La documentación de la API de mareas y corrientes de la NOAA se puede encontrar en:
API de datos CO-OPS: https://api.tidesandcurrents.noaa.gov/api/prod/
API de metadatos de CO-OPS: https://api.tidesandcurrents.noaa.gov/mdapi/prod/
API de producto derivado de CO-OPS: https://api.tidesandcurrents.noaa.gov/dpapi/prod/
Acerca de FastMCP
FastMCP es un framework TypeScript para crear servidores MCP capaces de gestionar sesiones de cliente. Ofrece:
Herramienta sencilla, recurso, definición rápida
Sesiones
Contenido de la imagen
Explotación florestal
Manejo de errores
SSE
Notificaciones de progreso
Eventos de servidor tipificados
Y más
Obtenga más información en: https://github.com/punkpeye/fastmcp
Licencia
Instituto Tecnológico de Massachusetts (MIT)