get_detailed_information
Retrieve comprehensive details about Korean tourism items including attractions, accommodations, restaurants, and events using content IDs. Provides multilingual information with addresses, descriptions, operating hours, and additional data for trip planning.
Instructions
Get detailed information about a specific tourism item in Korea.
This tool retrieves comprehensive details about a specific tourism item by its content ID. It combines common information, introduction details, and additional information to provide a complete picture of the tourism item.
Args: content_id (str): Content ID of the tourism item (obtained from other search functions) content_type (str, optional): Type of content. Valid values: - "Tourist Attraction" - "Cultural Facility" - "Festival Event" - "Leisure Activity" - "Accommodation" - "Shopping" - "Restaurant" - "Transportation" language (str, optional): Language for results (default: "en"). Supported: - "en" (English) - "jp" (Japanese) - "zh-cn" (Simplified Chinese) - "zh-tw" (Traditional Chinese) - "de" (German) - "fr" (French) - "es" (Spanish) - "ru" (Russian)
Returns: dict: Detailed information with structure: { # Common information "title": str, # Name of the item "contentid": str, # Unique content ID "contenttypeid": str, # Content type ID "addr1": str, # Primary address "addr2": str, # Secondary address "areacode": str, # Area code "sigungucode": str, # Sigungu code "cat1": str, # Category 1 code "cat2": str, # Category 2 code "cat3": str, # Category 3 code "mapx": str, # Longitude "mapy": str, # Latitude "mlevel": str, # Map level "overview": str, # Detailed description "tel": str, # Phone number "telname": str, # Contact name "homepage": str, # Website URL "firstimage": str, # URL of main image "firstimage2": str, # URL of thumbnail image "createdtime": str, # Creation timestamp "modifiedtime": str, # Last modified timestamp "zipcode": str, # Postal code
# Introduction details (varies by content type)
"infocenter": str, # Information center (for attractions)
"restdate": str, # Rest/closing days
"usetime": str, # Hours of operation
"parking": str, # Parking information
# ... other type-specific fields
# Additional information
"additional_info": [ # List of additional details
{
"infoname": str, # Name of the information
"infotext": str, # Detailed text information
"fldgubun": str, # Field division code
"serialnum": str # Serial number
}
# ... more items
]
}Example: get_detailed_information("126508", "Tourist Attraction", "en")
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content_id | Yes | ||
| content_type | No | ||
| language | No |
Implementation Reference
- src/mcp_tourism/server.py:754-880 (handler)The get_detailed_information tool implementation decorated with @mcp.tool, which fetches, combines, and returns detailed information about a tourism item.
@mcp.tool async def get_detailed_information( content_id: str, content_type: str | None = None, language: str | None = None, ) -> dict: """ Get detailed information about a specific tourism item in Korea. This tool retrieves comprehensive details about a specific tourism item by its content ID. It combines common information, introduction details, and additional information to provide a complete picture of the tourism item. Args: content_id (str): Content ID of the tourism item (obtained from other search functions) content_type (str, optional): Type of content. Valid values: - "Tourist Attraction" - "Cultural Facility" - "Festival Event" - "Leisure Activity" - "Accommodation" - "Shopping" - "Restaurant" - "Transportation" language (str, optional): Language for results (default: "en"). Supported: - "en" (English) - "jp" (Japanese) - "zh-cn" (Simplified Chinese) - "zh-tw" (Traditional Chinese) - "de" (German) - "fr" (French) - "es" (Spanish) - "ru" (Russian) Returns: dict: Detailed information with structure: { # Common information "title": str, # Name of the item "contentid": str, # Unique content ID "contenttypeid": str, # Content type ID "addr1": str, # Primary address "addr2": str, # Secondary address "areacode": str, # Area code "sigungucode": str, # Sigungu code "cat1": str, # Category 1 code "cat2": str, # Category 2 code "cat3": str, # Category 3 code "mapx": str, # Longitude "mapy": str, # Latitude "mlevel": str, # Map level "overview": str, # Detailed description "tel": str, # Phone number "telname": str, # Contact name "homepage": str, # Website URL "firstimage": str, # URL of main image "firstimage2": str, # URL of thumbnail image "createdtime": str, # Creation timestamp "modifiedtime": str, # Last modified timestamp "zipcode": str, # Postal code # Introduction details (varies by content type) "infocenter": str, # Information center (for attractions) "restdate": str, # Rest/closing days "usetime": str, # Hours of operation "parking": str, # Parking information # ... other type-specific fields # Additional information "additional_info": [ # List of additional details { "infoname": str, # Name of the information "infotext": str, # Detailed text information "fldgubun": str, # Field division code "serialnum": str # Serial number } # ... more items ] } Example: get_detailed_information("126508", "Tourist Attraction", "en") """ # Validate and convert content_type content_type_id = None if content_type: content_type_id = next( ( k for k, v in CONTENTTYPE_ID_MAP.items() if v.lower() == content_type.lower() ), None, ) if content_type_id is None: valid_types = ", ".join(CONTENTTYPE_ID_MAP.values()) raise ValueError( f"Invalid content_type: '{content_type}'. Valid types are: {valid_types}" ) # Get common details common_details = await get_api_client().get_detail_common( content_id=content_id, language=language, ) # Get intro details if content_type_id is provided intro_details: Dict[str, Any] = {} if content_type_id: intro_result = await get_api_client().get_detail_intro( content_id=content_id, content_type_id=content_type_id, language=language ) intro_details = ( intro_result.get("items", [{}])[0] if intro_result.get("items") else {} ) # Get additional details additional_details: Dict[str, Any] = {} if content_type_id: additional_result = await get_api_client().get_detail_info( content_id=content_id, content_type_id=content_type_id, language=language ) additional_details = {"additional_info": additional_result.get("items", [])} # Combine all details item = common_details.get("items", [{}])[0] if common_details.get("items") else {} return {**item, **intro_details, **additional_details}