UNPKG

@ryancardin/noaa-tides-currents-mcp-server

Version:

MCP Server that interfaces with NOAA Tides and Currents API using FastMCP

61 lines (60 loc) 2.16 kB
import { SunTimesParams, SunTimesRangeParams, SunPositionParams, NextSunEventParams } from '../interfaces/sun.js'; import { SunTimesInfo, SunPositionInfo } from '../types/sun.js'; /** * Service for sun calculations */ export declare class SunService { /** * Get sun times for a specific date and location * @param params Parameters for the request * @returns Sun times information */ getSunTimes(params: SunTimesParams): SunTimesInfo; /** * Get sun times for a date range * @param params Parameters for the request * @returns Array of sun times information */ getSunTimesRange(params: SunTimesRangeParams): SunTimesInfo[]; /** * Get sun position for a specific date, time, and location * @param params Parameters for the request * @returns Sun position information */ getSunPosition(params: SunPositionParams): SunPositionInfo; /** * Get the next occurrence(s) of a specific sun event * @param params Parameters for the request * @returns Array of dates for the next occurrences of the specified event */ getNextSunEvent(params: NextSunEventParams): { date: string; time: string; event: string; }[]; /** * Calculate approximate equatorial coordinates (right ascension and declination) * from horizontal coordinates (azimuth and altitude) * Note: This is a simplified calculation and may not be precise * @param date Date of observation * @param azimuth Azimuth in radians * @param altitude Altitude in radians * @param latitude Observer's latitude * @param longitude Observer's longitude * @returns Approximate equatorial coordinates */ private calculateEquatorialCoordinates; /** * Calculate approximate local sidereal time * @param date Date of observation * @param longitude Observer's longitude * @returns Local sidereal time in radians */ private calculateLocalSiderealTime; /** * Calculate Julian day from date * @param date Date to convert * @returns Julian day */ private calculateJulianDay; }