K-Tour Info
Server Details
Korea travel data: 50K+ places in 13 languages, festivals, crowd forecasts, itineraries
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: spatial radius search, keyword search, itinerary generation, crowd forecasting, related-place recommendations, and festival listing. The only mild overlap is between find_nearby_places and search_places, but their differing input modes (coordinates/radius vs keyword/region/category) make the boundary clear.
All six tools follow a consistent snake_case verb_noun pattern (find_, generate_, get_, list_, search_). Verbs are varied but appropriate and predictable across the set.
Six tools is a well-scoped set for a tourism info server, with each tool covering a distinct capability rather than fragmenting CRUD operations. Nothing feels redundant or missing at the count level.
The surface covers discovery (search, nearby, related), planning (itinerary), timing (festivals, crowd forecast) well. A place-detail endpoint (full description, hours, pricing) is absent—search only returns a short overview—which is a minor gap agents can partially work around via the ktourinfo.com URLs.
Available Tools
6 toolsfind_nearby_placesFind places near a locationARead-onlyIdempotentInspect
Places within a radius of a latitude/longitude in Korea, nearest first, with distance in meters. Names are Korean.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude (WGS84). | |
| lng | Yes | Longitude (WGS84). | |
| limit | No | Max results (default 10). | |
| radius_m | No | Radius in meters (default 1500). | |
| contenttypeid | No | Category: 12 attraction, 14 culture facility, 15 festival/event, 25 travel course (Korean only), 28 leisure sports, 32 lodging, 38 shopping, 39 restaurant. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, so the description correctly spends its words elsewhere: nearest-first ordering, distances returned in meters, Korean-only naming, and geographic restriction to Korea (consistent with openWorldHint=false). It stops short of noting any rate limits, coverage caveats, or that a category filter can sharply reduce results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the operation and packs scope, ordering, unit and locale into it. Slightly awkward phrasing ('radius of a latitude/longitude') but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the key return traits (ordering, distance unit, Korean-only names) and the region constraint, which is enough to call correctly. It omits what fields come back per place and whether category filtering changes ordering or coverage, which would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with units, defaults, ranges and an enum legend already documented per-parameter. The description only alludes to radius and adds nothing about lat/lng ordering, limit behavior, or default radius, so it neither helps nor compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: proximity search by lat/lng within a radius, restricted to Korea. This meaningfully separates it from search_places (keyword) and get_related_places, though the description never names those siblings, so differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this over search_places, get_related_places, or generate_itinerary, and no prerequisites. The only usable cue ('within a radius of a lat/lng') is implied by the name and schema rather than stated as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_itineraryGenerate a Korea itineraryARead-onlyIdempotentInspect
Build a day-by-day sightseeing itinerary for a region: popular spots grouped by day in visiting order with an approximate timetable and meal stops.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Province/city, e.g. 'Seoul', 'Busan', 'Jeju'. Omit for nationwide. | |
| locale | No | Language of names/addresses/overviews. Default ko. Native data for ko/en/ja/zh-CN/zh-TW/ru/de/fr/es; vi/th/id/ms fall back to Korean. | |
| per_day | No | Stops per day (default 4). | |
| num_days | No | Number of days (default 2). | |
| day_start | No | Day start time HH:MM (default 09:30). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description earns credit by disclosing the shape of the generated result (day grouping, visiting order, approximate timetable, meal stops), which matters because there is no output schema; it stops short of covering empty-area behavior, determinism, or cost/latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that specifies the resource, the output structure, and the inclusions with no filler. Every clause carries information an agent can use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With all five parameters optional and no output schema, the description usefully explains what comes back, which is the main gap it needed to fill. It is close to complete, lacking only what happens with an unrecognized or empty area and whether the timetable is fixed or variable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter is documented with defaults, bounds, and enum fallback notes, so the schema does the heavy lifting. The description only adds the notion of 'a region' mapping to the area parameter and nothing about per_day, num_days, day_start, or locale behavior, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Build a day-by-day sightseeing itinerary for a region') plus the concrete output shape: spots grouped by day, in visiting order, with approximate timetable and meal stops. That level of detail makes it clearly distinct from lookup siblings like search_places and find_nearby_places, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the description frames the tool as producing a multi-day plan, which suggests it is the right choice when the user wants an itinerary rather than individual places. There is no explicit 'use this when...' or 'use X instead for single-place lookups' statement, and no prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crowd_forecast30-day crowd forecastARead-onlyIdempotentInspect
Daily crowd-level forecast (cnctr_rate, higher = busier) for Korean tourist spots over the next ~30 days. Use it to pick quieter days or spots. Match names in Korean (use search_places with locale 'ko' to get the Korean name first).
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Province/city, e.g. 'Seoul' or '서울'. | |
| date | No | YYYY-MM-DD. Omit for all forecast days. | |
| limit | No | Max rows (default 10). | |
| signgu | No | District in Korean, e.g. '종로구', '해운대구'. | |
| poi_name | No | Spot name in Korean (partial match), e.g. '경복궁'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description wisely spends its words elsewhere: the direction of the metric, the ~30-day horizon, and the hard requirement that names be in Korean (a real failure mode for callers). Pagination behavior and the full returned field set are left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: definition, intended use, then the prerequisite caveat. Front-loaded and every sentence carries distinct information with no restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, five-optional-parameter lookup with no output schema, the description covers what is being returned (daily crowd level via cnctr_rate), the time range, and the naming constraint. Remaining gaps are minor: whether results are per-spot-per-day rows and how limit interacts with the ~30-day window.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description earns above that by adding operational meaning not in the schema — that poi_name/signgu values must be Korean and must be sourced via search_places with locale 'ko' rather than transliterated by the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Daily crowd-level forecast'), scopes it geographically and temporally ('Korean tourist spots over the next ~30 days'), and defines the core metric ('cnctr_rate, higher = busier'). No sibling tool does anything similar, and the reference to search_places for name resolution further separates it from the discovery tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it to pick quieter days or spots' names the decision this tool supports, and the prerequisite workflow ('use search_places with locale ko to get the Korean name first') tells the agent what to do before calling. It stops short of explicit exclusions or a named alternative for non-Korean destinations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_festivalsFestivals in a date rangeARead-onlyIdempotentInspect
Korean festivals and events running at any point between two dates, optionally in one region.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Province/city, e.g. 'Seoul' or '서울'. | |
| limit | No | Max results (default 12). | |
| end_date | Yes | YYYY-MM-DD | |
| start_date | Yes | YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description's real contribution is the date-overlap semantics ('running at any point between'), which is behavior the schema's bare 'YYYY-MM-DD' does not convey. It says nothing about result ordering, the default limit of 12, or how results are truncated at 40.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with no wasted words, and the scoping rule precedes the optional filter. It reads as a noun phrase rather than a sentence, and a little more could have been said about return shape at near-zero cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, every parameter is documented in-schema, and annotations carry the safety profile, so an agent can call this correctly from the current text. The only gap is return-shape guidance, which is absent because there is no output schema; for a read-only list tool that is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 100% schema coverage the schema already defines all four parameters, including area examples, date format, and limit bounds with default. The description confirms area is optional and clarifies date matching as overlap rather than containment, which is genuine added value — but the baseline for full coverage is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (Korean festivals and events) and states the selection rule — anything running at any point between two dates, optionally narrowed to one region. That overlap semantics is meaningfully more precise than a generic 'list' verb. It does not need to differentiate from siblings since none of them return festivals, though it could have explicitly said so.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally in one region' implies the filter is discretionary but there is no statement of when to reach for this tool versus search_places or find_nearby_places, and no exclusions or prerequisites. Usage is inferable from the resource name alone rather than articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_placesSearch places in KoreaARead-onlyIdempotentInspect
Search 50,000+ Korean tourist attractions, restaurants, lodging, shopping, culture facilities and festivals by keyword, region and category. Returns name, address, coordinates, phone, image, a short overview and a ktourinfo.com page url.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Province/city, e.g. 'Seoul', 'Busan', 'Jeju', '서울', '경기'. | |
| limit | No | Max results (default 10). | |
| locale | No | Language of names/addresses/overviews. Default ko. Native data for ko/en/ja/zh-CN/zh-TW/ru/de/fr/es; vi/th/id/ms fall back to Korean. | |
| keyword | No | Keyword in the chosen language or Korean, e.g. 'palace', '한옥', 'bibimbap'. | |
| contenttypeid | No | Category: 12 attraction, 14 culture facility, 15 festival/event, 25 travel course (Korean only), 28 leisure sports, 32 lodging, 38 shopping, 39 restaurant. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, read-only, idempotent search. The description adds useful behavioral context by naming the dataset scope (50,000+ Korean places) and, importantly with no output schema, the fields returned. It still omits result ordering, pagination/no-results behavior, and any auth or rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and followed by return fields. Every phrase carries useful information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with fully documented parameters and no output schema, the description supplies the essential purpose, search axes, and return shape. It stops just short of fully complete by not covering result ordering, filter combination, or no-results behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters, enum values, and locale fallback behavior. The description only maps the high-level search dimensions (keyword, region, category) and does not add semantics for limit, locale, or how filters combine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: searching Korean tourist attractions, restaurants, lodging, shopping, culture facilities and festivals. It also names the search axes (keyword, region, category), making the basic function clear. However, it does not explicitly distinguish itself from siblings such as find_nearby_places or list_festivals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the listed search dimensions: keyword, region and category. The description never states when to choose this tool over find_nearby_places, get_related_places, or list_festivals, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
find_nearby_places - First observed
generate_itinerary - First observed
get_crowd_forecast - First observed
get_related_places - First observed
list_festivals - First observed
search_places
Related MCP Connectors
Korea travel & K-pop live data for agents: concerts, Seoul trip packs, crowd, subway, airport.
Festivals, shows and exhibitions across South Korea, searchable by date and area. No auth.
Nationwide Korea: bus stops in 138 cities, 30-year climate normals, tourism (KR/EN).
Korean lodging: 84,490 stays from 4 government permit ledgers + KTO TourAPI, honest gaps
Related MCP Servers
- FlicenseNot gradedqualityCmaintenance22,000+ public facility data for foreign tourists in Seoul — restrooms, pharmacies, WiFi, AEDs, tourist info centers, and subway timetables. Bilingual (Korean/English).-
- FlicenseNot gradedqualityDmaintenanceEnables to generate day trip itineraries in Korea using real-time public data from Korea Tourism Organization, weather, and congestion APIs.-
- FlicenseAqualityCmaintenanceProvides South Korea tourist congestion and concentration forecasts, quiet-area recommendations, and attraction/festival search via MCP clients using a public data portal key.8-
- AlicenseAqualityCmaintenanceEnables AI assistants to access South Korean tourism information via the official Korea Tourism Organization API, providing comprehensive search for attractions, events, food, and accommodations with multilingual support.820 PyPI9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.