H
Hotel MCP
by @tsepeti
Tatilsepeti Hotel Search MCP Server
Created 12/17/2025
Updated about 3 hours ago
README
Repository documentation and setup instructions
Tatilsepeti Hotel Search MCP Server
Model Context Protocol (MCP) server for Tatilsepeti hotel search functionality.
Features
- Search Destinations: Find regions and locations
- List Hotels: Get hotel listings with filters
- Auto Token Management: Automatically fetches fresh tokens for each request
- Rich Hotel Data: Includes prices, ratings, amenities, campaigns
Installation
Using npx (Recommended)
npx tatilsepeti-hotel-mcp
From Source
npm install
# or
yarn install
Configuration
Required Environment Variables
Create a .env file or set environment variables:
API_URL=https://api.tatilsepeti.com/api/v1
API_TOKEN=your_api_token_here
BASE_URL=https://www.tatilsepeti.com
Or export directly:
export API_URL="https://api.tatilsepeti.com/api/v1"
export API_TOKEN="your_api_token"
export BASE_URL="https://www.tatilsepeti.com"
Usage
With Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"tatilsepeti-hotel": {
"command": "npx",
"args": ["tatilsepeti-hotel-mcp"],
"env": {
"API_URL": "https://api.tatilsepeti.com/api/v1",
"API_TOKEN": "your_api_token_here",
"BASE_URL": "https://www.tatilsepeti.com"
}
}
}
}
Manual Run
node mcp.js
Available Tools
1. search_destination
Search for travel destinations (regions/locations).
Parameters:
query(string): Destination name (e.g., "antalya", "bodrum", "istanbul")
Returns:
[
{
"regionId": 34,
"subRegionId": 0,
"type": 0,
"title": "Antalya"
}
]
2. list_hotels
List hotels for a specific region.
Parameters:
regionId(number): Region ID from search_destinationsubRegionId(number, optional): Sub-region ID (default: 0)type(number, optional): Type (default: 0)checkinDate(string): Check-in date (YYYY-MM-DD)checkoutDate(string): Check-out date (YYYY-MM-DD)adultCount(number, optional): Number of adults (default: 2)childCount(number, optional): Number of children (default: 0)childAges(array, optional): Ages of children (default: [])pageNumber(number, optional): Page number (default: 1)pageSize(number, optional): Hotels per page (default: 20)
Returns:
{
"totalCount": 155,
"currentPage": 1,
"pageSize": 20,
"showingCount": 20,
"hotels": [
{
"name": "Hotel Name",
"star": 5,
"score": 8.9,
"scoreText": "Harika",
"reviewCount": 150,
"location": "Kemer, Antalya",
"price": 10500,
"discountRate": 30,
"accommodation": "Her Şey Dahil",
"campaignName": "Son Dakika %30 İndirim",
"properties": ["Aquapark", "Spa", "Denize Sıfır"],
"isFreeCancellation": true,
"image": "https://cdn.tatilsepeti.com/...",
"link": "https://www.tatilsepeti.com/hotel-url"
}
]
}
Example Workflow
-
Search for destination:
User: "Antalya'da otel bul" → search_destination(query: "antalya") → Returns: regionId: 34 -
List hotels:
→ list_hotels( regionId: 34, checkinDate: "2025-12-24", checkoutDate: "2025-12-27", adultCount: 2 ) → Returns: 20 hotels with details
Features Included
- Static API token authentication
- Query string generation for hotel links
- Date formatting (YYYY-MM-DD → DD.MM.YYYY)
- Rich hotel details (properties, campaigns, reviews)
- Pagination support
- Environment variable configuration
Development
# Install dependencies
npm install
# Run MCP server
npm start
Architecture
┌─────────────────┐
│ Claude/Client │
└────────┬────────┘
│ MCP Protocol
│
┌────────▼────────┐
│ MCP Server │
│ (mcp.js) │
└────────┬────────┘
│
│ OAuth2 + REST
│
┌────────▼────────┐
│ Tatilsepeti API │
└─────────────────┘
License
MIT
Quick Setup
Installation guide for this server
Install Package (if required)
npx @modelcontextprotocol/server-hotel-mcp
Cursor configuration (mcp.json)
{
"mcpServers": {
"tsepeti-hotel-mcp": {
"command": "npx",
"args": [
"tsepeti-hotel-mcp"
]
}
}
}