Skip to main content
Glama

get_currents

Retrieve currents data for a specific station, specifying date range, time zone, and output format. Use this tool to access precise water current information in json, xml, or csv formats.

Instructions

Get currents data for a station

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
begin_dateNoStart date (YYYYMMDD or MM/DD/YYYY)
binNoBin number
dateNoDate to retrieve data for ("today", "latest", "recent", or specific date)
end_dateNoEnd date (YYYYMMDD or MM/DD/YYYY)
formatNoOutput format (json, xml, csv)
rangeNoNumber of hours to retrieve data for
stationYesStation ID
time_zoneNoTime zone (gmt, lst, lst_ldt)
unitsNoUnits to use ("english" or "metric")

Implementation Reference

  • Core handler function that fetches currents data from NOAA API by setting product to 'currents' and calling the generic fetchDataApi method.
    async getCurrents(params: Record<string, any>): Promise<any> { return this.fetchDataApi({ ...params, product: 'currents' }); }
  • Zod schema defining input parameters for the get_currents tool, including station, date parameters, bin, units, etc., with refinement for date requirements.
    export const GetCurrentsSchema = z.object({ station: StationSchema, date: DateSchema, begin_date: BeginDateSchema, end_date: EndDateSchema, range: RangeSchema, bin: BinSchema, units: UnitsSchema, time_zone: TimeZoneSchema, format: FormatSchema, }).refine( data => (data.date || (data.begin_date && data.end_date) || (data.begin_date && data.range) || (data.end_date && data.range) || data.range), { message: "You must provide either 'date', 'begin_date' and 'end_date', 'begin_date' and 'range', 'end_date' and 'range', or just 'range'" } );
  • Registration of the 'get_currents' tool in the MCP server, defining name, description, schema, and handler that delegates to NoaaService.getCurrents.
    const getCurrents: MCPTool = { name: "get_currents", description: "Get currents data for a station", inputSchema: GetCurrentsSchema, handler: async (params) => { return this.noaaService.getCurrents(params); } };
  • Alternative registration of the 'get_currents' tool using FastMCP server.addTool, with inline schema and execute handler wrapping NoaaService.getCurrents and returning JSON string.
    server.addTool({ name: 'get_currents', description: 'Get currents data for a station', parameters: z.object({ station: StationSchema, date: DateSchema, begin_date: BeginDateSchema, end_date: EndDateSchema, range: RangeSchema, bin: BinSchema, units: UnitsSchema, time_zone: TimeZoneSchema, format: FormatSchema, }).refine(refineDateParams, { message: dateRefinementMessage }), execute: async (params) => { try { const result = await noaaService.getCurrents(params); return JSON.stringify(result); } catch (error) { if (error instanceof Error) { throw new Error(`Failed to get currents: ${error.message}`); } throw new Error('Failed to get currents'); } } });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RyanCardin15/NOAA-TidesAndCurrents-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server