search_tourism_by_keywordLABSCO SUMMARY
Official data, and the content ID is what makes follow-ups work.
Search returns items with content IDs, and the detail and image tools take those IDs — so "tell me more about that one" and "show me pictures" are one call each, not another search. Two things to plan for: the KTO portal issues a separate key per language, so a multilingual deployment means several registrations, and the caching plus rate limiting exist because the upstream API has limits worth respecting.
What it is
A server over the Korea Tourism Organization's official TourAPI. It searches by keyword, by area, by GPS coordinates and by date, and returns full details and photos for anything it finds.
What you get
search_tourism_by_keywordsearches by phrase — a palace name, a dish — filtered by content type and area codeget_tourism_by_areabrowses by geographic area code and district;get_area_codesreturns those codes for cities, provinces and districtsfind_nearby_attractionssearches around a longitude and latitude with a radius and content-type filtersearch_festivals_by_datefinds festivals inside a YYYYMMDD date range, filtered by areafind_accommodationscovers hotels and guesthouses by area and districtget_detailed_informationreturns the overview, usage time, parking and the rest for one item by content ID;get_tourism_imagesreturns its photos- Eight languages are supported — English, Japanese, Simplified and Traditional Chinese, Russian, Spanish, German and French
- Responses are cached with a TTL, rate-limited to respect the API, and retried automatically on transient failures
Requirements
Python 3.12 or higher with uv, or the Docker image. A Korea Tourism Organization service key goes in KOREA_TOURISM_API_KEY — note that each language is a separate API registration on the KTO data portal. It runs over stdio by default; --transport streamable-http or --transport sse serve it over HTTP with --host and --port, and a /health endpoint reports status and transport.
Setup effort
Run a container — build the image from the repository, then point your client at it
USE CASES
Finding something near where you are standing
Search by coordinates with a radius and filter to the kind of place you want.
Planning around what is on
Ask which festivals fall inside your travel dates in a given region.
Deciding whether a place is worth the trip
Pull the overview, opening hours and parking, then look at the photos.
Finding somewhere to stay in a specific district
Browse accommodation by area and district code rather than a generic search.
8 tools
Listed in project docs. Your client may show a different list.
get_tourism_by_areafind_nearby_attractionssearch_festivals_by_datefind_accommodationsget_detailed_informationget_tourism_imagesget_area_codesBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation.
Requires
- docker on PATH
- Python 3.12+
- KOREA_TOURISM_API_KEY in your environment
Where it runs
Both documented setups run the server on your machine.
INSTALLATION
Connect your client
MCP Clients
Cursor — Docker
{
"mcpServers": {
"korea-tourism": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"KOREA_TOURISM_API_KEY=<YOUR_KOREA_TOURISM_API_KEY>",
"mcp-korea-tourism-api"
]
}
}
}Cursor — uv
{
"mcpServers": {
"korea-tourism": {
"command": "uv",
"args": [
"--directory",
"<YOUR_LOCAL_PATH>/mcp-korea-tourism-api",
"run",
"-m",
"mcp_tourism.server"
],
"env": {
"KOREA_TOURISM_API_KEY": "<YOUR_KOREA_TOURISM_API_KEY>"
}
}
}
}