Hotel Booking AI MCP

Consumer hotel search, live rates, booking, order management, and payment via TourMind.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
99%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,241Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "hotel-booking-ai-mcp": {
      "url": "https://api.tourmind.com/mcp/toc"
    }
  }
}

Remote endpoints

https://api.tourmind.com/mcp/tocstreamable-http

What it can do

Tool inventory

Tools (11)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸขbatch_query_room_rates(user_key, hotel_ids, check_in_date, check_out_date, adults, ...)

Get live room types and rate products for multiple hotels with partial-success results.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "Optional TourMind user key for authenticated ToC access"
    },
    "hotel_ids": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "TourMind hotel identifiers to query"
    },
    "check_in_date": {
      "type": "string",
      "description": "Check-in date in YYYY-MM-DD format"
    },
    "check_out_date": {
      "type": "string",
      "description": "Check-out date in YYYY-MM-DD format"
    },
    "adults": {
      "type": "integer",
      "description": "Number of adults in each room"
    },
    "room_count": {
      "type": "integer",
      "description": "Number of rooms using the same occupancy"
    },
    "children": {
      "type": "integer",
      "description": "Number of children in each room"
    },
    "children_ages": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Ages of the children in each room, each from 0 to 17"
    }
  },
  "required": [
    "hotel_ids"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐Ÿ”ดcancel_booking(user_key, agent_ref_id)

Cancel a booking owned by the user_key account.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "TourMind user key required for authenticated ToC booking operations"
    },
    "agent_ref_id": {
      "type": "string",
      "description": "TourMind booking reference"
    }
  },
  "required": [
    "user_key",
    "agent_ref_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐ŸŸขcheck_room_availability(user_key, hotel_id, rate_code, check_in_date, check_out_date, ...)

Recheck the selected rate code, price, and inventory before booking.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "Optional TourMind user key for authenticated ToC access"
    },
    "hotel_id": {
      "type": "string",
      "description": "TourMind hotel identifier"
    },
    "rate_code": {
      "type": "string",
      "description": "Rate code returned by query_room_rates"
    },
    "check_in_date": {
      "type": "string",
      "description": "Check-in date in YYYY-MM-DD format"
    },
    "check_out_date": {
      "type": "string",
      "description": "Check-out date in YYYY-MM-DD format"
    },
    "adults": {
      "type": "integer",
      "description": "Number of adults in each room"
    },
    "room_count": {
      "type": "integer",
      "description": "Number of rooms using the same occupancy"
    },
    "children": {
      "type": "integer",
      "description": "Number of children in each room"
    },
    "children_ages": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Ages of the children in each room, each from 0 to 17"
    }
  },
  "required": [
    "hotel_id",
    "rate_code"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐ŸŸขcheck_skill_update(current_version)

Check whether a newer TourMind Booking Skill version is available.

Input Schema

{
  "type": "object",
  "properties": {
    "current_version": {
      "type": "string",
      "description": "Installed Skill semantic version, for example 1.0.0"
    }
  },
  "required": [
    "current_version"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐Ÿ”ดcreate_booking(user_key, hotel_id, rate_code, check_in_date, check_out_date, ...)

Create a hotel booking from a verified rate. A valid user_key is required.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "TourMind user key required for authenticated ToC booking operations"
    },
    "hotel_id": {
      "type": "string",
      "description": "TourMind hotel identifier"
    },
    "rate_code": {
      "type": "string",
      "description": "Verified rate code returned by check_room_availability"
    },
    "check_in_date": {
      "type": "string",
      "description": "Check-in date in YYYY-MM-DD format"
    },
    "check_out_date": {
      "type": "string",
      "description": "Check-out date in YYYY-MM-DD format"
    },
    "guest_name": {
      "type": "string",
      "description": "Guest full legal name"
    },
    "contact_email": {
      "type": "string",
      "description": "Contact email for booking status notifications"
    },
    "adults": {
      "type": "integer",
      "description": "Number of adults in each room"
    },
    "room_count": {
      "type": "integer",
      "description": "Number of rooms using the same occupancy"
    },
    "children": {
      "type": "integer",
      "description": "Number of children in each room"
    },
    "children_ages": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Ages of the children in each room, each from 0 to 17"
    },
    "currency": {
      "type": "string",
      "description": "Three-letter booking currency code"
    },
    "total_price": {
      "type": "number",
      "description": "Verified total booking price"
    }
  },
  "required": [
    "user_key",
    "hotel_id",
    "rate_code",
    "check_in_date",
    "check_out_date",
    "guest_name",
    "adults",
    "room_count",
    "currency",
    "total_price"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐ŸŸขget_hotel_detail(user_key, hotel_id, language)

Get static hotel details, facilities, rooms, policies, and images.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "Optional TourMind user key for authenticated ToC access"
    },
    "hotel_id": {
      "type": "string",
      "description": "TourMind hotel identifier"
    },
    "language": {
      "type": "string",
      "description": "Response language, defaults to zh-CN"
    }
  },
  "required": [
    "hotel_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐Ÿ”ดpay_order(user_key, agent_ref_id, payment_method)

Create a payment request for a booking owned by the user_key account. CNY WeChat Pay and Alipay return a one-time device-aware payment link.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "TourMind user key required for authenticated ToC booking operations"
    },
    "agent_ref_id": {
      "type": "string",
      "description": "TourMind booking reference"
    },
    "payment_method": {
      "type": "string",
      "description": "Payment method: Stripe, ๅพฎไฟกๆ”ฏไป˜, or ๆ”ฏไป˜ๅฎ"
    }
  },
  "required": [
    "user_key",
    "agent_ref_id",
    "payment_method"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐ŸŸขquery_booking(user_key, agent_ref_id)

Query a booking owned by the user_key account.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "TourMind user key required for authenticated ToC booking operations"
    },
    "agent_ref_id": {
      "type": "string",
      "description": "TourMind booking reference"
    }
  },
  "required": [
    "user_key",
    "agent_ref_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐ŸŸขquery_room_rates(user_key, hotel_id, check_in_date, check_out_date, adults, ...)

Get live room types and rate products for a hotel and stay.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "Optional TourMind user key for authenticated ToC access"
    },
    "hotel_id": {
      "type": "string",
      "description": "TourMind hotel identifier"
    },
    "check_in_date": {
      "type": "string",
      "description": "Check-in date in YYYY-MM-DD format"
    },
    "check_out_date": {
      "type": "string",
      "description": "Check-out date in YYYY-MM-DD format"
    },
    "adults": {
      "type": "integer",
      "description": "Number of adults in each room"
    },
    "room_count": {
      "type": "integer",
      "description": "Number of rooms using the same occupancy"
    },
    "children": {
      "type": "integer",
      "description": "Number of children in each room"
    },
    "children_ages": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Ages of the children in each room, each from 0 to 17"
    }
  },
  "required": [
    "hotel_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐ŸŸขsearch_hotels(user_key, keyword, limit, region_id, latitude, ...)

Search candidate hotels by region, coordinates and radius, or fuzzy keyword.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "Optional TourMind user key for authenticated ToC access"
    },
    "keyword": {
      "type": "string",
      "description": "Hotel name or location keyword when region_id and coordinates are unavailable"
    },
    "limit": {
      "type": "integer",
      "description": "Maximum fuzzy hotel matches"
    },
    "region_id": {
      "type": "string",
      "description": "TourMind region identifier"
    },
    "latitude": {
      "type": [
        "null",
        "number"
      ],
      "description": "Latitude of the search center"
    },
    "longitude": {
      "type": [
        "null",
        "number"
      ],
      "description": "Longitude of the search center"
    },
    "radius_km": {
      "type": [
        "null",
        "number"
      ],
      "description": "Search radius in kilometers"
    },
    "check_in_date": {
      "type": "string",
      "description": "Check-in date in YYYY-MM-DD format"
    },
    "check_out_date": {
      "type": "string",
      "description": "Check-out date in YYYY-MM-DD format"
    },
    "adults": {
      "type": "integer",
      "description": "Number of adults in each room"
    },
    "room_count": {
      "type": "integer",
      "description": "Number of rooms using the same occupancy"
    },
    "children": {
      "type": "integer",
      "description": "Number of children in each room"
    },
    "children_ages": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Ages of the children in each room, each from 0 to 17"
    },
    "lowest_price": {
      "type": "integer",
      "description": "Minimum total price filter"
    },
    "highest_price": {
      "type": "integer",
      "description": "Maximum total price filter"
    },
    "location_name": {
      "type": "string",
      "description": "Human-readable location used to describe the search scope"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
๐ŸŸขsearch_location(user_key, keyword)

Resolve a region, point of interest, landmark, shopping mall, or hotel name to TourMind regions, hotels, or coordinates.

Input Schema

{
  "type": "object",
  "properties": {
    "user_key": {
      "type": "string",
      "description": "Optional TourMind user key for authenticated ToC access"
    },
    "keyword": {
      "type": "string",
      "description": "Region, point of interest, landmark, shopping mall, or hotel name"
    }
  },
  "required": [
    "keyword"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools