Travala Travel MCP
Travala Travel MCP is the first end-to-end agentic AI travel protocol. It lets AI/ MCP clients search live hotel inventory on 2.2M+ properties, compare room packages and complete bookings, with payment settled on-chain in USDC on the Base network via x402 protocol. OAuth-secured; booking & cancellation are identity- & OTP-protected. Developers earn rewards on bookings driven through their agents.
README
Travala MCP
MCP server for hotel search and booking via Travala.com. Enables AI agents to search hotels, compare room packages, and complete bookings — including payment — through natural language.
Tools
travala_search_hotel
Search for hotels by location and dates.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
location |
string | ✓ | City, region, or hotel name (e.g. "Paris", "Bali") |
checkIn |
string | ✓ | Check-in date in YYYY-MM-DD format |
checkOut |
string | ✓ | Check-out date in YYYY-MM-DD format |
rooms |
string[] | ✓ | Room occupancy strings (e.g. ["2"] = 1 room, 2 adults) |
lat / lng |
number | — | Coordinates for more precise results |
minPrice / maxPrice |
number | — | Price range per night in USD |
filters |
string[] | — | all_inclusive, free_breakfast, swimming_pool, ocean_view |
response_format |
string | — | markdown (default) or json |
Returns: List of hotels with name, star rating, price, amenities, and a sessionId for subsequent calls.
travala_search_package
Get available room types and rate plans for a specific hotel.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
hotelId |
string | ✓ | Hotel ID from travala_search_hotel result |
sessionId |
string | — | Session ID from the same search flow |
checkIn / checkOut |
string | — | Dates (if not carried from session) |
rooms |
string[] | — | Room occupancy (if not carried from session) |
filters |
string[] | — | Same filter options as hotel search |
response_format |
string | — | markdown (default) or json |
Returns: Room types, rate plans, meal inclusions, refund policies, and a packageId for booking.
travala_book
Book a hotel package and initiate payment.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
packageId |
string | ✓ | Package ID from travala_search_package |
sessionId |
string | ✓ | Session ID from travala_search_hotel |
customer.firstName |
string | ✓ | Guest first name |
customer.lastName |
string | ✓ | Guest last name |
customer.email |
string | ✓ | Guest email |
customer.phone |
string | ✓ | Guest phone with country code (e.g. +1...) |
Returns: Booking confirmation with booking ID and payment instructions (x402 payment protocol).
travala_book_status
Recovery lookup for a travala_book call that errored, timed out, or returned a missing/garbled response. Use this before retrying — the booking may have already succeeded server-side, and a blind retry would double-charge the user.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
packageId |
string | ✓ | Same packageId sent to the failed travala_book |
sessionId |
string | ✓ | Same sessionId sent to the failed travala_book |
Returns: An interpretation field and httpStatus that tell the agent how to proceed:
interpretation |
httpStatus |
Meaning |
|---|---|---|
completed |
200 | Booking succeeded. body contains the confirmation — present as success, do NOT retry payment. |
in_progress |
202 | Server still settling. Wait body.retry_after_ms, then poll again (cap ~6 polls). |
not_found |
404 | Nothing happened server-side. Safe to retry travala_book. |
invalid_request |
400 | Check packageId/sessionId; session may have expired. |
server_error |
5xx | Recovery endpoint down. Tell user to check email for confirmation; do not retry. |
travala_manage_bookings
Look up details of an existing booking.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
bookingId |
string | ✓ | Booking ID (e.g. MN5V9DWQ) |
lastName |
string | ✓ | Last name used when booking |
Returns: Booking status, hotel name, room, check-in/check-out dates, price, cancellation policy, and confirmation link.
travala_cancel_booking
Cancel an existing booking.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
bookingId |
string | ✓ | Booking ID |
lastName |
string | ✓ | Last name on the booking |
email |
string | ✓ | Email address on the booking |
Returns: Cancellation status, refund amount, cancellation fee, and policy summary.
Agent Registration & Rewards
Every travala_book call sends an agentId and rewardWallet to attribute the booking and route cbBTC giveback to your agent.
The skill file skills/travala-booking-expert/SKILL.md ships with both values empty by default. To earn rewards under your own agent identity, open that file and fill in the two lines with your own values:
agentId = "your-agentId-from-8004scan"
rewardWallet = "0xYourEvmAddressOnBase"
agentId— self-register at 8004scan.io/agents to get an ID via the ERC-8004 registry. Travala does not issue these.rewardWallet— any EVM address on Base (EOA, multi-sig, treasury contract). Does not have to be the wallet that pays for the booking.- Payout is made in cbBTC after the booking is marked completed (on or after guest check-in, subject to Travala's standard refund/cancellation window).
Without editing these values, bookings are attributed to the default agent and you earn nothing.
Typical flow
travala_search_hotel → travala_search_package → travala_book
↓
travala_manage_bookings
travala_cancel_booking
(on book failure/timeout) → travala_book_status
Setup
Step 1 — Add Travala MCP
Claude Desktop
- Open Claude Desktop → Customize → Connectors
- Click + → Add custom connector
- Fill in the popup:
- Name:
Travala MCP - Remote MCP Server URL:
https://travel-mcp.travala.com/mcp
- Name:
- Click Add — done.
Claude Code
Claude Code supports remote MCP servers natively. Run:
claude mcp add --transport http travala-mcp https://travel-mcp.travala.com/mcp
Or add manually to ~/.claude.json (user scope) or .mcp.json (project scope):
{
"mcpServers": {
"travala-mcp": {
"type": "http",
"url": "https://travel-mcp.travala.com/mcp"
}
}
}
Verify with claude mcp list.
Step 2 — Install Coinbase Agentic Wallet MCP (required for payment)
travala_book returns an HTTP 402 with x402 payment details. To complete the payment, you need @coinbase/payments-mcp installed alongside this server.
Prerequisite — Install Node.js
The npx command ships with Node.js. If you don't already have it, install Node.js (which includes npm and npx) before running the command below:
- macOS / Linux / Windows: download the LTS installer from nodejs.org and follow the prompts.
- macOS (Homebrew):
brew install node - Verify installation: open a new terminal and run
node -vandnpx -v— both should print a version number.
Once Node.js is installed, run:
npx @coinbase/payments-mcp
When prompted, select your client (Claude for Desktop, Claude Code for CLI). The installer auto-configures the MCP entry. Restart your client after installation.
Step 3 — Install the booking skill
The travala-booking-expert skill ships rules and workflow logic. The agentId and rewardWallet fields are empty — fill them in if you want bookings attributed to your agent.
Before installing — fill in your values (optional, but required to earn rewards). Open
skills/travala-booking-expert/SKILL.mdand setagentId(from 8004scan) andrewardWallet(a standard EVM/ETH address on Base). See Agent Registration & Rewards above for the exact format.
Claude Desktop
Claude Desktop supports custom skills via .zip upload.
1. Enable Skills
- Open Claude Desktop → Settings
- Go to Capabilities (or Features) and toggle Skills on if not already enabled
2. Zip the skill folder
The zip must keep the folder name at the top level:
travala-booking-expert.zip
└── travala-booking-expert/
├── SKILL.md (required — metadata + instructions)
└── references/ (optional — auto-loaded on demand)
cd skills && zip -r travala-booking-expert.zip travala-booking-expert/
3. Upload
- Customize → Skills
- Click + → Create Skill → Upload a Skill
- Select
travala-booking-expert.zip - Toggle the skill on in the list
Claude Desktop reads the skill description and auto-activates it when it matches the user's intent (e.g. "find me a hotel in Tokyo").
Claude Code
Copy the skill folder into your skills directory:
# Project-scoped (only this project)
cp -r skills/travala-booking-expert .claude/skills/
# OR user-scoped (all projects)
cp -r skills/travala-booking-expert ~/.claude/skills/
Claude Code auto-loads skills on startup. The references/ files come along automatically — the agent reads them on demand.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。