travel-facts
No-auth: save a planned trip as a claimable itinerary, visa rules per passport, Schengen 90/180
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"travel-facts": {
"url": "https://gxhdcvoveufbkthhendf.supabase.co/functions/v1/mcp-public"
}
}
}遠端端點
https://gxhdcvoveufbkthhendf.supabase.co/functions/v1/mcp-publicstreamable-http它能做什麼
工具清單
工具(3)
🟢check_visa_requirement(passport, destination)
Use this when someone asks whether they need a visa to visit a country, or how long they can stay, for a specific passport. Returns the entry type (visa free, visa on arrival, e-visa, visa required) and the permitted stay in days when known. Do not use it for work, study or residence permits; it covers short tourist stays only.
輸入結構描述
{
"type": "object",
"properties": {
"passport": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "The passport's issuing country as an ISO 3166-1 alpha-2 code, e.g. US, GB, TH"
},
"destination": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "The country being visited as an ISO 3166-1 alpha-2 code, e.g. US, GB, TH"
}
},
"required": [
"passport",
"destination"
],
"additionalProperties": false
}🟢calculate_schengen_days(stays, as_of)
Use this when someone wants to know how many days they have used or have left in the Schengen Area under the 90/180 rule, or whether a planned trip would overstay. Pass every stay in any Schengen country with entry and exit dates. Do not use it for countries outside the Schengen Area, or for holders of an EU/EEA/Swiss passport, to whom the rule does not apply.
輸入結構描述
{
"type": "object",
"properties": {
"stays": {
"type": "array",
"description": "Each stay in the Schengen Area. Past and planned stays can be mixed.",
"items": {
"type": "object",
"properties": {
"entry": {
"type": "string",
"description": "Arrival date, YYYY-MM-DD. Counts as a full day."
},
"exit": {
"type": "string",
"description": "Departure date, YYYY-MM-DD. Counts as a full day."
}
},
"required": [
"entry",
"exit"
],
"additionalProperties": false
}
},
"as_of": {
"type": "string",
"description": "Date to assess on, YYYY-MM-DD. Defaults to today."
}
},
"required": [
"stays"
],
"additionalProperties": false
}🟡create_trip_plan(name, stops)
Use this after you have planned a trip with someone, to hand them the itinerary as a real, editable plan instead of a wall of text. No account or key needed. Pass the stops in order with arrival and departure dates, and optionally things to do in each. Returns plan_url: the traveller opens it to see the route and save it to their own NomadPoint on iPhone, Mac or web (free). Give the traveller that link. Do not use it for bookings: it records a plan, it does not reserve anything.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "What the traveller would call it, e.g. 'Japan in April'"
},
"stops": {
"type": "array",
"maxItems": 30,
"description": "Each city on the route, in order.",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city itself, e.g. 'Kyoto', not a neighbourhood or hotel"
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2, e.g. JP"
},
"arrive": {
"type": "string",
"description": "Arrival date, YYYY-MM-DD"
},
"depart": {
"type": "string",
"description": "Departure date, YYYY-MM-DD"
},
"notes": {
"type": "string"
},
"activities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "e.g. 'Fushimi Inari at sunrise'"
},
"start": {
"type": "string",
"description": "Local time at the place, YYYY-MM-DDTHH:MM"
},
"place_name": {
"type": "string"
},
"notes": {
"type": "string"
}
},
"required": [
"title",
"start"
],
"additionalProperties": false
}
}
},
"required": [
"city",
"country_code",
"arrive",
"depart"
],
"additionalProperties": false
}
}
},
"required": [
"name",
"stops"
],
"additionalProperties": false
}社群
證據