Koskamo

Happy Island Cottage MCP

An official MCP server operated by Happy Island Cottage LLC that allows AI agents to check availability, get booking quotes, and request bookings for three vacation rental properties on Anna Maria Island, Florida, directly from the owner without third-party platform fees.

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.

Happy Island Cottage MCP logo, by Happy Island Cottage LLCVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Happy Island Cottage LLC
MCP endpoint (Streamable HTTP)
https://happyislandcottage.com/mcp
Vendor documentation

What you can do with it

  • Check real-time availability for specific vacation rental properties
  • Calculate total booking costs including taxes and fees
  • Submit a booking request for a stay

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
happyislandcottage-booking 1.0.0
MCP protocol
2025-06-18
Tools
3 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

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

Happy Island Cottage LLC rents three homes on Anna Maria Island, Florida: Happy Island Cottage (happy-island-cottage, sleeps 6, 7 night minimum); Happy Turtle A (happy-turtle-a, sleeps 5, 3 night minimum); Happy Turtle B (happy-turtle-b, sleeps 4, 3 night minimum). Direct booking is request to book: the owner, a real person, confirms by email with a payment link, and nothing is charged at request. Flow: check_availability, then get_quote, show the guest the total and payment schedule, and call request_booking only after the guest explicitly asks you to send it. Every request reaches the owner, so never send test or speculative requests. Quotes are all in: rent, cleaning, optional dog fee, 7% Florida sales tax plus Manatee surtax and 6% Manatee tourist development tax; no platform fees. Payment: 20% deposit at booking and the balance 45 days before check in, or full payment when check in is 45 days away or less. Published facts: https://happyislandcottage.com/llms.txt

Tools

3 advertised

check_availability — Check availability
Advertised by the server during the last successful anonymous check.
Advertised read-only

Booked date ranges and open windows for the three homes, from the live calendars (refreshed about every 2 hours). Ranges are start to end with end exclusive: a checkout day is open for a new check in. openWindows lists every gap at least as long as that home's minimum stay inside the window you ask for (default today plus 180 days, longest 400). A window flagged clippedAtWindowEnd may continue past your 'to' date. Homes: Happy Island Cottage (happy-island-cottage, sleeps 6, 7 night minimum); Happy Turtle A (happy-turtle-a, sleeps 5, 3 night minimum); Happy Turtle B (happy-turtle-b, sleeps 4, 3 night minimum).

check_availability input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Last day, exclusive, YYYY-MM-DD (default from plus 180 days)"
    },
    "from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "First day to look at, YYYY-MM-DD (default today)"
    },
    "property": {
      "enum": [
        "happy-island-cottage",
        "happy-turtle-a",
        "happy-turtle-b"
      ],
      "type": "string",
      "description": "happy-island-cottage = Happy Island Cottage, sleeps 6; happy-turtle-a = Happy Turtle A, sleeps 5; happy-turtle-b = Happy Turtle B, sleeps 4"
    }
  },
  "additionalProperties": false
}
check_availability annotations
{
  "title": "Check availability",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_quote — Get an exact quote
Advertised by the server during the last successful anonymous check.
Advertised read-only

Exact all in price for one home and date range, from the same engine as the site's booking form: nightly subtotal, any discount, cleaning fee, dog fee, 7% sales tax plus surtax, 6% tourist development tax, total, and the payment schedule (20% deposit at booking and the balance 45 days before check in, or full payment when check in is 45 days away or less). Errors: UNKNOWN_PROPERTY, BAD_DATES, PAST_DATES, MIN_NIGHTS, UNAVAILABLE, OVER_CAPACITY. Read only; nothing is booked or held.

get_quote input schema
{
  "type": "object",
  "required": [
    "property",
    "checkin",
    "checkout"
  ],
  "properties": {
    "dog": {
      "type": "boolean",
      "description": "True if the guest brings a dog (adds the dog fee)"
    },
    "code": {
      "type": "string",
      "description": "Discount code, only if the guest already has one"
    },
    "guests": {
      "type": "integer",
      "minimum": 1,
      "description": "Number of guests, counted against the home's capacity"
    },
    "checkin": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Check in date, YYYY-MM-DD"
    },
    "checkout": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Check out date, YYYY-MM-DD"
    },
    "property": {
      "enum": [
        "happy-island-cottage",
        "happy-turtle-a",
        "happy-turtle-b"
      ],
      "type": "string",
      "description": "happy-island-cottage = Happy Island Cottage, sleeps 6; happy-turtle-a = Happy Turtle A, sleeps 5; happy-turtle-b = Happy Turtle B, sleeps 4"
    }
  },
  "additionalProperties": false
}
get_quote annotations
{
  "title": "Get an exact quote",
  "readOnlyHint": true,
  "openWorldHint": false
}
request_booking — Send a booking request
Advertised by the server during the last successful anonymous check.
Open-world

Sends a booking request to the owner on the guest's behalf, priced by the same engine as get_quote. This is request to book: the owner confirms by email to the guest with a payment link, and nothing is charged now. Call it ONLY after the guest has seen the quote and explicitly asked you to send the request, and set guestApproved to true to confirm that. Every call reaches a real person: never send tests, duplicates or requests the guest has not approved. Errors: as get_quote, plus MISSING_CONTACT and GUEST_APPROVAL_REQUIRED.

request_booking input schema
{
  "type": "object",
  "required": [
    "property",
    "checkin",
    "checkout",
    "guests",
    "name",
    "email",
    "guestApproved"
  ],
  "properties": {
    "dog": {
      "type": "boolean",
      "description": "True if the guest brings a dog"
    },
    "code": {
      "type": "string",
      "description": "Discount code, only if the guest already has one"
    },
    "name": {
      "type": "string",
      "description": "Guest's full name"
    },
    "email": {
      "type": "string",
      "description": "Guest's email; the owner replies here with the payment link"
    },
    "notes": {
      "type": "string",
      "description": "Anything the guest wants the owner to know (optional)"
    },
    "phone": {
      "type": "string",
      "description": "Guest's phone (optional)"
    },
    "guests": {
      "type": "integer",
      "minimum": 1,
      "description": "Number of guests"
    },
    "checkin": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Check in date, YYYY-MM-DD"
    },
    "checkout": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Check out date, YYYY-MM-DD"
    },
    "property": {
      "enum": [
        "happy-island-cottage",
        "happy-turtle-a",
        "happy-turtle-b"
      ],
      "type": "string",
      "description": "happy-island-cottage = Happy Island Cottage, sleeps 6; happy-turtle-a = Happy Turtle A, sleeps 5; happy-turtle-b = Happy Turtle B, sleeps 4"
    },
    "guestApproved": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the guest saw this quote and asked you to send the request"
    }
  },
  "additionalProperties": false
}
request_booking annotations
{
  "title": "Send a booking request",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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

Maintenance history

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

  • · probe · passed · 268 ms · metadata changed · 3 tool(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 happy-island-cottage-mcp https://happyislandcottage.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 happy-island-cottage-mcp --url https://happyislandcottage.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable happy-island-cottage-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "happy-island-cottage-mcp": {
      "url": "https://happyislandcottage.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "happy-island-cottage-mcp": {
      "type": "streamableHttp",
      "url": "https://happyislandcottage.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start happy-island-cottage-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "happy-island-cottage-mcp": {
      "type": "http",
      "url": "https://happyislandcottage.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 happy-island-cottage-mcp https://happyislandcottage.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": {
    "happy-island-cottage-mcp": {
      "url": "https://happyislandcottage.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": {
    "happy-island-cottage-mcp": {
      "serverUrl": "https://happyislandcottage.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Happy Island Cottage 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 Happy Island Cottage 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