Koskamo

Dunn Estates Aspen MCP

An MCP server providing read-only access to live availability, dynamic all-in pricing quotes, and property details for The Galena Penthouse in Aspen, allowing AI agents to check rates and suggest dates without authentication.

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.

Dunn Estates Aspen MCP logo, by Dunn EstatesVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Dunn Estates
MCP endpoint (Streamable HTTP)
https://www.dunnestates.com/mcp
Vendor documentation

What you can do with it

  • Check live availability for specific dates
  • Get dynamic all-in price quotes
  • Retrieve property amenities and policies
  • Suggest alternative dates based on availability

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
com.dunnestates/aspen-penthouse 1.0.0
MCP protocol
2025-06-18
Tools
9 advertised
Resources
4 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only tools for The Galena Penthouse, a private one-bedroom top-floor penthouse for two in Aspen, Colorado (748 South Galena Street), ten steps from Aspen Mountain. Use check_availability or suggest_dates for open dates and get_quote for exact all-in pricing; never state a fixed nightly rate. Quotes are live rate snapshots, not holds or reservations. Share the bookingUrl from get_quote so the guest can complete the reservation at secure checkout. Booking, payment and messages always happen with the guest, never through these tools.

Tools

9 advertised

get_property_overview — Property overview
Advertised by the server during the last successful anonymous check.
Advertised read-only

Facts about The Galena Penthouse, a private top-floor one-bedroom penthouse in Aspen, Colorado, with ski-in access to Aspen Mountain: size, layout, sleeping capacity, location, highlights, honest caveats, ratings, permit and photos. Call this first to describe the property.

