tour-crowding-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tour-crowding-mcp이번 주말 부산 해운대 혼잡도 알려줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tour-crowding-mcp
한국관광공사 관광지 혼잡도(집중률) MCP 서버. Claude Desktop 등 MCP 클라이언트에 붙이면 "이번 주말 경주 붐벼?", "전주에서 한적한 데 추천해줘" 같은 질문에 실데이터로 답할 수 있다.
LLM 키가 필요 없다. 도구 선택과 답변 작성은 접속한 클라이언트의 모델이 한다.
사용자 본인의 공공데이터포털 키 하나로 동작한다.
저장소가 없다. 프로세스 메모리 캐시로만 돌고, 지역 코드표(첫 실행 18콜)만
~/.cache/tour-mcp/에 파일로 남겨 재시작 시 쿼터를 아낀다.
준비
data.go.kr 에서 아래 두 서비스를 활용신청하고 Decoding 키를 받는다 (Encoding 키를 넣으면 이중 인코딩으로 인증에 실패한다).
한국관광공사 국문 관광정보 서비스 (KorService2)
한국관광공사 관광지 집중률 정보 (TatsCnctrRateService)
두 서비스 모두 심사 없는 자동승인이라 신청 즉시 키가 발급된다.
개인 발급 키의 일일 한도는 보통 1,000회다. usage 도구로 이번 세션의
호출 수를 확인할 수 있다.
Related MCP server: mcp-tour
Claude Desktop 설정
claude_desktop_config.json:
{
"mcpServers": {
"tour-crowding": {
"command": "uvx",
"args": ["--from", "git+https://github.com/kimbongjune/tour-crowding-mcp", "tour-crowding-mcp"],
"env": { "DATA_GO_KR_SERVICE_KEY": "발급받은 Decoding 키" }
}
}
}로컬 체크아웃으로 쓰려면 --from 에 git 주소 대신 저장소 경로를 넣는다.
도구
도구 | 하는 일 |
| 지역명 → 시군구 코드. 동명 지역이면 후보를 되돌려준다 |
| 지역 요약 또는 특정 관광지의 일자별 혼잡도(집중률 예측) |
| 앞으로 며칠간 한적할 것으로 예측되는 곳 추천 |
| 이름으로 관광지 검색 |
| 개요·운영정보 등 상세 |
| 카테고리별 목록 (자연·역사·문화·체험·레저스포츠·쇼핑·음식·숙박·캠핑·웰니스 등) |
| 진행·예정 축제 (기간 포함) |
| 이번 세션에서 사용자 키로 나간 호출 수 |
혼잡도 수치는 한국관광공사가 산출한 예측값이며 실측이 아니다. 전주시처럼 데이터가 구 단위로 집계되는 지역은 하위 구를 합쳐서 조회한다.
출처: ⓒ한국관광공사
Available Tools
8 toolsfind_attractionA
관광지명으로 관광지를 찾는다. 지역을 알면 cd 를 넣어야 동명 관광지가 섞이지 않는다.
| Name | Required | Description | Default |
|---|---|---|---|
| cd | No | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose a real behavioral quirk: omitting cd can mix same-name attractions from different regions. However, it says nothing about return format, pagination, error behavior, or data scope.
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 short sentences with no filler; the primary purpose is front-loaded and the conditional disambiguation advice earns its place.
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 simple two-parameter search tool the description is mostly adequate, but it lacks guidance on where cd comes from (e.g., resolve_area) and what the result looks like, and there is no output schema to fill that gap.
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 0%, and the description partially compensates by explaining that cd is a region identifier used for disambiguation and that name is the attraction name. It still leaves cd's format, possible values, and source unspecified.
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?
The description clearly states the tool finds tourist attractions by name (관광지명으로 관광지를 찾는다). It implies a search behavior distinct from sibling detail/list tools, but it does not explicitly name or differentiate from siblings such as get_attraction_detail or list_places.
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?
It gives a clear conditional: if the region is known, cd should be provided to avoid mixing same-name attractions. This is actionable usage context, though it does not specify when to prefer this tool over alternatives or point to resolve_area for obtaining cd.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attraction_detailB
관광지 상세: 개요, 주소, 운영시간·휴무일 등. 응답에 없는 항목은 명백하게 모른다고 응답하라.
| Name | Required | Description | Default |
|---|---|---|---|
| content_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It usefully states what fields are included and instructs the model to clearly say 'I don't know' for items missing from the response, which guards against hallucination. It does not cover error or not-found behavior, but for a simple detail lookup this is meaningful transparency.
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?
The description is compact and front-loaded: it states the resource and key fields first, then adds a clear behavioral instruction. There is no filler or redundant restatement of the tool name.
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 and the description covers the main return fields and how to handle missing data. However, with no output schema and no parameter explanation, it should also clarify where content_id comes from and when to prefer sibling tools like find_attraction; these gaps prevent full completeness.
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 0% and the description never explains the content_id parameter. The name and parameter name imply that content_id identifies an attraction, but no format, source, or relationship to find_attraction is provided, so an agent must infer the meaning.
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?
The description names the resource ('관광지' attraction) and the content it returns (overview, address, operating hours, closed days), so an agent can infer it retrieves a single attraction's detail. It is distinguishable from siblings like find_attraction or list_places because it clearly targets detailed information for one attraction, though it lacks an explicit verb such as 'retrieve' or 'get'.
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 guidance is given about when to use this tool versus siblings like find_attraction, get_crowding, or list_places. The intended workflow is only implied: use this after identifying an attraction via find_attraction. No exclusions or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crowdingB
지역의 관광지 혼잡도(집중률). names 를 주면 그 관광지들만, 없으면 지역 요약.
수치는 한국관광공사가 산출한 예측값이며 실측이 아니다 — 답할 때 반드시 언급하여라. 등급은 혼잡·보통·한적 세 단어만 사용한다. 지역 요약에는 coverage(전체 몇 곳을 본 결과인지)가 있으니 같이 언급한다. 데이터가 모든 관광지에 있는 것은 아니다.
| Name | Required | Description | Default |
|---|---|---|---|
| cd | Yes | ||
| days | No | ||
| names | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does it well. It explicitly warns that values are Korea Tourism Organization predictions, not measurements, requires the agent to mention this, restricts grade vocabulary to three terms, and notes that data is not available for every attraction.
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?
The description is compact and front-loaded: the first line states the core function and branching behavior, and the following lines contain only necessary answer-constraint instructions. No filler or redundant restatement of the tool name appears.
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 tool with no output schema, no annotations, and zero schema description coverage, the description covers many important response constraints and the main names/regional distinction. However, it omits the meaning of `days`, the format of `cd`, and a fuller description of the return structure beyond coverage, leaving noticeable gaps.
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 0%, so the description must compensate, but it only partially does. It clarifies the behavior of `names` and touches on region-level output via coverage, yet it does not explain `days` at all and gives no format or semantics for the required `cd` parameter.
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?
The Korean opening sentence clearly identifies the tool as returning tourist-attraction crowding/concentration for a region, with specific behavior for the `names` parameter versus the regional-summary fallback. This distinguishes it from generic tools, though it does not explicitly contrast it with siblings like recommend_quiet.
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?
The description gives a clear conditional usage rule: pass `names` for specific attractions, omit it for a regional summary. However, it does not state when to choose this tool over sibling tools such as recommend_quiet or list_places, nor does it mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_festivalsC
지역에서 진행 중이거나 예정된 축제·행사. date_from(YYYY-MM-DD) 생략 시 오늘.
각 항목의 기간을 같이 안내하고, 물어본 날짜가 기간 안일 때만 '그때 한다'고 말해라.
| Name | Required | Description | Default |
|---|---|---|---|
| cd | Yes | ||
| limit | No | ||
| date_from | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Some behavioral details are disclosed, such as including the period of each item and only confirming 'it happens then' if the queried date falls within the period. However, it does not mention read-only nature, error handling, or side effects, leaving gaps in transparency.
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?
The description is concise, consisting of two short Korean sentences. It conveys essential functionality and a key parameter rule without unnecessary verbosity, though the structure is a single block rather than organized sections.
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 description lacks an output schema and does not specify the return format or fields, which is critical for an agent to parse results. It also omits details about required parameters and potential filters, making the tool incomplete for production use.
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?
The description explains date_from (default to today if omitted) and how to interpret it relative to event periods, but provides no semantics for cd (the region code) or limit. With schema coverage at 0%, most parameters remain unexplained.
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?
The description clearly states the tool's function: listing ongoing or upcoming festivals/events in a region. It also specifies the default behavior for date_from, but does not explicitly differentiate from sibling tools such as list_places, leaving some ambiguity about when to prefer this tool.
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?
There is no guidance on when to use this tool compared to its siblings. The description provides parameter behavior but not selection criteria, so an agent may struggle to decide between list_festivals and list_places.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_placesB
지역에서 카테고리별로 갈 만한 곳 목록. 카테고리는 한국관광공사 분류체계 기준.
캠핑·야영·글램핑은 category="캠핑", 의료·온천·스파·한방·찜질방·힐링은 category="웰니스" 로 호출한다. 목록 순서는 인기순이 아니다. "한적한 웰니스" 처럼 갈래가 섞인 요청도 이 목록이 답의 중심이다. 갈래 목록에는 혼잡도가 없으니 아는 것처럼 말하지 말고, 목록을 준 뒤 카테고리별 혼잡도는 집계되지 않는다고 응답하여라.
| Name | Required | Description | Default |
|---|---|---|---|
| cd | Yes | ||
| limit | No | ||
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides important behavioral instructions: it warns that the list contains no congestion data, tells the agent not to claim knowledge of congestion, and specifies the exact response phrasing to use. This goes beyond the schema and helps avoid hallucinated output.
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?
The description is moderately concise but contains redundant phrasing around the congestion disclaimer and the mixed-request guidance. It could be better organized into clearer bullets or shorter sentences, but it is not excessively long.
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 description is incomplete for a tool with no output schema. It tells the agent what to say about missing congestion data, but it does not describe the output fields, the meaning of 'cd', or the behavior of 'limit'. This leaves important context for correct invocation ambiguous.
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?
The schema has zero descriptions for parameters, so the description must compensate. It explains the 'category' parameter with concrete examples and mapping, but it does not clarify what 'cd' means or how to format it, and 'limit' is not mentioned at all.
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?
The description clearly states that the tool returns a list of places by region and category, and it specifies category values using the Korea Tourism Organization classification. It is specific enough to distinguish from generic search tools, though 'cd' as the region identifier is not 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?
The description gives some usage guidance, such as handling mixed requests like '한적한 웰니스' and noting that the list order is not by popularity. However, it does not explicitly compare this tool to sibling tools like find_attraction or recommend_quiet, so the when-to-use versus alternatives is only partially addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_quietA
지역에서 앞으로 며칠간 한적할 것으로 예측되는 관광지 추천.
같은 지역의 집중률 평균이 낮은 순서다. 순서를 바꾸지 말고 그대로 안내하되, 혼잡도 기준 추천이라는 것과 예측값이라는 것을 언급한다. 카테고리(캠핑·웰니스·음식 등)를 콕 집은 요청에는 이 도구가 아니라 list_places 를 사용한다 — 집중률은 관광지 대상이라 갈래와 결합되지 않는다.
| Name | Required | Description | Default |
|---|---|---|---|
| cd | Yes | ||
| days | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and delivers substantially: results are ordered by lowest average concentration rate within the same region, the agent must not reorder them, and it must tell the user that the recommendation is congestion-based and based on predicted values. It also discloses that concentration rate does not combine with categories. These are concrete behavioral traits well beyond what the tool name implies.
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?
The description is compact and well-structured: purpose first, then ordering and presentation rules, then the routing exception to list_places. Every sentence earns its place — the don't-reorder instruction and the category exclusion are both material to correct invocation and response formatting, with 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?
The description is complete about behavior and routing but silent on parameter semantics (especially the required cd) and the return shape, with no output schema or annotations to fill those gaps. For a 3-parameter tool with one required opaque code and no documented result format, an agent still needs additional context — likely resolve_area — to invoke it correctly.
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 0%, and the description does not explain any of the three parameters: cd (required), days (default 7), and limit (default 5). The phrase 'a few days' hints at days' purpose and 'region' hints at cd, but limit is entirely unexplained and cd is opaque, so an agent cannot confidently populate the required argument without external context.
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?
The description states a specific verb and resource: 'recommend tourist attractions predicted to be quiet in the region over the next few days' (지역에서 앞으로 며칠간 한적할 것으로 예측되는 관광지 추천). It specifies the scope (region, multi-day prediction) and the basis (concentration/congestion rate), and it explicitly differentiates itself from list_places for category-specific requests, so an agent can distinguish it from siblings.
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?
The description gives an explicit when-not-to-use rule: for requests that pin down a category (camping, wellness, food), use list_places instead, with the rationale that the concentration rate targets tourist attractions and does not combine with categories. This is a clear exclusion with a named alternative, but it does not establish routing boundaries against the other siblings such as get_crowding or find_attraction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_areaA
지역명을 시군구 코드로 변환한다.
예: "경주", "전북 전주", "제주시". status 가 ambiguous 면 candidates 를 사용자에게 보여주고 되물어라. 이후 도구들은 여기서 받은 cd 를 사용한다.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It mentions the ambiguous case and the fact that the output (cd) is used by other tools, but does not describe success/error cases, output structure, or whether the operation is read-only. It adds some context but not a full behavioral profile.
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 sentences with no wasted words. The core purpose is front-loaded, followed by examples and a behavioral note, all in a compact structure that is easy to scan.
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 has no output schema, so the description should explain what is returned. It mentions 'cd' and 'status' but does not clarify their format or possible values. It also omits error handling for no-match cases. For a prerequisite tool, this leaves some gaps, though the basic usage is clear.
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 0%, so the description must explain the parameter. It does so by defining 'query' as a region name and providing three illustrative examples. This is sufficient for a single-string parameter, though it does not specify exact formatting rules beyond the examples.
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?
The description states a specific verb (converts), a resource (region name to Si/Gun/Gu code), and gives concrete examples. It clearly distinguishes from siblings by focusing on code resolution rather than attraction or crowding lookup.
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?
It explicitly notes that subsequent tools use the code from this tool, establishing it as a prerequisite. It also instructs to show candidates and ask again when ambiguous, giving a clear conditional. It does not list alternatives or exclusions, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usageA
이번 세션에서 사용자 키로 나간 상류 호출 수. 쿼터가 걱정될 때 확인한다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the scope (this session, user key, upstream calls) and the practical purpose (quota monitoring). It does not explicitly state that the call is read-only, but the nature of the tool strongly implies it.
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?
The entire description is two short sentences with no filler. The core meaning is front-loaded, and the usage guidance is appended efficiently.
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 zero-parameter quota-monitoring tool, the description is largely complete: it states what is counted, the scope, and when to use it. It does not specify the exact return format, but '수' (count) already implies a numeric result.
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?
The tool has zero parameters and the schema coverage is 100%, so the baseline is 4. The description still adds useful context by clarifying that the count is tied to the user key and session, which gives meaning beyond the empty schema.
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?
The description clearly identifies what the tool reports: the number of upstream calls made with the user key in the current session. It is immediately distinguishable from all sibling tools, which are about places, festivals, and crowding rather than API usage.
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?
The description gives an explicit usage context: check this tool when worried about quota. It does not discuss exclusions or alternative tools, but since none of the siblings serve this purpose, the guidance is sufficient.
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.
8 tool updates
v0.1.0- First observed
find_attraction - First observed
get_attraction_detail - First observed
get_crowding - First observed
list_festivals - First observed
list_places - First observed
recommend_quiet - First observed
resolve_area - First observed
usage
TDQS
Scored across 8 tools
Most tools have clearly separate roles—area resolution, attraction lookup, detail, crowding, festivals, and quota usage are easy to tell apart. However, get_crowding and recommend_quiet both deal with crowding-derived information, and find_attraction versus list_places could initially be confused, though the descriptions provide enough guidance.
The tool names follow a mostly consistent snake_case verb-first pattern such as find_*, get_*, list_*, and resolve_*. Minor deviations include usage, which is a bare noun, and recommend_quiet, which uses an adjective rather than a noun object.
Eight tools is well within the ideal range and each tool covers a distinct part of the tourism/crowding workflow: area resolution, attraction search and detail, crowding data, quiet recommendations, category place lists, festivals, and quota checking. Nothing feels redundant or unnecessary.
The toolset covers the core workflow end-to-end, including resolving areas, finding and inspecting attractions, getting crowding forecasts, listing places and festivals, and monitoring usage. Minor gaps exist—such as no direct combination of category lists with crowding and no explicit date-scoped crowding query—but the descriptions acknowledge these limitations and give agents a workaround.
Maintenance
Related MCP Connectors
- mcpweaveOAuthcom.mcpweave
Korea-native MCP gateway: Korean commerce, payments, messaging, gov & finance APIs for AI agents.
Cloudflare Workers MCP server: govdata-korea
Aggregated travel MCP — flights, tours, activities, price checks, visas, and more.
Nationwide Korea: bus stops in 138 cities, 30-year climate normals, tourism (KR/EN).
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables 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.89MIT
- FlicenseNot gradedqualityCmaintenanceIntegrates the Korea Tourism Organization's API to provide tourist spot recommendations and detailed information, including attractions, food, and accommodation.1-
- FlicenseNot gradedqualityCmaintenanceEnables to generate day trip itineraries in Korea using real-time public data from Korea Tourism Organization, weather, and congestion APIs.-
- AlicenseNot gradedqualityAmaintenanceBridges Korean public data APIs (data.go.kr) into MCP with automatic OpenAPI normalization, quota management, caching, and backoff. Enables natural language interaction with Korean government data through MCP.Apache 2.0