Seatac Connection Rides MCP
This MCP server enables AI agents to retrieve live fares, plan trips, and initiate bookings for private rides between Seattle-Tacoma International Airport (SEA), Seattle, and cruise terminals. It provides tools for quoting rides, finding cruise sailings, and generating detailed day-by-day travel itineraries including hotel and activity recommendations.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://seatac.co/api/mcpWhat you can do with it
- Get live fare quotes for airport rides
- Plan day-by-day Seattle trip itineraries
- Find cruise ship schedules and pier locations
- Initiate booking links for private rides
Source and maintenance
Protocol and capabilities
- Server
- seatac-co 1.3.0
- MCP protocol
- 2025-06-18
- Tools
- 14 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
14 advertised
get_service_info — Seatac service info
Describe Seatac Connection: private, pre-booked rides between Seatac Airport and the Seattle area, plus hourly charters. Returns the service area, vehicle types with passenger and bag capacity, booking requirements, and the cancellation and refund policy. Fares are quoted per trip; use quote_ride for a live price.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}quote_ride — Quote a Seatac ride
Get the live fare for a specific Seatac Connection ride, per eligible vehicle, priced exactly as seatac.co checkout prices it. Each vehicle includes a booking_url where the customer reviews and pays. Rate limited; reuse a quote instead of re-requesting it.
{
"type": "object",
"required": [
"pickup",
"pickup_datetime",
"passengers"
],
"properties": {
"bags": {
"type": "integer",
"maximum": 12,
"minimum": 0,
"description": "Number of checked-size bags (0-12)."
},
"hours": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Set only for an hourly charter: the number of hours (1-24)."
},
"pickup": {
"type": "string",
"description": "Pickup location. Street address, hotel, or place in the Seattle area, e.g. \"Seattle-Tacoma International Airport\", \"Pier 91\", \"Hyatt Regency Bellevue\", or \"1301 5th Ave, Seattle\"."
},
"dropoff": {
"type": "string",
"description": "Drop-off location. Street address, hotel, or place in the Seattle area, e.g. \"Seattle-Tacoma International Airport\", \"Pier 91\", \"Hyatt Regency Bellevue\", or \"1301 5th Ave, Seattle\". Optional for hourly charters."
},
"passengers": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Number of passengers (1-12)."
},
"flight_number": {
"type": "string",
"description": "Optional flight number for Seatac pickups or drop-offs, e.g. AS 123."
},
"pickup_datetime": {
"type": "string",
"description": "Pickup date and time, ISO 8601. Without an offset it is read as Seattle local time (America/Los_Angeles), e.g. 2026-11-02T14:30."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}start_booking — Start a seatac.co booking
Create a prefilled seatac.co reservation link for the customer to open. They review the trip, enter contact details, and pay on seatac.co. Nothing is booked or charged by this tool.
{
"type": "object",
"required": [
"pickup"
],
"properties": {
"bags": {
"type": "integer",
"maximum": 12,
"minimum": 0,
"description": "Number of checked-size bags (0-12)."
},
"hours": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Set only for an hourly charter: the number of hours (1-24)."
},
"pickup": {
"type": "string",
"description": "Pickup location. Street address, hotel, or place in the Seattle area, e.g. \"Seattle-Tacoma International Airport\", \"Pier 91\", \"Hyatt Regency Bellevue\", or \"1301 5th Ave, Seattle\"."
},
"dropoff": {
"type": "string",
"description": "Drop-off location. Street address, hotel, or place in the Seattle area, e.g. \"Seattle-Tacoma International Airport\", \"Pier 91\", \"Hyatt Regency Bellevue\", or \"1301 5th Ave, Seattle\". Optional for hourly charters."
},
"passengers": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Number of passengers (1-12)."
},
"vehicle_slug": {
"type": "string",
"description": "Optional vehicle_slug from quote_ride or get_service_info to preselect."
},
"flight_number": {
"type": "string",
"description": "Optional flight number for Seatac pickups or drop-offs, e.g. AS 123."
},
"pickup_datetime": {
"type": "string",
"description": "Pickup date and time, ISO 8601. Without an offset it is read as Seattle local time (America/Los_Angeles), e.g. 2026-11-02T14:30. Optional."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}find_cruise_sailings — Find Seattle cruise sailings
Look up Seattle cruise sailings from the Port of Seattle schedule (2026 season and the preliminary 2027 season): which pier and terminal a ship uses on a date, and which ships sail on a day. Filter by ship (fuzzy), cruise_line, date or from/to, and pier. Each upcoming embarkation (turnaround) day includes ride_to_pier with a prefilled seatac.co booking link from Seattle-Tacoma International Airport; call quote_ride with its quote_ride_arguments plus a pickup time for the live fare. Without a date filter, only sailings from today on are returned.
{
"type": "object",
"properties": {
"to": {
"type": "string",
"format": "date",
"description": "End of a date range, YYYY-MM-DD (inclusive)."
},
"date": {
"type": "string",
"format": "date",
"description": "A single date, YYYY-MM-DD."
},
"from": {
"type": "string",
"format": "date",
"description": "Start of a date range, YYYY-MM-DD (inclusive)."
},
"pier": {
"enum": [
"66",
"91"
],
"type": "string",
"description": "Pier 66 (Bell Street) or Pier 91 (Smith Cove)."
},
"ship": {
"type": "string",
"description": "Ship name, any case; partial names work, e.g. \"Norwegian Bliss\" or \"Bliss\"."
},
"cruise_line": {
"type": "string",
"description": "Cruise line, e.g. \"Norwegian\" or \"Holland America\"."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}plan_cruise_trip — Plan a Seattle cruise trip
Build a day-by-day plan for a Seattle cruise departure, the same plan the seatac.co sailing page shows: fly into Seatac, ride to a hotel near the pier (or straight to the ship on sailing day), the ride to the terminal, and the ride home or one more night after the cruise. Each step has its booking link and cost: ride estimates from Seatac's own pricing (whole dollars before fee and tax; final price at booking), typical hotel rates, and a flight comparison link. Needs the ship and sailing date (use find_cruise_sailings first if unsure). Pass hotel_slug from hotel_options to put a hotel in the plan and the total.
{
"type": "object",
"required": [
"ship",
"sail_date"
],
"properties": {
"ship": {
"type": "string",
"description": "Ship name, any case; partial names work (\"Bliss\")."
},
"arrive": {
"enum": [
"same_day",
"day_before",
"two_days_before"
],
"type": "string",
"description": "When they fly in: same_day, day_before (default), or two_days_before."
},
"sail_date": {
"type": "string",
"format": "date",
"description": "Sailing (embarkation) date in Seattle, YYYY-MM-DD."
},
"hotel_name": {
"type": "string",
"description": "Optional name of another hotel they already booked."
},
"hotel_slug": {
"type": "string",
"description": "Optional hotel from hotel_options (a previous call) to include in the plan and total."
},
"party_size": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Travelers (1-14, default 2)."
},
"after_cruise": {
"enum": [
"airport",
"hotel"
],
"type": "string",
"description": "airport (default): straight to the airport; hotel: one more night in Seattle."
},
"arrival_date": {
"type": "string",
"format": "date",
"description": "Or an exact arrival date (YYYY-MM-DD), up to 14 days before sailing."
},
"home_airport": {
"type": "string",
"description": "Optional 3-letter code of the airport they fly from, e.g. ORD."
},
"arrival_flight": {
"type": "string",
"description": "Optional arriving flight number, e.g. AS 342, prefilled on the airport ride."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"cost": {
"type": "object",
"properties": {
"lines": {
"type": "array"
},
"total_low_usd": {
"type": "number"
},
"total_high_usd": {
"type": "number"
},
"unpriced_rides": {
"type": "integer"
}
}
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": [
"string",
"null"
]
},
"label": {
"type": "string"
},
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"kind": {
"type": "string"
},
"title": {
"type": "string"
},
"estimate_usd": {
"type": [
"number",
"null"
]
}
}
}
}
}
}
},
"error": {
"type": "string"
},
"sailing": {
"type": "object"
},
"arrival_date": {
"type": "string",
"format": "date"
},
"hotel_options": {
"type": "array",
"items": {
"type": "object"
}
},
"plan_page_url": {
"type": "string",
"format": "uri"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}plan_seattle_trip — Plan a Seattle trip
Plan a Seattle visit day by day, the same plan as seatac.co/seattle-trip-planner: a work trip, seeing family, a game or concert, or a holiday (for a cruise use plan_cruise_trip). Give the dates; everything else is optional and can be added on later calls. Returns each day in order: arrival (flight, the Seatac ride with its pickup time and estimate), the hotel, each day's plan from morning to evening with meetings at their set times, meals, experiences and events, the estimated travel time between stops and a ride link for each leg, warnings when something won't fit, suggested restaurants and experiences for empty parts of the day, games and concerts on each date with ticket links, the ride back to the airport timed from the flight home, hotel options ranked for the trip (nearest the meetings for work), an estimated total, and plan_page_url, which opens exactly this plan for the traveler to change and book. Nothing is assumed booked. Read-only; no payment.
{
"type": "object",
"required": [
"start"
],
"properties": {
"end": {
"type": "string",
"format": "date",
"description": "Day they leave, YYYY-MM-DD (same as start for a day trip). Or give nights."
},
"picks": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"date"
],
"properties": {
"id": {
"type": "string",
"description": "pick_id, e.g. space-needle, eat-pink-door, ev-<event>."
},
"date": {
"type": "string",
"format": "date",
"description": "YYYY-MM-DD, a day of the trip."
},
"part": {
"enum": [
"morning",
"lunch",
"afternoon",
"dinner",
"evening"
],
"type": "string",
"description": "morning, lunch, afternoon, dinner or evening (default: when it usually fits)."
}
},
"additionalProperties": false
},
"description": "Things to put on the plan (up to 30): a pick_id from suggestions, events, find_things_to_do or find_restaurants, a date, and optionally the part of the day."
},
"start": {
"type": "string",
"format": "date",
"description": "Day they arrive in Seattle, YYYY-MM-DD."
},
"nights": {
"type": "integer",
"maximum": 21,
"minimum": 0,
"description": "Nights in Seattle instead of end (0-21, default 2)."
},
"purpose": {
"enum": [
"business",
"visit",
"event",
"vacation"
],
"type": "string",
"description": "What the trip is for: business, visit, event or vacation. Business ranks hotels by the meetings and defaults to 1 traveler."
},
"meetings": {
"type": "array",
"items": {
"type": "object",
"required": [
"date",
"time"
],
"properties": {
"lat": {
"type": "number",
"description": "Optional latitude of the address, for travel times."
},
"lng": {
"type": "number",
"description": "Optional longitude of the address, for travel times."
},
"date": {
"type": "string",
"format": "date",
"description": "YYYY-MM-DD, a day of the trip."
},
"name": {
"type": "string",
"description": "What it is, e.g. Client meeting."
},
"time": {
"type": "string",
"description": "Start, Seattle time HH:MM."
},
"address": {
"type": "string",
"description": "Where it is, e.g. \"Amazon Spheres, 2111 7th Ave, Seattle, WA\"."
},
"minutes": {
"type": "integer",
"maximum": 600,
"minimum": 15,
"description": "Length in minutes (15-600, default 60)."
}
},
"additionalProperties": false
},
"description": "Meetings or appointments at set times (up to 10)."
},
"arrive_by": {
"enum": [
"fly",
"drive",
"train_bus_ferry"
],
"type": "string",
"description": "fly (default), drive, or train_bus_ferry."
},
"hotel_name": {
"type": "string",
"description": "Or a hotel they booked elsewhere, \"name, address\"."
},
"hotel_slug": {
"type": "string",
"description": "One of our hotels (slug from hotel_options)."
},
"party_size": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Travelers (1-14; default 1 for business, else 2)."
},
"suggestions": {
"type": "boolean",
"description": "Suggest restaurants and experiences for empty parts of each day (default true)."
},
"home_airport": {
"type": "string",
"description": "3-letter code of the airport they fly from, e.g. ORD."
},
"landing_time": {
"type": "string",
"description": "Landing time at Seatac, Seattle time HH:MM. Sets the airport pickup and the first afternoon."
},
"arrival_place": {
"type": "string",
"description": "train_bus_ferry: where they arrive, e.g. King Street Station."
},
"return_flight": {
"type": "string",
"description": "Flight home, e.g. AS 38."
},
"arrival_flight": {
"type": "string",
"description": "Arriving flight number, e.g. AS 33."
},
"departure_time": {
"type": "string",
"description": "Flight home's departure, Seattle time HH:MM. Sets the last day and the ride to the airport."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"cost": {
"type": "object"
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": [
"string",
"null"
]
},
"plan": {
"type": "object"
},
"label": {
"type": "string"
},
"steps": {
"type": "array"
},
"events": {
"type": "array"
}
}
}
},
"trip": {
"type": "object"
},
"error": {
"type": "string"
},
"hotel_options": {
"type": "array",
"items": {
"type": "object"
}
},
"plan_page_url": {
"type": "string",
"format": "uri"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}compare_airport_options — Compare ways to and from SEA
Compare every way to get between Seatac Airport (SEA) and a Seattle-area place for one trip: a private Seatac Connection ride, driving and parking at the SEA garage, a rental car, app rideshare or taxi, and Link light rail. Priced options carry real numbers (Port of Seattle garage rates, typical rental costs, example or live ride fares); rideshare and light rail are described, not priced, because their prices are not fixed. direction: "departing" (flying out of SEA: the alternative is parking), "arriving" (visiting: the alternative is a rental), or "both". Ranks the priced options cheapest first.
{
"type": "object",
"required": [
"trip_days"
],
"properties": {
"area": {
"enum": [
"downtown-seattle",
"waterfront",
"bellevue",
"kirkland",
"tacoma",
"federal-way",
"renton"
],
"type": "string",
"description": "Seattle-area place the trip starts or ends at (default downtown-seattle)."
},
"bags": {
"type": "integer",
"maximum": 12,
"minimum": 0,
"description": "Checked-size bags for the live fare (0-12, default 2)."
},
"address": {
"type": "string",
"description": "Optional exact pickup/drop-off address in the Seattle area for a live fare instead of the stored example fare, e.g. \"1301 5th Ave, Seattle\". Needs pickup_datetime. Uses one rate-limited live quote."
},
"direction": {
"enum": [
"departing",
"arriving",
"both"
],
"type": "string",
"description": "departing = a local flying out of SEA (compare parking); arriving = a visitor flying in (compare a rental); both (default)."
},
"trip_days": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Length of the trip in days (1-30): days parked, or nights in town for a rental."
},
"passengers": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Passengers for the live fare (1-12, default 2)."
},
"pickup_datetime": {
"type": "string",
"description": "With address: the ride's pickup date and time, ISO 8601, Seattle local time when no offset, e.g. 2026-11-02T14:30."
},
"rental_daily_rate": {
"type": "number",
"minimum": 0,
"description": "Optional: the traveler's own daily rental rate before tax, USD."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"trip": {
"type": "object"
},
"error": {
"type": "string"
},
"pages": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "uri"
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"how": {
"type": "string"
},
"option": {
"enum": [
"private_ride",
"airport_garage_parking",
"rental_car",
"rideshare_or_taxi",
"link_light_rail"
],
"type": "string"
},
"total_usd": {
"type": [
"number",
"null"
]
}
}
}
},
"ranking": {
"type": "array",
"items": {
"type": "object"
}
},
"cheapest_priced": {
"type": [
"string",
"null"
]
},
"parking_breakeven_days": {
"type": [
"integer",
"null"
]
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}compare_parking_vs_ride — Compare SEA parking vs a ride
Compare parking at the Seatac (SEA) airport garage for a trip with a round-trip private ride to and from the airport, using the same numbers as seatac.co/parking: Port of Seattle drive-up rates (taxes included) against example sedan fares from seven Seattle-area starting points. Returns both totals, which is cheaper and by how much, and the trip length where the ride starts winning. Optional: pass address + pickup_datetime for a live fare (one rate-limited quote).
{
"type": "object",
"required": [
"days"
],
"properties": {
"bags": {
"type": "integer",
"maximum": 12,
"minimum": 0,
"description": "Checked-size bags for the live fare (0-12, default 2)."
},
"days": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Days the car would be parked (whole 24-hour days, 1-60)."
},
"address": {
"type": "string",
"description": "Optional exact pickup/drop-off address in the Seattle area for a live fare instead of the stored example fare, e.g. \"1301 5th Ave, Seattle\". Needs pickup_datetime. Uses one rate-limited live quote."
},
"from_area": {
"enum": [
"downtown-seattle",
"waterfront",
"bellevue",
"kirkland",
"tacoma",
"federal-way",
"renton"
],
"type": "string",
"description": "Where the traveler drives from (default downtown-seattle)."
},
"passengers": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Passengers for the live fare (1-12, default 2)."
},
"pickup_datetime": {
"type": "string",
"description": "With address: the ride's pickup date and time, ISO 8601, Seattle local time when no offset, e.g. 2026-11-02T14:30."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"trip": {
"type": "object"
},
"error": {
"type": "string"
},
"cheaper": {
"enum": [
"ride",
"parking",
"tie"
],
"type": "string"
},
"verdict": {
"type": "string"
},
"page_url": {
"type": "string",
"format": "uri"
},
"private_ride": {
"type": "object",
"properties": {
"booking_url": {
"type": "string",
"format": "uri"
},
"fare_source": {
"enum": [
"example_fare",
"live_quote"
],
"type": "string"
},
"one_way_usd": {
"type": "number"
},
"round_trip_usd": {
"type": "number"
}
}
},
"airport_garage": {
"type": "object",
"properties": {
"total_usd": {
"type": "number"
}
}
},
"breakeven_days": {
"type": [
"integer",
"null"
],
"description": "Trip length (days) from which the ride costs less than the garage."
},
"difference_usd": {
"type": "number"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}compare_rental_vs_ride — Compare SEA rental car vs a ride
Compare renting a car at Seatac (SEA) for a stay with a private ride from the airport and back, as seatac.co/seatac-car-rental does: typical SEA daily rate, taxes and airport fees, the facility charge, and hotel parking every night (gas left out), against example sedan fares. Override the daily rate or hotel parking with the traveler's own quote. Returns the breakdown, which is cheaper, a ride booking link, and a rental search link (partner; seatac.co may earn a commission). Optional live fare with address + pickup_datetime (one rate-limited quote).
{
"type": "object",
"required": [
"nights"
],
"properties": {
"bags": {
"type": "integer",
"maximum": 12,
"minimum": 0,
"description": "Checked-size bags for the live fare (0-12, default 2)."
},
"nights": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Nights in town (1-30); the rental runs one day per night."
},
"address": {
"type": "string",
"description": "Optional exact pickup/drop-off address in the Seattle area for a live fare instead of the stored example fare, e.g. \"1301 5th Ave, Seattle\". Needs pickup_datetime. Uses one rate-limited live quote."
},
"passengers": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Passengers for the live fare (1-12, default 2)."
},
"start_date": {
"type": "string",
"format": "date",
"description": "Optional rental pickup date (YYYY-MM-DD) for the rental search link."
},
"staying_in": {
"enum": [
"downtown-seattle",
"waterfront",
"bellevue",
"kirkland",
"tacoma"
],
"type": "string",
"description": "Where the traveler stays (default downtown-seattle)."
},
"pickup_datetime": {
"type": "string",
"description": "With address: the ride's pickup date and time, ISO 8601, Seattle local time when no offset, e.g. 2026-11-02T14:30."
},
"rental_daily_rate": {
"type": "number",
"minimum": 0,
"description": "Optional: the traveler's own daily rental rate before tax, USD."
},
"hotel_parking_per_night": {
"type": "number",
"minimum": 0,
"description": "Optional: the hotel's overnight parking per night, USD."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"trip": {
"type": "object"
},
"error": {
"type": "string"
},
"cheaper": {
"enum": [
"ride",
"rental",
"tie"
],
"type": "string"
},
"verdict": {
"type": "string"
},
"page_url": {
"type": "string",
"format": "uri"
},
"rental_car": {
"type": "object",
"properties": {
"base_usd": {
"type": "number"
},
"total_usd": {
"type": "number"
},
"search_url": {
"type": "string",
"format": "uri"
},
"hotel_parking_usd": {
"type": "number"
},
"taxes_and_fees_usd": {
"type": "number"
}
}
},
"private_ride": {
"type": "object",
"properties": {
"booking_url": {
"type": "string",
"format": "uri"
},
"one_way_usd": {
"type": "number"
},
"round_trip_usd": {
"type": "number"
}
}
},
"difference_usd": {
"type": "number"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}recommend_hotels_with_rides — Hotels with whole-trip ride costs
Recommend Seattle hotels for a stay with the whole-trip cost: typical room rate for the nights plus the rides the stay needs (Seatac → hotel on check-in day, then hotel → cruise pier or back to Seatac on check-out day). near is a cruise pier (pier-66, pier-91: check-out day is sailing day) or a hotel area. For a pier it also prices a SeaTac airport hotel, so the traveler can see when a cheaper airport room plus rides beats a downtown room. Room links lead; ride links are the add-on. Typical rates and ride estimates, not live prices.
{
"type": "object",
"required": [
"near",
"checkin",
"checkout"
],
"properties": {
"near": {
"enum": [
"pier-66",
"pier-91",
"seatac-hotels",
"downtown-seattle",
"waterfront",
"belltown-slu-seattle-center",
"bellevue",
"eastside",
"kirkland"
],
"type": "string",
"description": "A cruise pier (pier-66, pier-91) or a hotel area."
},
"limit": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Hotels to return (1-8, default 5)."
},
"checkin": {
"type": "string",
"format": "date",
"description": "Check-in date, YYYY-MM-DD."
},
"checkout": {
"type": "string",
"format": "date",
"description": "Check-out date, YYYY-MM-DD (sailing day for a pier)."
},
"party_size": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Travelers (1-14, default 2)."
},
"compare_airport_hotel": {
"type": "boolean",
"description": "For a pier: also price a SeaTac airport hotel (default true)."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"stay": {
"type": "object"
},
"error": {
"type": "string"
},
"hotels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"rides": {
"type": "array"
},
"rooms_url": {
"type": "string",
"format": "uri"
},
"whole_trip_usd": {
"type": [
"object",
"null"
]
},
"typical_nightly_usd": {
"type": [
"object",
"null"
]
}
}
}
},
"insight": {
"type": [
"string",
"null"
]
},
"page_url": {
"type": "string",
"format": "uri"
},
"airport_hotel_alternative": {
"type": [
"object",
"null"
]
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}find_events_near — Find Seattle events near a place
Find Seattle-area games, concerts and shows on given dates (from Seatac's daily Ticketmaster snapshot), the same list seatac.co shows as "Happening while you're here". With near (the airport, a cruise pier, or a hotel area) events are nearest first, one per venue, within 20 miles, with the straight-line distance; without it, the biggest events first. Each event has its start time, the planned ride (pickup time to arrive 45 minutes early, estimated end, ride back), a prefilled round-trip booking link, the event page and the ticket link.
{
"type": "object",
"required": [
"from"
],
"properties": {
"to": {
"type": "string",
"format": "date",
"description": "Last date, inclusive (up to 14 days after from). Omit for one day."
},
"from": {
"type": "string",
"format": "date",
"description": "First date, YYYY-MM-DD (Seattle)."
},
"kind": {
"enum": [
"sports",
"concert",
"show"
],
"type": "string",
"description": "Only sports, concert, or show."
},
"near": {
"enum": [
"sea-airport",
"pier-66",
"pier-91",
"downtown-seattle",
"waterfront",
"belltown-slu-seattle-center",
"bellevue",
"eastside",
"kirkland"
],
"type": "string",
"description": "Where the traveler is: sea-airport, a cruise pier, or a hotel area. Omit for the biggest events."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Events to return (1-10, default 5)."
},
"ride_from": {
"type": "string",
"description": "Optional address the ride to the event starts from (e.g. their hotel), prefilled in the booking link."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"name": {
"type": "string"
},
"venue": {
"type": "object"
},
"ride_plan": {
"type": [
"object",
"null"
]
},
"start_time": {
"type": [
"string",
"null"
]
},
"tickets_url": {
"type": "string"
},
"event_page_url": {
"type": "string",
"format": "uri"
},
"ride_booking_url": {
"type": "string",
"format": "uri"
}
}
}
},
"page_url": {
"type": "string",
"format": "uri"
},
"searched": {
"type": "object"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}find_things_to_do — Find things to do in Seattle
Seattle experiences the trip planner offers (Space Needle and Chihuly Garden, a harbor cruise, the Museum of Flight, food tours and more): what each is, how long it takes, which parts of the day it fits, rough price level, where it is, a ticket link, and with hotel_slug about how long it takes to get there. Each has a pick_id to pass to plan_seattle_trip's picks.
{
"type": "object",
"properties": {
"part": {
"enum": [
"morning",
"lunch",
"afternoon",
"dinner",
"evening"
],
"type": "string",
"description": "Only those that fit this part of the day."
},
"limit": {
"type": "integer",
"minimum": 1,
"description": "How many (default 10)."
},
"hotel_slug": {
"type": "string",
"description": "Our hotel (from plan_seattle_trip's hotel_options) to estimate travel time from."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"page_url": {
"type": "string",
"format": "uri"
},
"experiences": {
"type": "array",
"items": {
"type": "object"
}
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}find_restaurants — Find restaurants in Seattle
Places to eat in Seattle from the trip planner's own list, for breakfast, lunch or dinner, nearest first to an area (pike-place, waterfront, downtown, pioneer-square, queen-anne, airport) or one of our hotels: cuisine, price level, address, a one-line why, a map link, and with hotel_slug about how long it takes to get there. Each has a pick_id for plan_seattle_trip's picks.
{
"type": "object",
"required": [
"meal"
],
"properties": {
"meal": {
"enum": [
"breakfast",
"lunch",
"dinner"
],
"type": "string",
"description": "breakfast, lunch or dinner."
},
"near": {
"enum": [
"airport",
"downtown",
"pike-place",
"pioneer-square",
"queen-anne",
"waterfront"
],
"type": "string",
"description": "Area to start from (default downtown, or the hotel's area)."
},
"limit": {
"type": "integer",
"minimum": 1,
"description": "How many (default 6)."
},
"hotel_slug": {
"type": "string",
"description": "Our hotel (from plan_seattle_trip's hotel_options): nearest it first, with travel time."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"searched": {
"type": "object"
},
"restaurants": {
"type": "array",
"items": {
"type": "object"
}
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}plan_airport_departure — When to leave for SEA
Work out when to leave for Seatac (SEA) for a departing flight, the seatac.co departure planner's rule: be at the terminal 2 hours before a domestic or 3 hours before an international departure (SEA's advice), minus Seatac's stored typical drive from the starting point. Returns the terminal-arrival target, the pickup time, a prefilled ride booking link, and how long before departure to leave from each place we have a drive time for.
{
"type": "object",
"required": [
"departure_datetime"
],
"properties": {
"from": {
"enum": [
"downtown-seattle",
"bellevue",
"kirkland",
"pier-66",
"pier-91",
"airport-hotels"
],
"type": "string",
"description": "Starting point with a stored drive time."
},
"drive_minutes": {
"type": "integer",
"maximum": 240,
"minimum": 5,
"description": "Optional drive time in minutes (5-240) when starting elsewhere; overrides the stored time."
},
"international": {
"type": "boolean",
"description": "true for an international flight (3-hour rule); default false (2 hours)."
},
"pickup_address": {
"type": "string",
"description": "Optional exact pickup address, prefilled in the booking link."
},
"departure_datetime": {
"type": "string",
"description": "Scheduled departure, ISO 8601; Seattle local time when no offset, e.g. 2026-11-02T08:15."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"page_url": {
"type": "string",
"format": "uri"
},
"pickup_at": {
"type": "string"
},
"booking_url": {
"type": "string",
"format": "uri"
},
"drive_minutes": {
"type": "integer"
},
"be_at_terminal_by": {
"type": "string"
},
"leave_before_departure": {
"type": "array",
"items": {
"type": "object"
}
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 369 ms
- 95th percentile latency
- 369 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 369 ms · metadata changed · 14 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http seatac-connection-rides-mcp https://seatac.co/api/mcpCodex
codex mcp add seatac-connection-rides-mcp --url https://seatac.co/api/mcpCursor
{
"mcpServers": {
"seatac-connection-rides-mcp": {
"url": "https://seatac.co/api/mcp"
}
}
}Cline
{
"mcpServers": {
"seatac-connection-rides-mcp": {
"type": "streamableHttp",
"url": "https://seatac.co/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"seatac-connection-rides-mcp": {
"type": "http",
"url": "https://seatac.co/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http seatac-connection-rides-mcp https://seatac.co/api/mcpClaude Desktop
{
"mcpServers": {
"seatac-connection-rides-mcp": {
"url": "https://seatac.co/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"seatac-connection-rides-mcp": {
"serverUrl": "https://seatac.co/api/mcp"
}
}
}Let your agent find its tools
Find servers like Seatac Connection Rides MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Seatac Connection Rides MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.