Authentication
Preferred header: Authorization: Bearer <TITAN_API_KEY>. Alternative: X-API-KEY.
Model Context Protocol
Titan MCP exposes read-only market demand, competitor rate, events, holiday, and rate opportunity tools over a secure HTTP MCP endpoint.
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.
Every tool requires tenant_id. It must match 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": {}
}'
Tool catalog
search_competitor_ratesSearches hotel competitor rates for a destination, property, or comp set over a stay window.
get_market_demandReturns daily or weekly market demand signals for a tenant-owned destination.
get_destination_eventsReturns events, holidays, and other demand drivers for a destination.
get_short_term_rental_marketReturns short-term-rental market intelligence when persisted STR data is available.
compare_hotel_vs_str_demandCompares hotel demand signals with STR demand signals for a tenant-owned destination.
explain_rate_opportunityExplains whether a property should increase, decrease, or hold rates over a date range.
Examples
Replace placeholders with the tenant, destination, and property ids provided for your Titan account.
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": "get_market_demand",
"arguments": {
"tenant_id": <TENANT_ID>,
"destination_id": <DESTINATION_ID>,
"start_date": "2026-06-01",
"end_date": "2026-06-30",
"granularity": "daily"
}
}
}'
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": "search_competitor_rates",
"arguments": {
"tenant_id": <TENANT_ID>,
"property_id": null,
"destination_id": <DESTINATION_ID>,
"check_in": "2026-06-12",
"check_out": "2026-06-15",
"adults": 2,
"children": null,
"currency": "EUR",
"competitor_ids": null
}
}
}'
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": "explain_rate_opportunity",
"arguments": {
"tenant_id": <TENANT_ID>,
"property_id": <PROPERTY_ID>,
"start_date": "2026-06-01",
"end_date": "2026-06-30",
"include_competitors": true,
"include_events": true,
"include_str_market": true
}
}
}'
Security and limits
The API key account must match tenant_id. 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.
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. | 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. |