# Cruise Itinerary

> Cruise sailings, itineraries, weekly fare history, port capacity and the Cruise Price Index.

- name: com.cruise-itinerary/mcp
- version: 1.0.0
- connection class: R2 (oauth_consent_once)
- trust: 95/100
- quality: 100/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.cruise-itinerary%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.cruise-itinerary%2Fmcp/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "cruise-itinerary": {
      "type": "http",
      "url": "https://cruise-itinerary.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 97
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-92% +updated-17d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 100/100 (strong)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 100 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- pass `auth.cimd`: Client ID Metadata Documents supported
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,781 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 1,781 tokens to load them all
- tool set hash: 2633d719c46c8d7118061ffcfef7ac3c
- badge: [![protogrid quality](https://protogrid.dev/badge/com.cruise-itinerary/mcp.svg)](https://protogrid.dev/servers/com.cruise-itinerary/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://cruise-itinerary.com/mcp (streamable-http, auth oauth2, reachable true, uptime30d 0.9206349)

## Packages

_none_

## Tools (6)

- `cruise_price_index`: The weekly Cruise Price Index: how cruise fares moved week on week, matching the same sailings across loads (100 = 2026-09-06), with the share of fares cut and raised and the average per-night fare. view "latest" (default, every plan) gives the last 12 weeks for all lines and the 8 largest lines. view "series" (Business plan or above) gives the full series for one line, cabin and segment (booking window or sail quarter).
- `get_itinerary`: Day-by-day itinerary. With sailing_id (an integer sailing id): every dated day with its port, kind (embark, call, scenic, sea, disembark) and day_confidence, plus the sailing's latest fares. With cruise_id (a cruise slug, the route shared by its sailings): the ordered stop list, numbered by day where the line publishes its itinerary (itinerary_source "official") and without day numbers otherwise ("supplier"). Give exactly one of the two. Days marked "estimated" were placed by distance and can be off by a day. Needs the Developer plan or above.
- `get_price_history`: Every weekly fare snapshot recorded for one sailing, oldest first (captured each Monday since 2026-09-06), per cabin class in whole USD. Shows whether and when a fare went up or down. Snapshots, not live prices; a null fare means not offered or sold out. Needs the Business plan or above.
- `port_month_capacity`: Cruise traffic at one port, month by month: ship-days in port, distinct ships, and total berths (ship capacity summed over every ship-day; a ship in port two days counts twice), with embark, disembark and turnaround ship-days and how many ship-days are estimated. Monthly totals only; there are deliberately no per-day figures. Berths are capacity, not passengers. Ids are canonical slugs. Needs the Business plan or above.
- `resolve_entity`: Turn free text (a port, ship or cruise line name, misspelt or with old names and aliases) into the canonical ids every other tool takes. Returns up to five candidates, best first, with a confidence from 0 to 1 (1.0 exact name; below about 0.6 is a weak match). Available on every plan.
- `search_sailings`: Find upcoming cruise sailings by ship, cruise line, port of call, departure port, region, departure dates, length and fare, with each sailing's latest weekly fares (inside, outside, balcony, suite). Ids are canonical slugs. Fares are weekly snapshots in USD, not live prices; a null fare means not offered or sold out. Coverage is strongest for North American cruise lines. TUI Cruises/Marella, AIDA, Saga, Fred. Olsen and Hapag-Lloyd are not covered. Needs the Developer plan or above.
