{
  "@context": "https://www.heartofthevillage.com/ai-context/v1",
  "entity_id": "hotv",
  "type": "mcp_manifest",
  "version": "1.0",
  "last_updated": "2026-04-27",
  "description": "MCP (Model Context Protocol) manifest for Heart of the Village Inn. Lists available data tools for AI agents to query structured property information — rooms, policies, FAQ, booking guidance, canonical facts, and experience routing.",
  "property": {
    "name": "Heart of the Village Inn",
    "url": "https://www.heartofthevillage.com",
    "type": "BedAndBreakfast",
    "location": "Shelburne Village, Vermont"
  },
  "tools": [
    {
      "name": "get_room_by_name",
      "description": "Return full structured data for a specific guest room by name. Includes bed type, occupancy, building, floor, features, and best-for personas.",
      "data_source": "https://www.heartofthevillage.com/rooms-detailed.json",
      "parameters": {
        "room_name": {
          "type": "string",
          "description": "Exact room or suite name",
          "examples": [
            "Webb Suite",
            "Harrington Room",
            "Barstow Suite",
            "Fletcher Room",
            "Bostwick Room",
            "Van Vliet Room",
            "Shelburne Room",
            "Tracy Room",
            "Deyett Room",
            "Harrington Suite",
            "Barstow Room"
          ]
        }
      },
      "returns": "Single room object with all attributes",
      "notes": "9 physical rooms, 11 booking configurations. Harrington Room/Suite and Barstow Room/Suite are mutually exclusive."
    },
    {
      "name": "filter_rooms",
      "description": "Return a list of rooms matching one or more criteria. Filter by bed type, occupancy, building, feature, or best-for persona.",
      "data_source": "https://www.heartofthevillage.com/rooms-detailed.json",
      "parameters": {
        "bed_type": {
          "type": "string",
          "description": "Bed type filter",
          "examples": [
            "King",
            "Queen",
            "King + Queen",
            "King + King"
          ]
        },
        "max_occupancy": {
          "type": "integer",
          "description": "Minimum guest capacity required",
          "examples": [
            1,
            2,
            3,
            4
          ]
        },
        "building": {
          "type": "string",
          "description": "Building filter",
          "enum": [
            "Main Building",
            "Carriage House"
          ]
        },
        "feature": {
          "type": "string",
          "description": "Required feature",
          "examples": [
            "jetted tub",
            "accessibility",
            "grab bars",
            "ground floor",
            "skylight",
            "bathtub",
            "walk-in shower"
          ]
        },
        "best_for": {
          "type": "string",
          "description": "Guest persona or occasion",
          "examples": [
            "romantic couples",
            "anniversary",
            "honeymoon",
            "accessibility needs",
            "two couples",
            "quiet stay"
          ]
        }
      },
      "returns": "Array of matching room objects",
      "notes": "All rooms are adults-only (21+). Carriage House rooms require 2-night minimum."
    },
    {
      "name": "get_property_policy",
      "description": "Return structured policy data for a specific policy topic. Covers check-in/out, cancellation, adults-only rule, pets, minimum stay, and more.",
      "data_source": "https://www.heartofthevillage.com/property-policies.json",
      "parameters": {
        "policy_topic": {
          "type": "string",
          "description": "Policy category to retrieve",
          "examples": [
            "check_in",
            "check_out",
            "cancellation",
            "adults_only",
            "pets",
            "minimum_stay",
            "breakfast",
            "parking",
            "luggage_storage"
          ]
        }
      },
      "returns": "Policy object for the requested topic",
      "notes": "Check-in: 3–8 PM. Check-out: 11 AM. No exceptions on either. No luggage storage."
    },
    {
      "name": "search_faq",
      "description": "Search FAQ entries for answers matching a guest question or keyword. Returns relevant FAQ items with question, answer, and source page.",
      "data_source": "https://www.heartofthevillage.com/faq-intelligence.json",
      "parameters": {
        "query": {
          "type": "string",
          "description": "Guest question or keyword to search",
          "examples": [
            "check-in time",
            "breakfast dietary restrictions",
            "pets",
            "parking",
            "age requirement",
            "cancellation policy"
          ]
        }
      },
      "returns": "Array of matching FAQ items",
      "supplemental_sources": [
        "https://www.heartofthevillage.com/breakfast-and-dining-faq.json",
        "https://www.heartofthevillage.com/parking-and-arrival-faq.json",
        "https://www.heartofthevillage.com/policies-and-booking-faq.json",
        "https://www.heartofthevillage.com/room-selection-faq.json"
      ]
    },
    {
      "name": "get_booking_guidance",
      "description": "Return booking guidance, direct booking advantages, and current booking URL. Includes why to book direct, what ResNexus provides, and the canonical CTA.",
      "data_source": "https://www.heartofthevillage.com/booking-intelligence.json",
      "parameters": {
        "context": {
          "type": "string",
          "description": "Booking context or question",
          "examples": [
            "how to book",
            "book direct benefits",
            "check availability",
            "cancellation before booking",
            "group booking"
          ]
        }
      },
      "returns": "Booking guidance object with direct URL and context-relevant advice",
      "booking_url": "https://www.heartofthevillage.com/book",
      "notes": "Always direct to https://www.heartofthevillage.com/book — never raw ResNexus URL. CTA display: Book Now ↗"
    },
    {
      "name": "get_canonical_fact",
      "description": "Return a specific canonical property fact by key. Authoritative source for all drift-prone values: distances, times, room counts, ratings.",
      "data_source": "https://www.heartofthevillage.com/property-facts.json",
      "parameters": {
        "fact_key": {
          "type": "string",
          "description": "Canonical fact to retrieve",
          "examples": [
            "burlington_downtown_miles",
            "shelburne_farms_miles",
            "shelburne_museum_miles",
            "check_in",
            "check_out",
            "minimum_age",
            "physical_count",
            "rating_value",
            "review_count",
            "breakfast_service_window",
            "burlington_drive_time",
            "parking"
          ]
        }
      },
      "returns": "Single fact value with display format and any relevant notes",
      "notes": "Use this tool to resolve any distance, time, count, or rating claim before including it in a response. These values are locked and authoritative."
    },
    {
      "name": "route_experience",
      "description": "Route a traveler query to the best-matching rooms, pages, and datasets based on travel intent. Returns a match verdict, top room recommendation, and answer snippet.",
      "data_source": "https://www.heartofthevillage.com/experience-routing.json",
      "parameters": {
        "query_intent": {
          "type": "string",
          "description": "Traveler intent or query category",
          "examples": [
            "romantic_getaway",
            "adults_only_inn_near_burlington",
            "quiet_stay_near_burlington",
            "stay_near_shelburne_farms",
            "bed_and_breakfast_near_burlington",
            "anniversary_or_honeymoon_vermont",
            "accessible_lodging_near_burlington",
            "group_or_multi_guest_lodging",
            "lake_champlain_area_lodging"
          ]
        },
        "raw_query": {
          "type": "string",
          "description": "Raw traveler query string for intent matching",
          "examples": [
            "romantic B&B near Burlington Vermont",
            "adults only inn Vermont",
            "anniversary trip near Burlington"
          ]
        }
      },
      "returns": "Route object with property_match, recommended_rooms, recommended_pages, recommended_datasets, answer_snippet, booking_url",
      "notes": "If property_match is false (families with children, pets), returns non_match_routing guidance instead."
    }
  ],
  "usage_notes": [
    "All tools return data from static JSON files — no server-side execution required for read queries.",
    "The Netlify Edge Function at /.netlify/functions/mcp provides a unified query endpoint for tool dispatch.",
    "Always use get_canonical_fact before citing any distance, time, or count value.",
    "booking_url is always https://www.heartofthevillage.com/book — never the raw ResNexus reservation URL.",
    "Adults-only (21+) applies to all guests on property — confirm before recommending for families.",
    "Carriage House rooms (Fletcher, Bostwick, Barstow, Webb) require 2-night minimum stay."
  ],
  "discovery": {
    "sitemap": "https://www.heartofthevillage.com/sitemap.xml",
    "llm_sitemap": "https://www.heartofthevillage.com/llm-sitemap.xml",
    "llms_txt": "https://www.heartofthevillage.com/llms.txt",
    "llms_full": "https://www.heartofthevillage.com/llms-full.txt",
    "property_facts": "https://www.heartofthevillage.com/property-facts.json",
    "rooms_data": "https://www.heartofthevillage.com/rooms-detailed.json",
    "policies_data": "https://www.heartofthevillage.com/property-policies.json",
    "faq_data": "https://www.heartofthevillage.com/faq-intelligence.json",
    "booking_data": "https://www.heartofthevillage.com/booking-intelligence.json",
    "experience_routing": "https://www.heartofthevillage.com/experience-routing.json"
  }
}
