MCP endpoint
https://holiday-forever-2.vercel.app/mcp
For humans — add the connector
Pick your client and follow the steps. The endpoint is the same everywhere.
- Open Claude (desktop or web).
- Go to Settings → Connectors → Add custom connector.
- Paste the URL:
https://holiday-forever-2.vercel.app/mcp - Save. Start a new chat and ask, “Show me a holiday listing.”
- In your terminal, run:
# Add as a project-scoped MCP server claude mcp add holiday-forever https://holiday-forever-2.vercel.app/mcp \ --transport http
- Open Claude Code in this project and verify with
/mcp.
- Open ChatGPT.
- Go to Settings → Connectors → Add custom connector (Plus / Team / Enterprise required).
- Paste the URL:
https://holiday-forever-2.vercel.app/mcp - Authentication: None. Save and enable it in a new chat.
- Open Cursor → Settings → MCP → Add new MCP server.
- Paste the URL and pick the
httptransport.
// ~/.cursor/mcp.json { "mcpServers": { "holiday-forever": { "url": "https://holiday-forever-2.vercel.app/mcp", "transport": "http" } } }
Any client that speaks the MCP Streamable HTTP transport works. Drop this config in wherever your client expects MCP servers:
{
"mcpServers": {
"holiday-forever": {
"url": "https://holiday-forever-2.vercel.app/mcp",
"transport": "streamable-http"
}
}
}
For AI agents — endpoint & tools
If you are an AI agent reading this page to bootstrap a connection, use the values below. The same metadata is exposed at
/.well-known/mcp.json and in this document’s <meta> tags.
{
"name": "holiday-forever",
"title": "Holiday Forever",
"description": "Directory of Airbnb-style holiday listings, served as MCP.",
"endpoint": "https://holiday-forever-2.vercel.app/mcp",
"transport": "streamable-http",
"protocolVersion": "2025-06-18",
"authentication": "none",
"tools": ["show_listing", "book_listing"]
}
show_listing
Renders a listing as an interactive photo-gallery widget (hero image, thumbnails, price, rating, summary, booking link). Falls back to markdown on hosts that don’t render MCP App widgets. No arguments.
book_listing
Holds a mock reservation for the listing and returns a confirmation card. Usually invoked by the widget’s “Book this stay” button rather than directly.
Verify the connection
Smoke-test the endpoint from a terminal:
# Initialize handshake curl -s -X POST https://holiday-forever-2.vercel.app/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'