korea-stay
Server Details
Korean lodging: 84,490 stays from 4 government permit ledgers + KTO TourAPI, honest gaps
- Status
- Healthy
- Uptime
- 99.9% over 42 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: stay_search finds properties, stay_detail returns specific property info, stay_booking_link generates external links, and report_issue handles defect reports and question logging. No overlap or ambiguity exists.
Three tools follow a consistent 'stay_' prefix pattern (stay_search, stay_detail, stay_booking_link), but report_issue deviates with a different verb. The style is uniform snake_case and understandable, so the minor deviation does not harm usability.
With 4 tools, the server is well-scoped for its purpose: search, detail, link generation, and issue reporting. Each tool covers a distinct functional need without redundancy or bloat.
The tool surface covers the core workflow of finding a stay, viewing details, and linking out for booking, plus a reporting mechanism for issues. No obvious gaps exist for the server's stated purpose of search and referral.
Available Tools
4 toolsreport_issue답변 오류 신고AInspect
답이 틀렸을 때 신고하거나(kind='결함'), 남길 값이 있는 질문 원문을 기록한다(kind='질문기록').
**결함**: 사용자가 "틀렸다"·"이상하다"고 하면 **먼저 이 도구를 부른 뒤** 정정 답변을 하라.
추측으로 부르지는 말 것.
**질문기록**: 이 서버는 클라이언트가 이미 도구 호출로 번역한 뒤를 보므로 **사용자의 원문
질문을 볼 수 없다**. 그래서 어떤 질문이 실제로 오는지, 무엇을 못 답하는지가 계측에 안 잡힌다
— 이 프로젝트의 목적이 유통이 아니라 계측인데 정작 수요 축이 비어 있었다. 복합 질문·부분
답변·전제 오류 셋 중 하나면 원문(일반형으로 치환)을 남겨라. **개인 식별 조합은 반드시
일반형으로 바꿔서** 넣는다.
두 종류가 한 도구인 이유: 무인증 공개 서버라 쓰기 표면을 하나로 묶어 상한을 함께 건다
(CLAUDE.md 규칙 2). 시간당 상한도 공유한다.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | '결함'=답이 틀렸다는 신고(기본). '질문기록'=틀리진 않았지만 **질문 원문을 남길 값이 있는 경우** — 서버는 클라이언트가 번역한 도구 호출만 보고 원문 질문을 볼 수 없어서, 이게 유일한 통로다. **아무 질문이나 남기지 마라**: ①여러 도구를 엮어야 답이 된 복합 질문 ②우리 도구로 일부만 답한 질문(answered_fully=false) ③사용자의 전제가 틀려서 바로잡아야 했던 질문(예: '펜션'을 법적 업종명으로 알고 있던 경우) — 셋 중 하나일 때만. 단순 조회 한 건은 남기지 않는다 | 결함 |
| problem | No | 무엇이 틀렸는지. 사용자의 말을 그대로 옮겨도 된다. kind='결함'이면 필수, kind='질문기록'이면 비워도 된다. | |
| expected | No | 사용자가 맞다고 본 값 | |
| question | No | 사용자의 **원래 질문**(kind='질문기록'이면 필수). ⚠️ **개인 식별 조합은 일반형으로 치환해서 넣어라** — 이름·연락처·정확한 거주지·동행자 사연이 겹치면 그대로 적지 말 것(예: '○○동 △△빌라 사는 김□□, 부모님 팔순으로 속초 2박' → '가족 3인 속초 2박'). 무인증 공개 서버의 로그다 | |
| tool_used | No | 문제가 된 답을 만든 도구 | |
| wrong_value | No | 틀린 수치·문장 | |
| missing_axis | No | answered_fully=false일 때 **없어서 못 답한 축**(예: '실시간 빈방', '가격대 필터 없음', '반려동물 동반 가능 여부 미수록'). 로드맵과 수집 우선순위의 원천이 된다 | |
| answered_fully | No | kind='질문기록' 전용 — 이 서버 도구만으로 질문에 **완결된 답**을 했는가. false면 missing_axis에 무엇이 없었는지 적어라 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations show mutability flags, the description adds meaningful behavioral context: it writes to an unauthenticated public server, shares an hourly cap, cannot see the client's original question, and requires PII anonymization. No contradiction with annotations exists.
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 well-structured with bold headers and clear sections for the two modes. It is fairly long, but the complexity of a dual-purpose tool justifies the length; a short project-context aside could be trimmed but does not significantly hurt clarity.
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 8 parameters and no required fields, the description supplies all missing decision logic: when to report defects, when to log questions, PII handling, shared rate limits, and how missing_axis feeds the roadmap. The output schema already covers return values, so no further detail is needed here.
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 input schema already covers all 8 parameters with rich descriptions (100% coverage), so the baseline is 3. The description reinforces decision heuristics around kind and missing_axis but does not add parameter-level syntax or format details beyond the 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 names two specific actions—신고 (report defects) and 기록 (log original questions)—with the kind parameter distinguishing them. It is unmistakably different from the sibling stay_* tools, which are lookup/booking 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?
The description gives an explicit ordering rule: call this tool before issuing a correction, and warns against speculative calls ('추측으로 부르지는 말 것'). It also defines the three eligible conditions for question logging (complex, partial, false premise) and explains why both modes share one tool (rate limiting).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stay_booking_link예약 페이지 링크ARead-onlyIdempotentInspect
예약 가능한 원본 페이지로 가는 링크를 만든다.
이 서버는 예약을 처리하지 않는다 — 사용자를 원본 플랫폼으로 보낸다. 링크는 숙소명·주소로
만든 **검색 링크**이며 특정 객실의 예약 페이지가 아니다(그건 재고 어댑터가 붙어야 나온다).
| Name | Required | Description | Default |
|---|---|---|---|
| stay_id | Yes | stay_search가 준 stay_id | |
| platform | No | 어느 플랫폼 검색으로 보낼지 (naver, google, tour) | naver |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable context: it is a search link generator, not a booking handler, and it redirects to the original platform. This clarifies the tool's side effects (none) and its role in the flow.
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 two sentences, with the core purpose front-loaded and the scope clarification following immediately. There is no redundant information.
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 tool with two parameters, one enum, and an output schema, the description fully explains the tool's behavior and its limitations. It covers what the link is, what it isn't, and the fact that bookings are not handled. Nothing critical is missing.
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% and both parameters (stay_id, platform) have descriptions. The description mentions the link is built from property name and address, which hints at how the parameters are used, but does not add syntax or format details beyond the schema. The baseline of 3 is appropriate.
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 creates a link to the original booking page, and explicitly distinguishes it from a specific room reservation page. It uses a specific verb (creates) and resource (link), making its purpose unambiguous even without seeing the schema.
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 explains that the server does not process bookings and only redirects users to the original platform. It also notes that a specific room booking page requires an inventory adapter, setting an exclusion boundary. However, it does not explicitly name sibling tools or state when to prefer this over stay_search or stay_detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stay_detail숙소 상세ARead-onlyIdempotentInspect
숙소 하나의 상세 정보와 재고를 조회한다. 재고 실시간 재확인은 여기서만 한다.
| Name | Required | Description | Default |
|---|---|---|---|
| guests | No | 인원(1~30) | |
| checkin | No | 체크인 YYYY-MM-DD | |
| stay_id | Yes | stay_search가 준 stay_id (예: tourapi:2671267) | |
| checkout | No | 체크아웃 YYYY-MM-DD |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds the valuable behavioral detail that it performs real-time inventory re-check, which goes beyond the annotations. There is no contradiction.
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 concise sentences that front-load the main purpose and add the unique real-time check. No wasted words, and the structure is effective.
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?
Given the output schema exists and all parameters are fully described in the schema, the description is complete for an agent to call it correctly. It states what the tool does and highlights the unique real-time check, which is all that is needed.
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 all parameters are already documented in the schema. The description adds no additional parameter-specific information, so it does not exceed the baseline for high coverage.
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 (조회한다), resource (숙소 하나), and scope (상세 정보와 재고). It clearly distinguishes from siblings like stay_search by focusing on a single stay and explicitly mentions the unique real-time inventory re-check, which sets it apart.
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 states that real-time inventory re-check is only done here, giving a clear condition for when to use this tool. However, it does not name alternatives or explicitly say when not to use it, though the sibling names (stay_search, stay_booking_link) imply context. This is a clear but not exhaustive usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stay_search숙소 검색ARead-onlyIdempotentInspect
조건에 맞는 국내 숙소를 찾는다.
**재고를 확인하지 못한 숙소를 결과에서 지우지 않는다.** availability가 unknown이면
빈방 여부를 모른다는 뜻이고, 만실이라는 뜻이 아니다. 사용자에게 그렇게 전달하라.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 반환 개수 (최대 50) | |
| guests | No | 인원(1~30) | |
| region | No | 지역. '강원 속초', '서울 마포구'처럼 시도+시군구. 정식명·구명·약칭 다 받는다('제주도'='제주'='제주특별자치도'). 행정구역 어휘와 대조해 걸고, 어휘에 없는 말(읍·면·동·도로명)은 주소 부분문자열로 내려간다 — 어느 쪽이었는지는 meta.region_matched_on에 적힌다. 0건이면 복구 경로가 meta.unapplied_conditions로 **반드시** 오고, 다시 걸 이름을 댈 수 있을 때만 meta.region_retry가 함께 온다(0건 = '없다'가 아니다). region_retry는 질의가 건 시도 안의 이름만 담는다. **로마자는 시도만 받는다**('Seoul'·'Jeju-do'는 통하고 'Gangnam'은 안 통한다) — 시군구 이하는 한글로 써라 | |
| checkin | No | 체크인 YYYY-MM-DD. 주면 재고 조회를 시도한다 — 지난 날짜면 재고는 조회하지 않는다(목록은 그대로 나온다) | |
| category | No | 숙소 종류 | |
| checkout | No | 체크아웃 YYYY-MM-DD |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds critical behavior beyond the readOnly/openWorld/idempotent annotations: '재고를 확인하지 못한 숙소를 결과에서 지우지 않는다' and 'availability가 unknown이면 ... 만실이라는 뜻이 아니다. 사용자에게 그렇게 전달하라.' This prevents a false assumption that unknown availability means sold out or that such stays are excluded, and instructs the agent on how to communicate 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 tool description is two sentences: purpose first, then a bolded caveat. It is front-loaded and every sentence earns its place; the key behavioral warning is visually highlighted.
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?
Together with the detailed input schema, annotations, and output schema, the description covers what the tool does, the critical availability-unknown semantics, and parameter constraints. Nothing necessary for invoking the search correctly is missing.
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 baseline applies. The main description does not add parameter-specific meaning beyond saying '조건에 맞는' (matching conditions); the rich region and checkin semantics live in the schema descriptions themselves, not in the tool description.
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 opens with a clear verb+resource: '조건에 맞는 국내 숙소를 찾는다' (finds domestic accommodations matching conditions), which states the search purpose unambiguously. It does not explicitly name or contrast the sibling tools (stay_detail, stay_booking_link, report_issue), so it misses the strongest form of differentiation.
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 first sentence implies when to use the tool: whenever accommodations must be found by conditions such as region, dates, guests, and category. There are no explicit when-not-to-use instructions or pointers to alternatives like stay_detail for details or stay_booking_link for reservations, so guidance is only implied, not stated.
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.
3 tool updates
- Changed
stay_booking_link1 field changed- added
Input schema / properties / platform / enumAdded value: +[ + "naver", + "google", + "tour" +]
- Changed
stay_detail2 fields changed- added
Input schema / properties / guests / maximumAdded value: +30 - added
Input schema / properties / guests / minimumAdded value: +1
- Changed
stay_search2 fields changed- added
Input schema / properties / guests / maximumAdded value: +30 - added
Input schema / properties / guests / minimumAdded value: +1
3 tool updates
- Changed
stay_booking_link2 fields changed- changed
Input schema / properties / platform / descriptionPrevious value: -"어느 플랫폼 검색으로 보낼지"New value: +"어느 플랫폼 검색으로 보낼지 (naver, google, tour)" - removed
Input schema / properties / platform / enumRemoved value: -[ - "naver", - "google", - "tour" -]
- Changed
stay_detail3 fields changed- added
Input schema / properties / guests / descriptionAdded value: +"인원(1~30)" - removed
Input schema / properties / guests / maximumRemoved value: -30 - removed
Input schema / properties / guests / minimumRemoved value: -1
- Changed
stay_search3 fields changed- changed
Input schema / properties / guests / descriptionPrevious value: -"인원"New value: +"인원(1~30)" - removed
Input schema / properties / guests / maximumRemoved value: -30 - removed
Input schema / properties / guests / minimumRemoved value: -1
Related MCP Connectors
Official Korean apartment sale prices (MOLIT). Clean JSON, data global models cannot know — paid pe…
Check whether a short-term rental in South Korea is registered, using official government records.
Nationwide Korea: bus stops in 138 cities, 30-year climate normals, tourism (KR/EN).
Korean real estate: court auctions, 10M+ MOLIT records, subscription notice facts, loan/DSR rules
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).-
- FlicenseAqualityCmaintenanceEnables searching and comparing Airbnb (Korea) and Yanolja accommodation prices, with tools for price distribution, historical trends, and snapshot management, storing collected data in SQLite.4-
- AlicenseNot gradedqualityCmaintenanceExposes public agency dining expense data from Korean public institutions, enabling AI agents to search, rank, and retrieve details of tax-funded restaurant visits with transparency links and KakaoMap deep links.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI to query real-time Korean public data including weather, real estate prices, air quality, economic indicators, and business registration via natural language.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.