WonderKit Discover
Read-only city guides and public itineraries for family and group trips.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"discover": {
"url": "https://wonderkit.app/mcp"
}
}
}远程端点
https://wonderkit.app/mcpstreamable-http它能做什么
工具清单
工具(7)
🟢list_cities
Use this when someone asks which cities WonderKit covers or needs a valid city key. Lists cities that have a published city guide of real things to do, with their keys. Reads public guides only; it cannot plan, save, or look up a private trip.
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"cities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
},
"activityCount": {
"type": "number"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"truncated": {
"type": "boolean"
},
"found": {
"description": "false when the lookup did not resolve",
"type": "boolean"
},
"reason": {
"description": "unknown_city, region_not_city, no_city_guide, no_itineraries_for_city, ambiguous_city, no_published_guide, no_matches, unknown_itinerary, lookup_failed, …",
"type": "string"
},
"matches": {
"description": "Candidate cities when the name is ambiguous",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"suggestions": {
"description": "Near-miss spellings, or same-name cities elsewhere, when the name is unknown",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"region": {
"description": "The state, country, or area the city ask was read as",
"type": "string"
},
"nearest": {
"description": "Covered cities in or near the asked-for area. Not the city that was asked for",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"why": {
"type": "string",
"description": "Why this city is offered, e.g. \"in Vermont\" or \"near Wyoming\""
},
"url": {
"description": "The WonderKit page for this city",
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey",
"why"
],
"additionalProperties": {}
}
},
"planUrl": {
"description": "Guest planner link for the destination as asked; it plans any city",
"type": "string",
"format": "uri"
},
"planDescription": {
"description": "One line saying what planUrl opens",
"type": "string"
},
"itinerariesUrl": {
"description": "WonderKit itineraries for this city",
"type": "string",
"format": "uri"
},
"hint": {
"type": "string"
},
"note": {
"type": "string",
"description": "Read-only reminder; not user content"
}
},
"required": [
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢find_activities(city, audience, query)
Use this when someone asks what to do in one city: weekend ideas, events, food, or kid-friendly, date-night, or group activities. Returns published picks from the WonderKit city guide and the page URL. Returns single activities, not multi-day plans, and cannot see anyone's own trips.
输入模式
{
"type": "object",
"properties": {
"city": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "City name or WonderKit city key, such as \"Paris\" or \"paris-france\"."
},
"audience": {
"type": "string",
"enum": [
"families",
"friends",
"couples"
],
"description": "Who the plan is for: families, friends, or couples."
},
"query": {
"description": "Optional words to match against activity titles and descriptions, such as \"museums\" or \"dinner\". Plurals match singulars.",
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"city"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"found": {
"description": "false when the lookup did not resolve",
"type": "boolean"
},
"reason": {
"description": "unknown_city, region_not_city, no_city_guide, no_itineraries_for_city, ambiguous_city, no_published_guide, no_matches, unknown_itinerary, lookup_failed, …",
"type": "string"
},
"matches": {
"description": "Candidate cities when the name is ambiguous",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"suggestions": {
"description": "Near-miss spellings, or same-name cities elsewhere, when the name is unknown",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"region": {
"description": "The state, country, or area the city ask was read as",
"type": "string"
},
"nearest": {
"description": "Covered cities in or near the asked-for area. Not the city that was asked for",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"why": {
"type": "string",
"description": "Why this city is offered, e.g. \"in Vermont\" or \"near Wyoming\""
},
"url": {
"description": "The WonderKit page for this city",
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey",
"why"
],
"additionalProperties": {}
}
},
"planUrl": {
"description": "Guest planner link for the destination as asked; it plans any city",
"type": "string",
"format": "uri"
},
"planDescription": {
"description": "One line saying what planUrl opens",
"type": "string"
},
"itinerariesUrl": {
"description": "WonderKit itineraries for this city",
"type": "string",
"format": "uri"
},
"hint": {
"type": "string"
},
"note": {
"type": "string",
"description": "Read-only reminder; not user content"
},
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"audience": {
"type": "string"
},
"pageUrl": {
"description": "WonderKit page to cite",
"type": "string",
"format": "uri"
},
"activities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string"
},
"section": {
"type": "string"
},
"location": {
"type": "string"
},
"estimatedCost": {
"type": "string"
},
"estimatedDuration": {
"type": "string"
},
"bestFor": {
"type": "string"
},
"venue": {
"type": "string"
}
},
"required": [
"title"
],
"additionalProperties": {}
}
},
"truncated": {
"type": "boolean"
}
},
"required": [
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_itineraries(city, audience)
Use this when someone wants to browse WonderKit's public multi-day itineraries and place guides, for all cities or one city and audience. Plans that are in season this month come first. Each summary has dayCount (days or themed sections) and stopCount (anchors plus backups; before 2026-09-28 stopCount held the day count). Browses by city and audience only; it does not rank by a free-text description. Does not book or edit a trip.
输入模式
{
"type": "object",
"properties": {
"city": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "City name or WonderKit city key, such as \"Paris\" or \"paris-france\"."
},
"audience": {
"type": "string",
"enum": [
"families",
"friends",
"couples"
],
"description": "Who the plan is for: families, friends, or couples."
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"found": {
"description": "false when the lookup did not resolve",
"type": "boolean"
},
"reason": {
"description": "unknown_city, region_not_city, no_city_guide, no_itineraries_for_city, ambiguous_city, no_published_guide, no_matches, unknown_itinerary, lookup_failed, …",
"type": "string"
},
"matches": {
"description": "Candidate cities when the name is ambiguous",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"suggestions": {
"description": "Near-miss spellings, or same-name cities elsewhere, when the name is unknown",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"region": {
"description": "The state, country, or area the city ask was read as",
"type": "string"
},
"nearest": {
"description": "Covered cities in or near the asked-for area. Not the city that was asked for",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"why": {
"type": "string",
"description": "Why this city is offered, e.g. \"in Vermont\" or \"near Wyoming\""
},
"url": {
"description": "The WonderKit page for this city",
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey",
"why"
],
"additionalProperties": {}
}
},
"planUrl": {
"description": "Guest planner link for the destination as asked; it plans any city",
"type": "string",
"format": "uri"
},
"planDescription": {
"description": "One line saying what planUrl opens",
"type": "string"
},
"itinerariesUrl": {
"description": "WonderKit itineraries for this city",
"type": "string",
"format": "uri"
},
"hint": {
"type": "string"
},
"note": {
"type": "string",
"description": "Read-only reminder; not user content"
},
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"itineraries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"lede": {
"description": "One-line promise of the plan, as its page leads with",
"type": "string"
},
"audience": {
"type": "string"
},
"shape": {
"type": "string"
},
"dayCount": {
"type": "number",
"description": "Days, or themed sections on a places-guide"
},
"stopCount": {
"type": "number",
"description": "Named stops (anchors plus backups) across the plan: the \"N stops\" the page shows. Not the day count; use dayCount for that. Until 2026-09-28 this field wrongly carried the day count, so a client that cached it as days should re-read"
},
"url": {
"type": "string",
"format": "uri"
},
"imageUrl": {
"description": "Hero photo of the plan",
"type": "string",
"format": "uri"
},
"season": {
"type": "object",
"properties": {
"seasons": {
"type": "array",
"items": {
"type": "string"
}
},
"peakMonths": {
"description": "1-12, when the page has a real peak",
"type": "array",
"items": {
"type": "number"
}
},
"window": {
"description": "Human-readable best window, e.g. \"Peak colour late Sep – mid Oct\"",
"type": "string"
}
},
"required": [
"seasons"
],
"additionalProperties": {}
},
"inSeason": {
"description": "Whether the plan fits the month or season it was ranked for",
"type": "boolean"
},
"lastReviewed": {
"description": "Date (YYYY-MM-DD) the venues and copy were last re-checked",
"type": "string"
}
},
"required": [
"city",
"cityKey",
"slug",
"title",
"audience",
"shape",
"dayCount",
"stopCount",
"url"
],
"additionalProperties": {}
}
},
"availableAudiences": {
"type": "array",
"items": {
"type": "string"
}
},
"truncated": {
"type": "boolean"
}
},
"required": [
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢search_itineraries(query, city, audience, season, month, ...)
Use this when someone describes the trip they want, such as "romantic weekend in October", "museums with kids", or "Christmas markets", and needs matching public itineraries across cities. Ranks by the words they used, who it is for, and season fit. Pass a city to stay in one city. Do not use it to create or save a trip; it only reads published guides.
输入模式
{
"type": "object",
"properties": {
"query": {
"description": "What they want, in their words, such as \"romantic weekend\", \"museums with kids\", or \"fall foliage\". Plurals match singulars.",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "City name or WonderKit city key, such as \"Paris\" or \"paris-france\"."
},
"audience": {
"type": "string",
"enum": [
"families",
"friends",
"couples"
],
"description": "Who the plan is for: families, friends, or couples."
},
"season": {
"description": "Season they are travelling in. \"now\" means the current month. Northern-hemisphere seasons.",
"type": "string",
"enum": [
"winter",
"spring",
"summer",
"fall",
"now"
]
},
"month": {
"description": "Travel month, 1-12. Boosts plans whose peak months include it. Wins over season.",
"type": "integer",
"minimum": 1,
"maximum": 12
},
"shape": {
"description": "day-plan for a day-by-day plan, places-guide for a themed list of places.",
"type": "string",
"enum": [
"day-plan",
"places-guide"
]
},
"limit": {
"description": "How many results to return, up to 8.",
"type": "integer",
"minimum": 1,
"maximum": 8
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"found": {
"description": "false when the lookup did not resolve",
"type": "boolean"
},
"reason": {
"description": "unknown_city, region_not_city, no_city_guide, no_itineraries_for_city, ambiguous_city, no_published_guide, no_matches, unknown_itinerary, lookup_failed, …",
"type": "string"
},
"matches": {
"description": "Candidate cities when the name is ambiguous",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"suggestions": {
"description": "Near-miss spellings, or same-name cities elsewhere, when the name is unknown",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"region": {
"description": "The state, country, or area the city ask was read as",
"type": "string"
},
"nearest": {
"description": "Covered cities in or near the asked-for area. Not the city that was asked for",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"why": {
"type": "string",
"description": "Why this city is offered, e.g. \"in Vermont\" or \"near Wyoming\""
},
"url": {
"description": "The WonderKit page for this city",
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey",
"why"
],
"additionalProperties": {}
}
},
"planUrl": {
"description": "Guest planner link for the destination as asked; it plans any city",
"type": "string",
"format": "uri"
},
"planDescription": {
"description": "One line saying what planUrl opens",
"type": "string"
},
"itinerariesUrl": {
"description": "WonderKit itineraries for this city",
"type": "string",
"format": "uri"
},
"hint": {
"type": "string"
},
"note": {
"type": "string",
"description": "Read-only reminder; not user content"
},
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"itineraries": {
"description": "Best match first",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"lede": {
"description": "One-line promise of the plan, as its page leads with",
"type": "string"
},
"audience": {
"type": "string"
},
"shape": {
"type": "string"
},
"dayCount": {
"type": "number",
"description": "Days, or themed sections on a places-guide"
},
"stopCount": {
"type": "number",
"description": "Named stops (anchors plus backups) across the plan: the \"N stops\" the page shows. Not the day count; use dayCount for that. Until 2026-09-28 this field wrongly carried the day count, so a client that cached it as days should re-read"
},
"url": {
"type": "string",
"format": "uri"
},
"imageUrl": {
"description": "Hero photo of the plan",
"type": "string",
"format": "uri"
},
"season": {
"type": "object",
"properties": {
"seasons": {
"type": "array",
"items": {
"type": "string"
}
},
"peakMonths": {
"description": "1-12, when the page has a real peak",
"type": "array",
"items": {
"type": "number"
}
},
"window": {
"description": "Human-readable best window, e.g. \"Peak colour late Sep – mid Oct\"",
"type": "string"
}
},
"required": [
"seasons"
],
"additionalProperties": {}
},
"inSeason": {
"description": "Whether the plan fits the month or season it was ranked for",
"type": "boolean"
},
"lastReviewed": {
"description": "Date (YYYY-MM-DD) the venues and copy were last re-checked",
"type": "string"
}
},
"required": [
"city",
"cityKey",
"slug",
"title",
"audience",
"shape",
"dayCount",
"stopCount",
"url"
],
"additionalProperties": {}
}
},
"rankedFor": {
"description": "The month or season used for the season-fit ranking",
"type": "object",
"properties": {
"month": {
"type": "number"
},
"season": {
"type": "string"
}
},
"additionalProperties": false
},
"truncated": {
"type": "boolean"
}
},
"required": [
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_itinerary(city, slug)
Use this when someone wants the full plan for one public itinerary, by its slug: day-by-day or themed stops with real venues and map links, rainy-day and where-to-eat sections, and the best season. Returns dayCount and stopCount (anchors plus backups; before 2026-09-28 stopCount held the day count), the page URL, and planUrl, which opens the WonderKit planner prefilled from this plan. Read-only; it cannot change a plan.
输入模式
{
"type": "object",
"properties": {
"city": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "City name or WonderKit city key, such as \"Paris\" or \"paris-france\"."
},
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Itinerary slug from list_itineraries or search_itineraries, such as \"3-day-weekend-for-couples\"."
}
},
"required": [
"city",
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"found": {
"description": "false when the lookup did not resolve",
"type": "boolean"
},
"reason": {
"description": "unknown_city, region_not_city, no_city_guide, no_itineraries_for_city, ambiguous_city, no_published_guide, no_matches, unknown_itinerary, lookup_failed, …",
"type": "string"
},
"matches": {
"description": "Candidate cities when the name is ambiguous",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"suggestions": {
"description": "Near-miss spellings, or same-name cities elsewhere, when the name is unknown",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"region": {
"description": "The state, country, or area the city ask was read as",
"type": "string"
},
"nearest": {
"description": "Covered cities in or near the asked-for area. Not the city that was asked for",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"why": {
"type": "string",
"description": "Why this city is offered, e.g. \"in Vermont\" or \"near Wyoming\""
},
"url": {
"description": "The WonderKit page for this city",
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey",
"why"
],
"additionalProperties": {}
}
},
"planUrl": {
"description": "Give this to the person to plan this trip: the WonderKit planner prefilled from this itinerary",
"type": "string",
"format": "uri"
},
"planDescription": {
"description": "One line saying what planUrl opens",
"type": "string"
},
"itinerariesUrl": {
"description": "WonderKit itineraries for this city",
"type": "string",
"format": "uri"
},
"hint": {
"type": "string"
},
"note": {
"type": "string",
"description": "Read-only reminder; not user content"
},
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"lede": {
"description": "One-line promise of the plan",
"type": "string"
},
"audience": {
"type": "string"
},
"shape": {
"type": "string"
},
"dayCount": {
"type": "number"
},
"stopCount": {
"description": "Named stops (anchors plus backups), not days; see dayCount. Until 2026-09-28 this carried the day count",
"type": "number"
},
"url": {
"description": "WonderKit page to cite",
"type": "string",
"format": "uri"
},
"markdownUrl": {
"description": "The same plan as Markdown",
"type": "string",
"format": "uri"
},
"imageUrl": {
"description": "Hero photo of the plan",
"type": "string",
"format": "uri"
},
"summary": {
"type": "string"
},
"season": {
"type": "object",
"properties": {
"seasons": {
"type": "array",
"items": {
"type": "string"
}
},
"peakMonths": {
"description": "1-12, when the page has a real peak",
"type": "array",
"items": {
"type": "number"
}
},
"window": {
"description": "Human-readable best window, e.g. \"Peak colour late Sep – mid Oct\"",
"type": "string"
}
},
"required": [
"seasons"
],
"additionalProperties": {}
},
"lastReviewed": {
"type": "string"
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"heading": {
"type": "string"
},
"lede": {
"type": "string"
},
"anchor": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"venue": {
"type": "string"
},
"lead": {
"description": "One-line reason to go",
"type": "string"
},
"body": {
"type": "string"
},
"mapUrl": {
"description": "Google Maps search for the venue",
"type": "string",
"format": "uri"
}
},
"required": [
"title"
],
"additionalProperties": {}
},
"backup": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"venue": {
"type": "string"
},
"lead": {
"description": "One-line reason to go",
"type": "string"
},
"body": {
"type": "string"
},
"mapUrl": {
"description": "Google Maps search for the venue",
"type": "string",
"format": "uri"
}
},
"required": [
"title"
],
"additionalProperties": {}
},
"eatRest": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"sections": {
"description": "Rainy-day backups, where to eat, and similar",
"type": "array",
"items": {
"type": "object",
"properties": {
"heading": {
"type": "string"
},
"intro": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"heading",
"items"
],
"additionalProperties": {}
}
},
"truncated": {
"type": "boolean"
}
},
"required": [
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢plan_trip_link(city, startDate, endDate, vibe, travelers, ...)
Use this when someone wants to start planning their own trip to a destination in WonderKit. Returns one guest-planner link with the city (and vibe) filled in, plus a one-line description. It creates nothing and cannot book; the person adds dates and travelers in the planner. The link is a planner, not a citable guide page.
输入模式
{
"type": "object",
"properties": {
"city": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Destination as the person said it, such as \"Lisbon\" or \"Asheville, NC\". Any city works."
},
"startDate": {
"description": "First day, YYYY-MM-DD, if they gave one.",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"endDate": {
"description": "Last day, YYYY-MM-DD, if they gave one.",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"vibe": {
"description": "The feel they want, if they said.",
"type": "string",
"enum": [
"outdoors",
"hiking",
"culture",
"food",
"romantic",
"beach",
"relaxed",
"mix",
"family"
]
},
"travelers": {
"description": "How many people are going.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"kidsAges": {
"description": "Ages of children travelling, if any.",
"maxItems": 12,
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 17
}
}
},
"required": [
"city"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Guest planner link to give the person"
},
"description": {
"type": "string",
"description": "One line saying what the link opens"
},
"notPrefilled": {
"description": "Inputs the link cannot carry",
"type": "array",
"items": {
"type": "string"
}
},
"hint": {
"type": "string"
}
},
"required": [
"url",
"description"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢continue_in_wonderkit(city, slug)
Use this when someone wants to save, share, or keep working on a plan from a public guide or itinerary. Returns the WonderKit web links for that city guide, itinerary, and the guest planner. This server cannot save or share anything itself.
输入模式
{
"type": "object",
"properties": {
"city": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "City name or WonderKit city key, such as \"Paris\" or \"paris-france\"."
},
"slug": {
"description": "Optional itinerary slug to link a specific public plan.",
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"found": {
"description": "false when the lookup did not resolve",
"type": "boolean"
},
"reason": {
"description": "unknown_city, region_not_city, no_city_guide, no_itineraries_for_city, ambiguous_city, no_published_guide, no_matches, unknown_itinerary, lookup_failed, …",
"type": "string"
},
"matches": {
"description": "Candidate cities when the name is ambiguous",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"suggestions": {
"description": "Near-miss spellings, or same-name cities elsewhere, when the name is unknown",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"discoverUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey"
],
"additionalProperties": {}
}
},
"region": {
"description": "The state, country, or area the city ask was read as",
"type": "string"
},
"nearest": {
"description": "Covered cities in or near the asked-for area. Not the city that was asked for",
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"cityKey": {
"type": "string"
},
"why": {
"type": "string",
"description": "Why this city is offered, e.g. \"in Vermont\" or \"near Wyoming\""
},
"url": {
"description": "The WonderKit page for this city",
"type": "string",
"format": "uri"
}
},
"required": [
"city",
"cityKey",
"why"
],
"additionalProperties": {}
}
},
"planUrl": {
"description": "Guest planner link for the destination as asked; it plans any city",
"type": "string",
"format": "uri"
},
"planDescription": {
"description": "One line saying what planUrl opens",
"type": "string"
},
"itinerariesUrl": {
"description": "WonderKit itineraries for this city",
"type": "string",
"format": "uri"
},
"hint": {
"type": "string"
},
"note": {
"type": "string",
"description": "Read-only reminder; not user content"
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"label",
"url"
],
"additionalProperties": false
}
},
"guideList": {
"type": "string"
}
},
"required": [
"note",
"links"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}社区
证据