get_property_overview input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
get_property_overview output schema
{
  "type": "object",
  "required": [
    "name",
    "summary",
    "sleeps",
    "website"
  ],
  "properties": {
    "geo": {
      "type": "object"
    },
    "beds": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "brand": {
      "type": "string"
    },
    "photos": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "sleeps": {
      "type": "integer"
    },
    "address": {
      "type": "object"
    },
    "contact": {
      "type": "object"
    },
    "pricing": {
      "type": "string"
    },
    "ratings": {
      "type": "object"
    },
    "summary": {
      "type": "string"
    },
    "website": {
      "type": "string"
    },
    "bedrooms": {
      "type": "integer"
    },
    "bathrooms": {
      "type": "integer"
    },
    "strPermit": {
      "type": "string"
    },
    "highlights": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "squareFeet": {
      "type": "integer"
    },
    "thingsToKnow": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
get_property_overview annotations
{
  "title": "Property overview",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_availability — Check availability
Advertised by the server during the last successful anonymous check.
Advertised read-only

Night-by-night availability from the live booking calendar between two dates (up to 180 nights). Returns open windows, reserved ranges and whether the whole requested stay is open. Reserved nights are shown simply as reserved. Use get_quote to confirm the price and minimum stay for specific dates.

check_availability input schema
{
  "type": "object",
  "required": [
    "start",
    "end"
  ],
  "properties": {
    "end": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Morning after the last night (departure date), YYYY-MM-DD"
    },
    "start": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "First night to check (arrival date), YYYY-MM-DD"
    }
  }
}
check_availability output schema
{
  "type": "object",
  "required": [
    "start",
    "end",
    "allNightsOpen",
    "openWindows",
    "reserved"
  ],
  "properties": {
    "end": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "start": {
      "type": "string"
    },
    "nights": {
      "type": "integer"
    },
    "website": {
      "type": "string"
    },
    "reserved": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [],
        "properties": {
          "to": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "nights": {
            "type": "integer"
          },
          "status": {
            "enum": [
              "reserved"
            ],
            "type": "string"
          }
        }
      }
    },
    "openWindows": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "checkin",
          "checkout",
          "nights"
        ],
        "properties": {
          "nights": {
            "type": "integer"
          },
          "checkin": {
            "type": "string",
            "format": "date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Arrival date"
          },
          "checkout": {
            "type": "string",
            "format": "date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Departure date"
          }
        }
      }
    },
    "calendarAsOf": {
      "type": "string"
    },
    "allNightsOpen": {
      "type": "boolean"
    },
    "typicalMinimumNights": {
      "type": "integer"
    }
  }
}
check_availability annotations
{
  "title": "Check availability",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_quote — Live all-in quote
Advertised by the server during the last successful anonymous check.
Advertised read-only

Exact all-in direct quote for specific dates from the live booking engine: itemized rent, any current offer, cleaning, property protection and taxes, with no platform fee. Also reports minimum-stay rules and invalid dates. Returns a prefilled secure checkout link for the guest. A quote is a live rate snapshot, not a hold or reservation.

get_quote input schema
{
  "type": "object",
  "required": [
    "checkin",
    "checkout"
  ],
  "properties": {
    "guests": {
      "type": "integer",
      "default": 2,
      "maximum": 2,
      "minimum": 1,
      "description": "Number of guests (the penthouse sleeps 2)"
    },
    "checkin": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Arrival date, YYYY-MM-DD"
    },
    "checkout": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Departure date, YYYY-MM-DD (stays up to 60 nights)"
    }
  }
}
get_quote output schema
{
  "type": "object",
  "required": [
    "available",
    "checkin",
    "checkout",
    "notice"
  ],
  "properties": {
    "total": {
      "type": "number"
    },
    "guests": {
      "type": "integer"
    },
    "nights": {
      "type": "integer"
    },
    "notice": {
      "type": "string"
    },
    "checkin": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "pageUrl": {
      "type": "string"
    },
    "checkout": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "quotedAt": {
      "type": "string"
    },
    "available": {
      "type": "boolean"
    },
    "breakdown": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "amount",
          "kind"
        ],
        "properties": {
          "kind": {
            "enum": [
              "rent",
              "discount",
              "cleaning",
              "damage_waiver",
              "taxes",
              "other"
            ],
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          }
        }
      }
    },
    "bookingUrl": {
      "type": "string"
    },
    "suggestion": {
      "type": "object"
    },
    "checkout_note": {
      "type": "string"
    },
    "minimumNights": {
      "type": "integer"
    },
    "averagePerNight": {
      "type": "number"
    },
    "nearbyOpenWindows": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "checkin",
          "checkout",
          "nights"
        ],
        "properties": {
          "nights": {
            "type": "integer"
          },
          "checkin": {
            "type": "string",
            "format": "date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Arrival date"
          },
          "checkout": {
            "type": "string",
            "format": "date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Departure date"
          }
        }
      }
    },
    "platformServiceFee": {
      "type": "number"
    },
    "typicalPlatformFeeAvoided": {
      "type": "object"
    }
  }
}
get_quote annotations
{
  "title": "Live all-in quote",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
suggest_dates — Suggest open dates
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists open stay windows in a given month that fit the requested length and the typical minimum stay, with live all-in totals for the first few. Use it when the guest is flexible ("a long weekend in February").

suggest_dates input schema
{
  "type": "object",
  "required": [
    "month"
  ],
  "properties": {
    "month": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}$",
      "description": "Month to search, YYYY-MM"
    },
    "guests": {
      "type": "integer",
      "default": 2,
      "maximum": 2,
      "minimum": 1,
      "description": "Number of guests"
    },
    "nights": {
      "type": "integer",
      "default": 4,
      "maximum": 30,
      "minimum": 1,
      "description": "Length of stay in nights"
    }
  }
}
suggest_dates output schema
{
  "type": "object",
  "required": [
    "month",
    "windows"
  ],
  "properties": {
    "note": {
      "type": "string"
    },
    "month": {
      "type": "string"
    },
    "nights": {
      "type": "integer"
    },
    "notice": {
      "type": "string"
    },
    "windows": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [],
        "properties": {
          "quote": {
            "type": "string"
          },
          "total": {
            "type": "number"
          },
          "nights": {
            "type": "integer"
          },
          "checkin": {
            "type": "string"
          },
          "checkout": {
            "type": "string"
          },
          "bookingUrl": {
            "type": "string"
          },
          "averagePerNight": {
            "type": "number"
          }
        }
      }
    },
    "typicalMinimumNights": {
      "type": "integer"
    }
  }
}
suggest_dates annotations
{
  "title": "Suggest open dates",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_policies — Stay policies
Advertised by the server during the last successful anonymous check.
Advertised read-only

Check-in and check-out times, minimum age, maximum guests, pets, smoking, quiet hours, parking, housekeeping, typical minimum stays, taxes and how quotes and cancellations work, as stated in the official property listing.

get_policies input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
get_policies output schema
{
  "type": "object",
  "required": [
    "checkIn",
    "checkOut",
    "pets",
    "smoking"
  ],
  "properties": {
    "pets": {
      "type": "object"
    },
    "taxes": {
      "type": "string"
    },
    "quotes": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "checkIn": {
      "type": "string"
    },
    "parking": {
      "type": "string"
    },
    "smoking": {
      "type": "object"
    },
    "checkOut": {
      "type": "string"
    },
    "maxGuests": {
      "type": "integer"
    },
    "minimumAge": {
      "type": "integer"
    },
    "quietHours": {
      "type": "string"
    },
    "minimumStay": {
      "type": "object"
    },
    "selfCheckIn": {
      "type": "boolean"
    },
    "cancellation": {
      "type": "string"
    },
    "housekeeping": {
      "type": "string"
    },
    "lastVerified": {
      "type": "string"
    }
  }
}
get_policies annotations
{
  "title": "Stay policies",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_amenities — Amenities
Advertised by the server during the last successful anonymous check.
Advertised read-only

Amenities by room and building (king bed, wood-burning fireplace, full kitchen, Sonos, pool and hot tub, ski locker), what is provided, and what is not available (no elevator, no central A/C, no daily maid service).

get_amenities input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
get_amenities output schema
{
  "type": "object",
  "required": [
    "groups"
  ],
  "properties": {
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [],
        "properties": {
          "group": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "provided": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "notAvailable": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
get_amenities annotations
{
  "title": "Amenities",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_location_and_nearby — Location and nearby
Advertised by the server during the last successful anonymous check.
Advertised read-only

Address and coordinates plus walking times to lifts, restaurants, shops and transit, recurring Aspen events with their usual dates and live availability for those windows, and airport transfer times.

get_location_and_nearby input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "category": {
      "enum": [
        "Ski & lifts",
        "Dining",
        "Nightlife",
        "Culture",
        "Outdoors",
        "Transit",
        "Essentials"
      ],
      "type": "string",
      "description": "Optional filter for nearby places"
    }
  }
}
get_location_and_nearby output schema
{
  "type": "object",
  "required": [
    "address",
    "nearby"
  ],
  "properties": {
    "geo": {
      "type": "object"
    },
    "note": {
      "type": "string"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "mapUrl": {
      "type": "string"
    },
    "nearby": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [],
        "properties": {
          "name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "walkMinutes": {
            "type": "number"
          }
        }
      }
    },
    "address": {
      "type": "string"
    },
    "airports": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  }
}
get_location_and_nearby annotations
{
  "title": "Location and nearby",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_reviews — Guest reviews
Advertised by the server during the last successful anonymous check.
Advertised read-only

Rating summary and verbatim guest reviews from direct stays, newest first.

get_reviews input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 30,
      "minimum": 1,
      "description": "How many reviews to return"
    },
    "minRating": {
      "type": "integer",
      "default": 1,
      "maximum": 5,
      "minimum": 1,
      "description": "Only reviews with at least this many stars"
    }
  }
}
get_reviews output schema
{
  "type": "object",
  "required": [
    "summary",
    "reviews"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "reviews": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [],
        "properties": {
          "date": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "rating": {
            "type": "integer"
          }
        }
      }
    },
    "summary": {
      "type": "object"
    }
  }
}
get_reviews annotations
{
  "title": "Guest reviews",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_to_alternatives — Compare to alternatives
Advertised by the server during the last successful anonymous check.
Advertised read-only

How The Galena Penthouse compares with luxury Aspen hotels (The Little Nell, St. Regis, Hotel Jerome, W Aspen) and with booking the same kind of stay on Airbnb or VRBO: space, kitchen, fireplace, ski access, pool and estimated hotel rates. Hotel figures are typical peak-season estimates, not quotes.

compare_to_alternatives input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "alternative": {
      "enum": [
        "the-little-nell",
        "st-regis-aspen",
        "hotel-jerome",
        "w-aspen",
        "airbnb_vrbo"
      ],
      "type": "string",
      "description": "Optional: one hotel or \"airbnb_vrbo\""
    }
  }
}
compare_to_alternatives output schema
{
  "type": "object",
  "required": [
    "penthouse"
  ],
  "properties": {
    "note": {
      "type": "string"
    },
    "hotels": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "penthouse": {
      "type": "object"
    },
    "platforms": {
      "type": "object"
    }
  }
}
compare_to_alternatives annotations
{
  "title": "Compare to alternatives",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

2 advertised

plan_aspen_stay — Plan an Aspen stay

Advertised by the server during the last successful anonymous check.

Plan a stay at The Galena Penthouse: find open dates, get a live all-in quote and suggest what to do nearby.

when
Dates or a month, e.g. "Feb 12–16, 2027" or "2027-02"
nights
Length of stay
interests
e.g. skiing, dining, Food & Wine Classic
compare_aspen_lodging — Compare Aspen lodging

Advertised by the server during the last successful anonymous check.

Compare The Galena Penthouse with Aspen luxury hotels or Airbnb/VRBO for given dates.

alternative
A hotel name or "Airbnb/VRBO"
dates
Arrival and departure dates

Resources

4 advertised

fact-sheet — Official fact sheet

Advertised by the server during the last successful anonymous check.

Canonical, citable facts about The Galena Penthouse.

fact-sheet URI
dunnestates://penthouse/fact-sheet

MIME type: text/markdown

policies — Stay policies

Advertised by the server during the last successful anonymous check.

House rules, check-in/out, parking, pets, minimum stays.

policies URI
dunnestates://penthouse/policies

MIME type: application/json

llms-full — Full site guide for language models

Advertised by the server during the last successful anonymous check.

Every page of the site as markdown, with live availability.

llms-full URI
https://www.dunnestates.com/llms-full.txt

MIME type: text/markdown

llms — Site index for language models

Advertised by the server during the last successful anonymous check.

llms.txt index of the site.

llms URI
https://www.dunnestates.com/llms.txt

MIME type: text/markdown

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
316 ms
95th percentile latency
316 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 316 ms · metadata changed · 9 tool(s), 4 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http dunn-estates-aspen-mcp https://www.dunnestates.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add dunn-estates-aspen-mcp --url https://www.dunnestates.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable dunn-estates-aspen-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "dunn-estates-aspen-mcp": {
      "url": "https://www.dunnestates.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "dunn-estates-aspen-mcp": {
      "type": "streamableHttp",
      "url": "https://www.dunnestates.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start dunn-estates-aspen-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "dunn-estates-aspen-mcp": {
      "type": "http",
      "url": "https://www.dunnestates.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http dunn-estates-aspen-mcp https://www.dunnestates.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "dunn-estates-aspen-mcp": {
      "url": "https://www.dunnestates.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "dunn-estates-aspen-mcp": {
      "serverUrl": "https://www.dunnestates.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Dunn Estates Aspen MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Dunn Estates Aspen 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.

Claim this listing