Authentication
Preferred header: Authorization: Bearer <TITAN_API_KEY>. Alternative: X-API-KEY.
Model Context Protocol
Hospitality intelligence for AI agents. Connect securely to read-only demand, competitor rate, event, holiday, and rate opportunity tools.
Quick start
Use a Titan API key provided for your account. Keep the key inside a trusted agent runtime or backend service, never in browser-side code.
{
"mcpServers": {
"titan": {
"url": "https://mcp.project-titan.com/mcp",
"headers": {
"Authorization": "Bearer ${TITAN_API_KEY}",
"X-MCP-Client-ID": "client-agent"
}
}
}
}
Preferred header: Authorization: Bearer <TITAN_API_KEY>. Alternative: X-API-KEY.
Business tools can omit tenant_id. Titan defaults it to the account attached to the API key.
Use MCP JSON-RPC over HTTPS. Responses are returned as text/event-stream.
Protocol smoke tests
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {
"name": "client-agent",
"version": "1.0.0"
}
}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "whoami",
"arguments": {}
}
}'
Tool catalog
whoamiReturns the authenticated tenant context for the current API key.
list_destinationsLists destination ids authorized for the current API key.
list_propertiesLists own and authorized property ids for rate and opportunity tools.
get_revenue_manager_contextFirst-call tool for revenue-manager conversations.
get_destination_intelligencePrimary tool for destination, market, apartment/STR, demand, event, holiday, pickup, occupancy, compression, pricing, and broad revenue-manager questions.
get_market_briefingBackward-compatible briefing that uses the same destination intelligence aggregation for broad market questions.
get_pricing_opportunitiesReturns date-level revenue-management actions for the authenticated property.
get_competitor_insightsCombines current competitor rates with recent competitor rate movers.
get_demand_driversExplains demand by combining destination demand scores with events and holidays.
search_competitor_ratesSearches hotel competitor rates for a destination, property, or comp set over a stay window.
get_destination_eventsReturns events, holidays, and other demand drivers for a destination.
explain_rate_opportunityExplains whether a property should increase, decrease, or hold rates over a date range.
Examples
Start with get_revenue_manager_context for natural revenue-manager questions. Low-level discovery tools remain available for drilldown. Explicit tenant_id remains supported but is optional.
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_revenue_manager_context",
"arguments": {}
}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "get_destination_intelligence",
"arguments": {
"date_range_preset": "next_week",
"question": "What should I watch in my destination next week?"
}
}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "get_pricing_opportunities",
"arguments": {
"date_range_preset": "next_30_days",
"strategy": "balanced"
}
}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_competitor_insights",
"arguments": {
"observed_date_range_preset": "previous_7_days",
"stay_date_range_preset": "next_30_days",
"length_of_stay": 1,
"adults": 2,
"currency": "EUR"
}
}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 8,
"method": "tools/call",
"params": {
"name": "get_destination_intelligence",
"arguments": {
"start_date": "2026-06-08",
"end_date": "2026-06-14",
"property_type": "apartments",
"question": "Is there demand next week on apartments?"
}
}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 9,
"method": "tools/call",
"params": {
"name": "get_destination_intelligence",
"arguments": {
"start_date": "2026-06-08",
"end_date": "2026-06-14",
"question": "Can you break down demand by property type?"
}
}
}'
curl -i https://mcp.project-titan.com/mcp \
-H "Authorization: Bearer <TITAN_API_KEY>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 10,
"method": "tools/call",
"params": {
"name": "get_demand_drivers",
"arguments": {
"date_range_preset": "next_14_days"
}
}
}'
Security and limits
The API key account is the default tenant. Explicit tenant_id values must match it. Hotel and destination access is checked before data is returned.
Titan MCP v1 exposes read-only tools only. No write, update, or delete actions are available.
Call get_revenue_manager_context once, reuse the default destination/property context, and route destination, market, apartment, STR, competitor, event, holiday, pickup, weak-date, high-demand, and pricing questions to get_destination_intelligence. Do not report missing STR data until this tool has checked fallback Titan signals.
The default maximum date range is 90 days. Split larger analysis windows into smaller calls.
The default rate limit is 60 requests per minute per tenant and client partition.
Troubleshooting
| Status | Meaning | Action |
|---|---|---|
401 |
Missing or invalid Titan MCP API key. | Check the auth header and API key status. |
403 |
The client or tenant is not allowed. | Call whoami, then check X-MCP-Client-ID and tenant access. |
405 |
The endpoint was called with the wrong HTTP method. | Use POST for MCP JSON-RPC calls. |
429 |
Rate limit exceeded. | Wait and retry with backoff. |