10Life Travel
Compare 10Life single-trip travel plans. Stateless POST. GET returns 405.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"travel": {
"url": "https://mcp.10life.com/mcp"
}
}
}Remote endpoints
https://mcp.10life.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
π’describe_travel_decoder
List single-trip destinations, insurers, feature filters, score floors, and sort orders. Call this before list_travel_plans. Plans from later calls include purchase_url for the user who wants to buy. Comparison data is not a personal recommendation or a policy.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}π’list_travel_plans(callReason, priorRecommendationId, regionCodes, durationDays, startDate, ...)
Return at most 5 single-trip travel plans for one destination, trip length, and traveller mix, with scores, cover limits, premium, and purchase_url. There is no next page. Figures are indicative. The product page is the authority for price and cover.
Input Schema
{
"type": "object",
"properties": {
"callReason": {
"type": "string",
"maxLength": 400,
"description": "Why this call is needed, in one or two sentences and in the user's language. Include the trip and what they want to optimize when they said so (price, medical cover, cancellation, belongings, instant purchase, family, senior, or an activity). Do not include the user's name, phone, email, identity document, or a paste of the chat."
},
"priorRecommendationId": {
"type": "string",
"description": "recommendationId from an earlier list_travel_plans response, when this call continues that comparison."
},
"regionCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Destination codes from describe_travel_decoder. Default [\"japan\"]. Same role as geo_region[] on the comparison page."
},
"durationDays": {
"type": "number",
"description": "Trip length in days. Required when dates are omitted. At least 1."
},
"startDate": {
"type": "string",
"description": "Trip start YYYY-MM-DD. Default is today before 23:00 Hong Kong time, otherwise tomorrow."
},
"endDate": {
"type": "string",
"description": "Trip end YYYY-MM-DD. Default is start plus durationDays minus one day."
},
"travellers": {
"type": "object",
"description": "Traveller counts for this trip.",
"properties": {
"adults": {
"type": "number",
"description": "Adult travellers. Default 1."
},
"children": {
"type": "number",
"description": "Child travellers. Default 0."
},
"elderly": {
"type": "number",
"description": "Elderly travellers. Default 0."
},
"elderlyAges": {
"type": "array",
"items": {
"type": "number"
},
"description": "One age per elderly traveller, used only to pick a premium band."
},
"isFamilyPlan": {
"type": "boolean",
"description": "Use a family premium when the plan has one."
}
},
"additionalProperties": false
},
"premiumMin": {
"type": "number",
"description": "Minimum payable premium in HKD, after discount."
},
"premiumMax": {
"type": "number",
"description": "Maximum payable premium in HKD, after discount."
},
"tenlifeScoreMin": {
"type": "number",
"description": "Minimum 10Life score before destination weighting. Use 8, 7, or 6. Omit or 0 for any score."
},
"mobilePhoneProtection": {
"type": "boolean",
"description": "Keep only plans with ζζι»θ©±δΏι."
},
"followUpPhysiotherapy": {
"type": "boolean",
"description": "Keep only plans with η©ηζ²»ηθ¦θ¨Ί."
},
"carRentalExcess": {
"type": "boolean",
"description": "Keep only plans with η§θ»θͺδ»ι‘."
},
"extremeSportsMedical": {
"type": "boolean",
"description": "Keep only plans with ζ₯ι€ιει«ηδΏι."
},
"lossOfTravelDocument": {
"type": "boolean",
"description": "Keep only plans with ιΊε€±ζ
θ‘θδ»Ά."
},
"insurerCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Insurer codes from describe_travel_decoder. Case-insensitive."
},
"sort": {
"type": "string",
"enum": [
"overall_score",
"instant_purchase_first",
"premium_by_plan",
"medical_emergency_score",
"accident_score",
"inconv_score",
"property_score"
],
"description": "Sort order. Default instant_purchase_first (ε³ζζδΏεͺε
). overall_score is 10Lifeθ©ε. premium_by_plan is δΏθ²» (δ½θ³ι«). medical_emergency_score is ι«ηεη·ζ₯ζ―ζ΄θ©ε. accident_score is εδΊΊζε€θ©ε. inconv_score is ζ
η¨ει»θ©ε. property_score is ε人貑η©θ©ε."
},
"locale": {
"type": "string",
"description": "zh-Hant-HK (default) or en."
},
"type": {
"type": "string",
"description": "Must be single. Annual travel is rejected."
}
},
"required": [
"callReason",
"durationDays"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"purchase_url": {
"description": "Link out for the user who wants to buy or read the plan. 10Life product page when the plan can be bought there, otherwise the insurer purchase link. Do not substitute the homepage or product_website."
},
"purchase_channel": {
"description": "\"10life\" or \"insurer_direct\"."
},
"purchase_link_template": {
"description": "10Life product URL pattern. Present when the plan is quoted on 10Life."
},
"decoder_cta_link": {
"description": "Product deep link when the plan is quoted on 10Life. Otherwise the insurer promotion link, or null."
},
"instant_purchase": {
"type": "boolean",
"description": "True when the plan can be bought immediately on 10Life."
},
"plan_code": {
"type": "string"
},
"plan_name": {
"type": "string"
},
"overall_score": {
"description": "10Life score for the selected destinations."
},
"totalPremium": {
"description": "Payable premium for this trip, after discount when one applies."
}
}
}
},
"meta": {
"type": "object"
}
}
}π’get_travel_plan(callReason, priorRecommendationId, regionCodes, durationDays, startDate, ...)
Return one single-trip plan under the same filters as list_travel_plans, including purchase_url. A plan that does not match the filters is not found. Figures are indicative.
Input Schema
{
"type": "object",
"properties": {
"callReason": {
"type": "string",
"maxLength": 400,
"description": "Why this call is needed, in one or two sentences and in the user's language. Include the trip and what they want to optimize when they said so (price, medical cover, cancellation, belongings, instant purchase, family, senior, or an activity). Do not include the user's name, phone, email, identity document, or a paste of the chat."
},
"priorRecommendationId": {
"type": "string",
"description": "recommendationId from an earlier list_travel_plans response, when this call continues that comparison."
},
"regionCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Destination codes from describe_travel_decoder. Default [\"japan\"]. Same role as geo_region[] on the comparison page."
},
"durationDays": {
"type": "number",
"description": "Trip length in days. Required when dates are omitted. At least 1."
},
"startDate": {
"type": "string",
"description": "Trip start YYYY-MM-DD. Default is today before 23:00 Hong Kong time, otherwise tomorrow."
},
"endDate": {
"type": "string",
"description": "Trip end YYYY-MM-DD. Default is start plus durationDays minus one day."
},
"travellers": {
"type": "object",
"description": "Traveller counts for this trip.",
"properties": {
"adults": {
"type": "number",
"description": "Adult travellers. Default 1."
},
"children": {
"type": "number",
"description": "Child travellers. Default 0."
},
"elderly": {
"type": "number",
"description": "Elderly travellers. Default 0."
},
"elderlyAges": {
"type": "array",
"items": {
"type": "number"
},
"description": "One age per elderly traveller, used only to pick a premium band."
},
"isFamilyPlan": {
"type": "boolean",
"description": "Use a family premium when the plan has one."
}
},
"additionalProperties": false
},
"premiumMin": {
"type": "number",
"description": "Minimum payable premium in HKD, after discount."
},
"premiumMax": {
"type": "number",
"description": "Maximum payable premium in HKD, after discount."
},
"tenlifeScoreMin": {
"type": "number",
"description": "Minimum 10Life score before destination weighting. Use 8, 7, or 6. Omit or 0 for any score."
},
"mobilePhoneProtection": {
"type": "boolean",
"description": "Keep only plans with ζζι»θ©±δΏι."
},
"followUpPhysiotherapy": {
"type": "boolean",
"description": "Keep only plans with η©ηζ²»ηθ¦θ¨Ί."
},
"carRentalExcess": {
"type": "boolean",
"description": "Keep only plans with η§θ»θͺδ»ι‘."
},
"extremeSportsMedical": {
"type": "boolean",
"description": "Keep only plans with ζ₯ι€ιει«ηδΏι."
},
"lossOfTravelDocument": {
"type": "boolean",
"description": "Keep only plans with ιΊε€±ζ
θ‘θδ»Ά."
},
"insurerCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Insurer codes from describe_travel_decoder. Case-insensitive."
},
"sort": {
"type": "string",
"enum": [
"overall_score",
"instant_purchase_first",
"premium_by_plan",
"medical_emergency_score",
"accident_score",
"inconv_score",
"property_score"
],
"description": "Sort order. Default instant_purchase_first (ε³ζζδΏεͺε
). overall_score is 10Lifeθ©ε. premium_by_plan is δΏθ²» (δ½θ³ι«). medical_emergency_score is ι«ηεη·ζ₯ζ―ζ΄θ©ε. accident_score is εδΊΊζε€θ©ε. inconv_score is ζ
η¨ει»θ©ε. property_score is ε人貑η©θ©ε."
},
"locale": {
"type": "string",
"description": "zh-Hant-HK (default) or en."
},
"type": {
"type": "string",
"description": "Must be single. Annual travel is rejected."
},
"planCode": {
"type": "string",
"description": "plan_code from a previous list_travel_plans result."
}
},
"required": [
"callReason",
"planCode",
"durationDays"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"plan": {
"type": "object",
"properties": {
"purchase_url": {
"description": "Link out for the user who wants to buy or read the plan. 10Life product page when the plan can be bought there, otherwise the insurer purchase link. Do not substitute the homepage or product_website."
},
"purchase_channel": {
"description": "\"10life\" or \"insurer_direct\"."
},
"purchase_link_template": {
"description": "10Life product URL pattern. Present when the plan is quoted on 10Life."
},
"decoder_cta_link": {
"description": "Product deep link when the plan is quoted on 10Life. Otherwise the insurer promotion link, or null."
},
"instant_purchase": {
"type": "boolean",
"description": "True when the plan can be bought immediately on 10Life."
},
"plan_code": {
"type": "string"
},
"plan_name": {
"type": "string"
},
"overall_score": {
"description": "10Life score for the selected destinations."
},
"totalPremium": {
"description": "Payable premium for this trip, after discount when one applies."
}
}
},
"meta": {
"type": "object"
}
}
}Community
Evidence