Search published departures, read sailing details and program guidance, and calculate cruise and dining totals for a party in one cabin. The HTTP endpoints and MCP tools use the same published exports and pricing rules as our readable sailing summaries.
No API key is needed for this public information. Download the OpenAPI 3.1 specification. For travelers, start with the kosher cruise planning guide.
HTTP endpoints
| GET endpoint | Purpose | MCP tool |
|---|---|---|
/sailing-data/search.json | Search upcoming published sailings; filter dates, destination, port, line, duration and program. | search_sailings |
/sailing-data/{sailingId}.json | Sailing facts, itinerary and current verified cabin fares for the requested occupancy. | get_sailing |
/sailing-data/{sailingId}/quote.json | Party planning quotes using every guest's age at departure. | calculate_quote |
/sailing-data/policies.json | Published program and booking guidance, with source links. | get_policies |
Base URL: https://freshkosher.cruises. Development: https://fkc.tvlmgnt.com. An individual sailing is also available as /sailing-data/{sailingId}.txt.
Find an Alaska sailing
GET /sailing-data/search.json?destination=Alaska&dateFrom=2027-06-01&dateTo=2027-08-31
Optional filters: q, cruiseLine, destination, departurePort, dateFrom, dateTo, minNights, maxNights, and program. All search words must match. Use limit (default 20, maximum 50) and offset for pagination; nextOffset is null at the end. Catalog results do not verify cabin availability.
Calculate a party quote
Open a two-adult, two-child example. Replace the sailing ID with one returned by search.
GET /sailing-data/wonder-11jan2027/quote.json?ages=40,38,8,4&dining=fresh
ages is required and contains every guest's age at departure, as a comma-separated list of one to four integers. Use dining=fresh (default) or dining=cruise_only. An inclusive fare always retains its included dining; selecting cruise-only never subtracts it. Optional categoryCode selects an exact category returned by sailing details. Each option identifies the lowest verified current cabin fare in that category.
Dining uses the published age bands: 0–5, 6–12 and 13+, or the published all-ages rate. Oceania Fresh Kosher groups require every guest to be 18+. Cabin fares use the exact exported adult/child occupancy; age-specific cruise-line promotions, infant eligibility and minimum booking ages still need revalidation. Unsupported occupancy is never substituted with a different party size.
Interpreting results
- All amounts are USD.
options[].totalis the cabin fare plus the selected dining total for the entire party.cruisePerPersonis based on the requested occupancy. - Dining gratuity is calculated once on the party subtotal. The dining total follows the website's whole-dollar rounding;
dining.roundingAdjustmentmakes any difference explicit. estimateOnly: truemeans a planning estimate, not a reservation, hold or guaranteed final booking price. Optional packages, travel extras and charges not expressly included are additional.sourceUpdated,validThrough,retrievedAtand source URLs distinguish source freshness, expiry and retrieval time. Retrieval does not refresh old inventory. Expired source evidence is suppressed.status: availablemeans the requested planning quote can be calculated from current evidence.staleandunavailabledo not establish sold-out status.dining_waitlist,fresh_dining_not_offeredanddining_rates_unavailablehave no combined Fresh Kosher total. An available cabin never guarantees dining space.category_unavailablemeans the requested category has no verified current fare.- HTTP 200 can contain one of these business statuses. HTTP 400 is invalid input; 404 is an unknown or unpublished sailing; 422 is an unsupported party; 429 asks you to retry after
Retry-After; 503 means the public source could not be read.
Connect an MCP client
Server URL: https://freshkosher.cruises/mcp. Development: https://fkc.tvlmgnt.com/mcp. Choose Streamable HTTP and no authentication for this public research service.
The four tools above share the HTTP API's schemas and business logic. Results contain both structuredContent and serialized JSON in a text block. Invalid arguments and source failures return isError: true; inspect the business status inside a successful result before quoting prices.
Supported revisions: 2026-07-28 (per-request metadata and server/discover), plus 2025-11-25, 2025-06-18 and 2025-03-26 (legacy initialization). The service uses stateless JSON responses, without subscription streams or session IDs. GET and DELETE return 405.
Legacy initialization example
POST /mcp
Content-Type: application/json
Accept: application/json, text/event-stream
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"travel-assistant","version":"1.0"}}}
After initialization, send notifications/initialized, then tools/list and tools/call, with the negotiated MCP-Protocol-Version header. No session header is needed.
Current MCP discovery example
POST /mcp
Content-Type: application/json
Accept: application/json, text/event-stream
MCP-Protocol-Version: 2026-07-28
Mcp-Method: server/discover
{"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"travel-assistant","version":"1.0"},"io.modelcontextprotocol/clientCapabilities":{}}}}
Current clients send this metadata on every request, with Mcp-Method matching the method. Tool calls also send Mcp-Name matching the tool name. Browser clients must use an allowed site or localhost origin; server clients may omit Origin. These protocol checks do not grant access to any private information.
Scope and request limits
This service reads the published export only. It provides no booking lookup, customer information, provider refresh, cabin hold, payment or reservation action. Do not send names, booking numbers, contact details or credentials.
Each worker instance applies a best-effort limit per client IP: a burst of 60 requests, replenishing at 180 requests per minute. Request bodies are limited to 16 KiB, and upstream reads time out after 10 seconds. Respect 429 responses; cache stable catalog facts locally while observing price expiry. These are application limits, not a global service quota.
General guidance comes from the planning guide. Read the booking terms and each sailing's conditions before making a reservation.