Aventuro
Find travel places (sights, museums, parks, beaches) and read place cards. Read-only, no auth.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.aventuro.io/mcp"
}
}
}원격 엔드포인트
https://mcp.aventuro.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (2)
🟢find_places(q, lat, lng, radius_km, categories, ...)
Use this when the user asks for places, parks, sights, museums, beaches or things to visit in a city, region or near a point. Finds interesting places (sights, museums, parks, nature, beaches and more), ordered by number of reviews (rating_total, not output). Returns name, category, city, country, coordinates, distance, a link to the place page (url), a popularity score, a stored travel description and one verified photo with its credit (image, or null). For more about one place, call get_place with the last part of its url. Give q (a place, city or country name, optionally with a category, e.g. "valencia" or "zoo valencia"), or lat/lng of the area the user asks about, or both (q narrowed to radius_km around lat/lng). Optional filters: categories, needs, tastes, parking, setting; tags only rank matching places higher. Write each place name as a markdown link [name](url) when url is present, and show each place's url as the source link. When image is present, show image.url as a markdown image with the author credit. visit_minutes is the typical time visitors spend there, not the time to see everything. attributes gives the five needs as true (known yes) or null (unknown, never a no), and matched_needs lists which of the requested needs the place has. setting (indoor, outdoor, both or null) and parking ({free, paid}, each true or null) follow the same rule. matched_tastes and matched_tags list which of the requested tastes and tags the place hit. content_status is no_description when no travel description is stored; fallback_reason is translation_unavailable when lang differs from the requested one. With q, search_area shows the area q was read as. filter_semantics says how the filters combine.
입력 스키마
{
"type": "object",
"properties": {
"q": {
"description": "Free text: a city, country or place name, optionally with a category (\"zoo valencia\"). Required unless lat/lng are given.",
"minLength": 2,
"maxLength": 100,
"type": "string"
},
"lat": {
"description": "Latitude of the search center, decimal degrees. Required (with lng) unless q is given.",
"minimum": -90,
"maximum": 90,
"type": "number"
},
"lng": {
"description": "Longitude of the search center, decimal degrees. Required (with lat) unless q is given.",
"minimum": -180,
"maximum": 180,
"type": "number"
},
"radius_km": {
"description": "Search radius in km around lat/lng. Out-of-range values are clamped. Ignored without lat/lng.",
"default": 10,
"minimum": 0.5,
"maximum": 50,
"type": "number"
},
"categories": {
"description": "Only these categories. Empty means all.",
"items": {
"enum": [
"Historical places",
"Amusement parks",
"Museums",
"Places of interest",
"Temples",
"Parks",
"Natural attractions",
"Zoos",
"Beaches and ponds",
"Venues",
"Playgrounds"
],
"type": "string"
},
"type": "array"
},
"needs": {
"description": "Practical needs every result must meet.",
"items": {
"enum": [
"wheelchair_accessible",
"dogs_allowed",
"free_admission",
"has_restroom",
"good_for_kids"
],
"type": "string"
},
"type": "array"
},
"tastes": {
"description": "Who or what the place should suit.",
"items": {
"enum": [
"family_kids",
"nature_scenery",
"scenic_views",
"water_swim",
"cultural_historical",
"art_architecture",
"unique_unusual",
"romantic_couples",
"active_outdoors",
"calm_quiet"
],
"type": "string"
},
"type": "array"
},
"parking": {
"description": "Parking requirement.",
"enum": [
"both",
"free"
],
"type": "string"
},
"setting": {
"description": "Indoor or outdoor.",
"enum": [
"indoor",
"outdoor"
],
"type": "string"
},
"tags": {
"description": "Free-text themes (e.g. \"castle\", \"sunset\"). They only move matching places up; nothing is excluded.",
"maxItems": 10,
"items": {
"type": "string"
},
"type": "array"
},
"limit": {
"description": "How many places to return (max 20, or 5 with detail=full).",
"default": 10,
"minimum": 1,
"maximum": 20,
"type": "integer"
},
"lang": {
"description": "Language of names and descriptions. Falls back to English per place.",
"default": "en",
"enum": [
"en",
"ru",
"ua",
"es",
"de",
"fr"
],
"type": "string"
},
"detail": {
"description": "brief: summary and top tips. full: the whole stored description.",
"default": "brief",
"enum": [
"brief",
"full"
],
"type": "string"
}
}
}출력 스키마
{
"type": "object",
"properties": {
"places": {
"items": {
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"category": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"coordinates": {
"additionalProperties": false,
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
}
},
"type": "object",
"required": [
"lat",
"lng"
]
},
"distance_km": {
"type": [
"number",
"null"
]
},
"url": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"integer",
"null"
]
},
"summary": {
"type": [
"string",
"null"
]
},
"tips": {
"items": {
"type": "string"
},
"type": "array"
},
"best_time": {
"type": [
"string",
"null"
]
},
"visit_minutes": {
"type": [
"integer",
"null"
]
},
"attributes": {
"additionalProperties": false,
"properties": {
"wheelchair_accessible": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"dogs_allowed": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"free_admission": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"has_restroom": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"good_for_kids": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
}
},
"type": "object",
"required": [
"wheelchair_accessible",
"dogs_allowed",
"free_admission",
"has_restroom",
"good_for_kids"
]
},
"setting": {
"enum": [
"indoor",
"outdoor",
"both",
null
],
"type": [
"string",
"null"
]
},
"parking": {
"additionalProperties": false,
"properties": {
"free": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"paid": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
}
},
"type": "object",
"required": [
"free",
"paid"
]
},
"matched_needs": {
"items": {
"type": "string"
},
"type": "array"
},
"matched_tastes": {
"items": {
"type": "string"
},
"type": "array"
},
"matched_tags": {
"items": {
"type": "string"
},
"type": "array"
},
"lang": {
"type": "string"
},
"content_status": {
"enum": [
"full",
"no_description"
],
"type": "string"
},
"fallback_reason": {
"enum": [
"translation_unavailable",
null
],
"type": [
"string",
"null"
]
},
"image": {
"additionalProperties": false,
"properties": {
"url": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"license": {
"type": "string"
},
"license_url": {
"type": "string"
},
"source_url": {
"type": "string"
}
},
"type": [
"object",
"null"
],
"required": [
"url",
"author",
"license",
"license_url",
"source_url"
]
},
"facts": {
"items": {
"type": "string"
},
"type": "array"
},
"landmarks": {
"type": [
"string",
"null"
]
},
"etiquette": {
"type": [
"string",
"null"
]
},
"avoid": {
"type": [
"string",
"null"
]
},
"photo_spot": {
"type": [
"string",
"null"
]
},
"schedule_notes": {
"type": [
"string",
"null"
]
},
"atmosphere": {
"type": [
"string",
"null"
]
}
},
"type": "object",
"required": [
"name",
"category",
"city",
"country",
"coordinates",
"distance_km",
"url",
"score",
"summary",
"tips",
"best_time",
"visit_minutes",
"attributes",
"setting",
"parking",
"matched_needs",
"matched_tastes",
"matched_tags",
"lang",
"content_status",
"fallback_reason",
"image"
]
},
"type": "array"
},
"count": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"applied": {
"additionalProperties": false,
"properties": {
"lat": {
"type": [
"number",
"null"
]
},
"lng": {
"type": [
"number",
"null"
]
},
"radius_km": {
"type": [
"number",
"null"
]
},
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"needs": {
"items": {
"type": "string"
},
"type": "array"
},
"tastes": {
"items": {
"type": "string"
},
"type": "array"
},
"parking": {
"type": [
"string",
"null"
]
},
"setting": {
"type": [
"string",
"null"
]
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"limit": {
"type": "integer"
},
"lang": {
"type": "string"
},
"detail": {
"enum": [
"brief",
"full"
],
"type": "string"
},
"q": {
"type": "string"
}
},
"type": "object",
"required": [
"lat",
"lng",
"radius_km",
"categories",
"needs",
"tastes",
"parking",
"setting",
"tags",
"limit",
"lang",
"detail"
]
},
"resolved_as": {
"enum": [
"city",
"country",
"category+city",
"category+country",
"category",
"name",
"none"
],
"type": "string"
},
"search_area": {
"additionalProperties": false,
"properties": {
"kind": {
"enum": [
"city_box",
"country",
"places",
"concept_box"
],
"type": "string"
},
"title": {
"type": [
"string",
"null"
]
},
"center": {
"additionalProperties": false,
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
}
},
"type": [
"object",
"null"
],
"required": [
"lat",
"lng"
]
},
"bbox": {
"additionalProperties": false,
"properties": {
"n": {
"type": "number"
},
"s": {
"type": "number"
},
"e": {
"type": "number"
},
"w": {
"type": "number"
}
},
"type": [
"object",
"null"
],
"required": [
"n",
"s",
"e",
"w"
]
}
},
"type": [
"object",
"null"
],
"required": [
"kind",
"title",
"center",
"bbox"
]
},
"notes": {
"items": {
"type": "string"
},
"type": "array"
},
"hint": {
"type": [
"string",
"null"
]
},
"about_score": {
"type": "string"
},
"filter_semantics": {
"type": "string"
},
"error": {
"additionalProperties": false,
"properties": {
"code": {
"enum": [
"invalid_parameter",
"place_not_found",
"rate_limit_exceeded",
"internal_error"
],
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"type": "object"
},
"retry_after": {
"type": [
"integer",
"null"
]
}
},
"type": "object",
"required": [
"code",
"message",
"details",
"retry_after"
]
}
}
}🟢get_place(slug, lang, detail)
Use this when the user picks a place from find_places or asks to tell more about it: pass slug = the last part of that place's url (or the whole url). Returns the full details of one Aventuro place: name, category, city, country, coordinates, a link to the place page, the popularity score, the typical time visitors spend there in minutes (visit_minutes, not the time to see everything) and the whole stored travel description (facts, tips, best time, etiquette and more), plus up to 3 verified photos with author and licence credits (images, may be empty). Write the place name as a markdown link [name](url) when url is present and show the url as the source link. When images are present, show each images[].url as a markdown image with its author credit. attributes gives the five needs as true (known yes) or null (unknown, never a no); matched_needs, matched_tastes and matched_tags are always empty here. setting and parking follow the same true-or-null rule. content_status is no_description when no travel description is stored; fallback_reason is translation_unavailable when lang differs from the requested one.
입력 스키마
{
"type": "object",
"properties": {
"slug": {
"description": "The place: the last part of a find_places url (e.g. \"old-fortress\"), or that whole url.",
"minLength": 1,
"maxLength": 500,
"type": "string"
},
"lang": {
"description": "Language of the name and description. Falls back to English.",
"default": "en",
"enum": [
"en",
"ru",
"ua",
"es",
"de",
"fr"
],
"type": "string"
},
"detail": {
"description": "full (default): the whole stored description. brief: summary and top tips.",
"default": "full",
"enum": [
"brief",
"full"
],
"type": "string"
}
},
"required": [
"slug"
]
}출력 스키마
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"category": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"coordinates": {
"additionalProperties": false,
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
}
},
"type": "object",
"required": [
"lat",
"lng"
]
},
"distance_km": {
"type": [
"number",
"null"
]
},
"url": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"integer",
"null"
]
},
"summary": {
"type": [
"string",
"null"
]
},
"tips": {
"items": {
"type": "string"
},
"type": "array"
},
"best_time": {
"type": [
"string",
"null"
]
},
"visit_minutes": {
"type": [
"integer",
"null"
]
},
"attributes": {
"additionalProperties": false,
"properties": {
"wheelchair_accessible": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"dogs_allowed": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"free_admission": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"has_restroom": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"good_for_kids": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
}
},
"type": "object",
"required": [
"wheelchair_accessible",
"dogs_allowed",
"free_admission",
"has_restroom",
"good_for_kids"
]
},
"setting": {
"enum": [
"indoor",
"outdoor",
"both",
null
],
"type": [
"string",
"null"
]
},
"parking": {
"additionalProperties": false,
"properties": {
"free": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
},
"paid": {
"enum": [
true,
null
],
"type": [
"boolean",
"null"
]
}
},
"type": "object",
"required": [
"free",
"paid"
]
},
"matched_needs": {
"items": {
"type": "string"
},
"type": "array"
},
"matched_tastes": {
"items": {
"type": "string"
},
"type": "array"
},
"matched_tags": {
"items": {
"type": "string"
},
"type": "array"
},
"lang": {
"type": "string"
},
"content_status": {
"enum": [
"full",
"no_description"
],
"type": "string"
},
"fallback_reason": {
"enum": [
"translation_unavailable",
null
],
"type": [
"string",
"null"
]
},
"images": {
"items": {
"additionalProperties": false,
"properties": {
"url": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"license": {
"type": "string"
},
"license_url": {
"type": "string"
},
"source_url": {
"type": "string"
}
},
"type": "object",
"required": [
"url",
"author",
"license",
"license_url",
"source_url"
]
},
"type": "array"
},
"facts": {
"items": {
"type": "string"
},
"type": "array"
},
"landmarks": {
"type": [
"string",
"null"
]
},
"etiquette": {
"type": [
"string",
"null"
]
},
"avoid": {
"type": [
"string",
"null"
]
},
"photo_spot": {
"type": [
"string",
"null"
]
},
"schedule_notes": {
"type": [
"string",
"null"
]
},
"atmosphere": {
"type": [
"string",
"null"
]
},
"error": {
"additionalProperties": false,
"properties": {
"code": {
"enum": [
"invalid_parameter",
"place_not_found",
"rate_limit_exceeded",
"internal_error"
],
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"type": "object"
},
"retry_after": {
"type": [
"integer",
"null"
]
}
},
"type": "object",
"required": [
"code",
"message",
"details",
"retry_after"
]
}
}
}커뮤니티
증거