Quest Apartment Hotels MCP Server

Search properties, check availability, and manage bookings for Quest hotels.

README.md

Quest Apartment Hotels — MCP Server (POC)

A Model Context Protocol (MCP) server for Quest Apartment Hotels, enabling AI assistants (ChatGPT, Claude, Gemini) to search properties, check availability, compare rates, and make bookings across Quest's Australian portfolio.

POC Note: Availability and rates are simulated with deterministic fake data. Bookings are stored in-memory and reset on each cold start.


Tools Exposed

Tool Description
quest_search_properties Find properties by city, state, or amenity
quest_get_property_details Full details for a specific property
quest_check_availability Availability for a property and date range
quest_get_rates Rate plans for a property and stay
quest_search_availability Combined search + availability in one call
quest_get_booking_quote Price estimate without creating a booking
quest_create_booking Make a reservation
quest_get_booking Look up an existing booking by confirmation number

Project Structure

Quest-MCP/
├── api/
│   └── mcp.ts          # All server logic (single file)
├── package.json
├── tsconfig.json
├── vercel.json          # Routes /mcp → /api/mcp
└── .gitignore

Local Development

Prerequisites

  • Node.js 20+
  • Vercel CLI (installed as a dev dependency)

Setup

# Clone the repo
git clone https://github.com/YOUR_USERNAME/Quest-MCP.git
cd Quest-MCP

# Install dependencies
npm install

# Type-check (no output = success)
npm run build

# Start local dev server
npm run dev

The server will be available at http://localhost:3000/mcp.

Testing locally with MCP Inspector

npx @modelcontextprotocol/inspector

Set the URL to http://localhost:3000/mcp and transport to Streamable HTTP.


Deployment (Vercel via GitHub)

The project is configured to auto-deploy to Vercel on every push to main.

First-time setup

  1. Push this repo to GitHub
  2. Go to vercel.comAdd New Project → Import your GitHub repo
  3. Vercel will auto-detect the project — no extra config needed
  4. Click Deploy

After the first deploy, every git push to main triggers a new deployment automatically.

Your MCP endpoint will be at:

https://YOUR-PROJECT.vercel.app/mcp

Environment Variables

None required for this POC. All data is hardcoded.


Testing in OpenAI ChatGPT

Per the OpenAI MCP testing instructions:

  1. Open chatgpt.com and start a new conversation
  2. Click the Tools (plug) icon → Add a toolMCP Server
  3. Enter your Vercel URL:
    https://YOUR-PROJECT.vercel.app/mcp
    
  4. Set approval to No approval required (for testing)
  5. Click Connect

ChatGPT will discover all 8 tools automatically. Try prompts like:

  • "Find me a Quest hotel in Melbourne for 3 nights from next Friday"
  • "What Quest properties in Sydney have a gym?"
  • "Check availability at Quest Docklands for 15–18 March 2025 and give me the best rate"
  • "Book a studio at Quest on William for 2 nights from March 20, name John Smith"

Sample Data

The server includes 27 real Quest Australia properties across:

State Count
VIC 7
NSW 6
QLD 4
ACT 2
WA 3
SA 1
NT 1
TAS 1
Regional 2

Simulated Rate Plans

Code Description Adjustment
FLEX Flexible rate +10%
STD Standard rate base
ADVP Advance purchase (7d+) −10%
CORP Corporate rate −15%
LONG7 Weekly rate (7+ nights) −15%

Weekend surcharge: +20% on Fri/Sat/Sun nights.


Architecture Notes

  • Transport: Streamable HTTP (stateless — required for Vercel serverless)
  • Sessions: Disabled (sessionIdGenerator: undefined) — each request is independent
  • CORS: Open (*) — required for browser-based AI clients
  • Availability: Deterministic hash on propertyId|date|roomType → 75% available
  • Bookings: In-memory Record<string, Booking> — resets on cold start

For a production implementation, replace the in-memory store with a database and connect to Quest's RMS API.

Tools 8

quest_search_propertiesFind properties by city, state, or amenity
quest_get_property_detailsFull details for a specific property
quest_check_availabilityAvailability for a property and date range
quest_get_ratesRate plans for a property and stay
quest_search_availabilityCombined search + availability in one call
quest_get_booking_quotePrice estimate without creating a booking
quest_create_bookingMake a reservation
quest_get_bookingLook up an existing booking by confirmation number

Try it

Find me a Quest hotel in Melbourne for 3 nights from next Friday
What Quest properties in Sydney have a gym?
Check availability at Quest Docklands for 15–18 March 2025 and give me the best rate
Book a studio at Quest on William for 2 nights from March 20, name John Smith

Frequently Asked Questions

What are the key features of Quest Apartment Hotels?

Search Quest properties by city, state, or specific amenities. Retrieve detailed information for individual hotel properties. Check real-time availability and compare various rate plans. Generate booking quotes and create new reservations. Retrieve existing booking details using a confirmation number.

What can I use Quest Apartment Hotels for?

Travel planning by quickly identifying available Quest properties in specific Australian cities. Comparing different rate plans like flexible, standard, or corporate rates for a stay. Automating the booking process for business travelers through AI assistants. Verifying property amenities before finalizing a reservation.

How do I install Quest Apartment Hotels?

Install Quest Apartment Hotels by running: git clone https://github.com/weinerac/quest-mcp-mvp.git && npm install && npm run build

What MCP clients work with Quest Apartment Hotels?

Quest Apartment Hotels works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Quest Apartment Hotels docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare