HOTKER 핫커 | 한국 상품·휴대폰 성지 구매가 AI
Server Details
한국 상품·휴대폰 검증 조건 검색과 총비용·약정 반환금·결합할인 참고 계산. 출처·누락 조건을 제공하는 무인증·읽기 전용 MCP입니다.
- Status
- Healthy
- Uptime
- 100.0% over 29 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: three calculators split by object (combo discount, contract penalty, TCO), one evidence/explanation tool, and two search tools split by entity (mobile deals vs products). Descriptions explicitly cross-reference sibling tools and clarify when to use which, leaving little room for misselection.
All names follow a consistent snake_case verb_noun pattern: calculate_combo_discount, calculate_contract_penalty, calculate_mobile_tco, get_calculation_evidence, search_verified_mobile_deals, search_verified_products. Verb families (calculate/get/search) are used coherently across the set.
Six tools is well-scoped for a read-only mobile purchase advisory service, with three focused calculators, one evidence tool, and two search tools. Each tool earns its place without redundancy.
The surface covers the core domain well: discovery (deals and products), cost modeling (TCO, combo discount, penalty), and methodology transparency (evidence). Minor gaps exist, such as no direct deal-detail or deal-comparison operation, but agents can work around this via search plus calculators.
Available Tools
6 toolscalculate_combo_discountHOTKER 통신 결합할인 계산ARead-onlyIdempotentInspect
통신사별 월 결합할인과 동일 조건 24개월 합계의 참고값을 계산합니다. SKT는 mobileLines, KT는 mobileMonthlyTotal, LGU_PLUS는 mobilePlanFees가 필요합니다. data.result에 mobileDiscount, internetDiscount, iptvDiscount, monthlyDiscount, discount24Months를 원(KRW)으로 반환합니다. KT 휴대폰 할인은 개인 몫이 아닌 가족 전체 배분 전 금액입니다. 결과는 항상 estimated이며 가입 자격·명의·프로모션·승인은 통신사 확인이 필요합니다. 무인증·읽기 전용으로 가입 변경은 하지 않습니다. 전체 구매비용은 calculate_mobile_tco, 출처는 get_calculation_evidence를 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| iptv | No | SKT IPTV 결합 여부. 생략 시 false. KT·LGU_PLUS에서는 이 필드를 사용하지 않음. | |
| carrier | Yes | 계산용 통신사 코드. LG U+는 LGU_PLUS. 개인 계정이나 가입 자격을 조회하지 않습니다. | |
| mobileLines | No | SKT 필수: 결합할 휴대폰 회선 수 1~5. 다른 통신사는 이 필드를 사용하지 않음. | |
| internetTier | Yes | 인터넷 속도 등급. 200M은 LGU_PLUS만 지원. | |
| mobilePlanFees | No | LGU_PLUS 필수: 각 결합 회선의 월 요금제 금액 배열, 원(KRW), 1~10개. 다른 통신사는 사용하지 않음. | |
| mobileMonthlyTotal | No | KT 필수: 가족 전체 결합 대상 월정액 합계, 원(KRW). 요금약정 할인 후·선택약정 할인 전 기준. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다. |
| data | Yes | 계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요. |
| tool | Yes | 호출한 도구 이름. |
| status | Yes | calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님. |
| generatedAt | Yes | 응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다. |
| schemaVersion | Yes | 공개 응답 데이터 계약 버전. |
| mcpServerVersion | Yes | HOTKER MCP 서버 버전. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real context beyond them: results are always estimated, eligibility/name/promotion/approval require carrier confirmation, no authentication or subscription change occurs, and KT's discount is a family-total figure before allocation. This is exactly the extra nuance annotations cannot express.
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?
Front-loaded with the purpose, then parameter requirements, return fields, caveats, and routing. Every sentence carries information, though listing data.result field names slightly overlaps the output 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?
With an output schema present it need not explain returns, yet the carrier caveat, the estimated-status warning, and the sibling routing make the tool fully callable and interpretable. Nothing material is missing for a 6-param calculation tool.
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 the baseline is 3. The description mostly restates the carrier→parameter mapping already in the schema descriptions, but it does add one semantic point not present there: KT 휴대폰 할인은 개인 몫이 아닌 가족 전체 배분 전 금액, which clarifies how KT's input/output relates to a per-person figure.
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 (계산 of 통신사별 결합할인 and 24개월 합계), and explicitly distinguishes itself from calculate_mobile_tco (전체 구매비용) and get_calculation_evidence (출처). An agent can route without opening any 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?
Names the sibling alternatives and the condition selecting each: use calculate_mobile_tco for total purchase cost and get_calculation_evidence for sources. Carrier-specific usage is also conditioned (SKT→mobileLines, KT→mobileMonthlyTotal, LGU_PLUS→mobilePlanFees), so when/when-not is fully covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_contract_penaltyHOTKER 약정 반환금 계산ARead-onlyIdempotentInspect
SKT·KT·LG U+ 약정 반환금의 기본 참고값을 계산합니다. elapsedMonths 또는 elapsedDays 중 정확히 하나를 제공하세요. selective_contract는 accumulatedDiscount와 12/24개월 약정, public_subsidy는 receivedSubsidy와 24개월 약정이 필요합니다. data.result.penalty는 원(KRW)이며 항상 estimated입니다. LG U+ 지원금은 전환지원금 기본 산식 참고값으로 가입 프로그램별 최종 청구액과 다를 수 있습니다. 무인증·읽기 전용이며 통신사 개인계정 조회·해지는 하지 않습니다. 근거는 get_calculation_evidence를 사용하세요. 잘못된 조합은 오류를 반환하며 입력을 추측해 재호출하지 마세요.
| Name | Required | Description | Default |
|---|---|---|---|
| carrier | Yes | 계산용 통신사 코드. LG U+는 LGU_PLUS. 개인 계정이나 가입 자격을 조회하지 않습니다. | |
| elapsedDays | No | 경과 일수. elapsedMonths와 둘 중 하나만 입력. 12개월 약정 최대 365일, 24개월 최대 730일. | |
| penaltyType | Yes | selective_contract=선택약정 할인반환금, public_subsidy=지원금 반환 참고액. | |
| elapsedMonths | No | 경과 개월 수. elapsedDays와 둘 중 하나만 입력하며 약정 기간 이하여야 함. | |
| contractMonths | No | 약정 개월 수. 기본 24. public_subsidy는 24만 지원. | |
| receivedSubsidy | No | public_subsidy 필수: 실제 수령 지원금 총액, 원(KRW). 단말 원금·판매가가 아님. | |
| accumulatedDiscount | No | selective_contract 필수: 지금까지 받은 누적 요금 할인액, 원(KRW). 월 할인액이 아님. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다. |
| data | Yes | 계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요. |
| tool | Yes | 호출한 도구 이름. |
| status | Yes | calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님. |
| generatedAt | Yes | 응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다. |
| schemaVersion | Yes | 공개 응답 데이터 계약 버전. |
| mcpServerVersion | Yes | HOTKER MCP 서버 버전. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real context: result.penalty is always an estimate, LG U+ subsidy is a formula reference that may differ from the final bill, invalid combinations return errors, and no auth or account lookup is performed. This meaningfully exceeds the annotation set, though it stops short of describing scaling or edge-case behavior.
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?
Seven sentences, but front-loaded with purpose and each subsequent sentence carries a distinct constraint (input exclusivity, per-type requirements, output unit/estimate caveat, auth scope, evidence route, error policy). Dense but not padded; it could be slightly tightened but no sentence is wasted.
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 an output schema present, the description need not explain returns, yet it still flags the key output field and its estimated nature. Inputs, conditionality, error handling, auth scope, and the evidence sibling are all covered, so an agent has everything required to call 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 coverage is 100%, so 3 is the baseline, but the description synthesizes cross-parameter constraints (exactly one of the elapsed pair; per-penaltyType required fields; 24-month-only for public_subsidy) into a single rule set an agent can apply before reading the schema. Much of this is also in the schema text, so it does not reach 5.
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 precise verb+resource+scope: calculates SKT/KT/LG U+ contract penalty reference values. It also delimits what the tool is NOT ('무인증·읽기 전용이며 통신사 개인계정 조회·해지는 하지 않습니다'), so an agent can separate it from account-management siblings and from the other calculate_* 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?
Explicit conditional rules: provide exactly one of elapsedMonths/elapsedDays; selective_contract needs accumulatedDiscount; public_subsidy needs receivedSubsidy and a 24-month contract. It routes elsewhere for evidence (get_calculation_evidence) and forbids guessing on error ('입력을 추측해 재호출하지 마세요'), which is clear when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_mobile_tcoHOTKER 휴대폰 총비용 계산ARead-onlyIdempotentInspect
사용자가 확인한 견적의 12~36개월 총비용을 계산합니다. 단말 전체 판매가, 기간별 요금, 의무 부가서비스·비용, 할부이자에서 확정 할인을 차감하며 현금 사은품은 별도 표시합니다. 반환값 data.result의 expected_total_spend, completeness, warnings를 함께 읽고 incomplete/estimated를 확정 견적으로 표현하지 마세요. 무인증·읽기 전용이며 구매나 계정 조회를 하지 않습니다. 실제 판매조건 검색은 search_verified_mobile_deals, 산식 출처는 get_calculation_evidence를 사용하세요. 미확인 입력을 추측하거나 0으로 채우지 마세요.
| Name | Required | Description | Default |
|---|---|---|---|
| deal | Yes | 사용자가 확인한 판매 조건. 필수 device_sale_price는 단말 전체 금액이며 월 할부금이 아닙니다. | |
| horizonMonths | No | 총비용 비교 기간, 12~36개월. 기본 24. 할부 원금을 기간 비율로 축소하지 않음. | |
| activationDate | No | 개통 기준일 YYYY-MM-DD. 날짜형 유지조건 계산에 필요. 미확인이면 생략하고 경고 확인. | |
| userPlanMonthlyFee | No | 사용자가 원래 선택할 기준 요금제 월정액, 원(KRW). 조건 추가부담 비교용이며 실제 청구액이 아님. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다. |
| data | Yes | 계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요. |
| tool | Yes | 호출한 도구 이름. |
| status | Yes | calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님. |
| generatedAt | Yes | 응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다. |
| schemaVersion | Yes | 공개 응답 데이터 계약 버전. |
| mcpServerVersion | Yes | HOTKER MCP 서버 버전. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive/non-open-world, and the description adds material context beyond them: no authentication needed, no purchases or account lookups, cash gifts shown separately rather than deducted, and a directive to surface completeness/warnings rather than presenting incomplete results as confirmed.
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?
Front-loaded with the purpose, then scope, then output-handling caution, then disambiguation. Every sentence carries distinct information 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?
For a complex nested-schema tool with an output schema present, the description supplies the missing behavioral and routing context and references the key output fields to watch. Nothing an agent needs to invoke it correctly is absent.
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 the baseline is 3; however the description conveys the aggregate calculation model tying the parameters together (device price, period fees, mandatory add-ons, installment interest, confirmed discounts deducted, cash gifts separate), which is more than per-field restatement.
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 (총비용을 계산합니다) and scopes it to a user-confirmed quote over 12~36 months. It also enumerates the cost components it aggregates, so an agent can distinguish it from calculate_combo_discount or calculate_contract_penalty.
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?
Explicitly routes the agent: search_verified_mobile_deals for finding real sale conditions and get_calculation_evidence for formula provenance. It also gives clear when-not-to-act rules ('미확인 입력을 추측하거나 0으로 채우지 마세요').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calculation_evidenceHOTKER 계산 근거 확인ARead-onlyIdempotentInspect
HOTKER 계산 엔진 버전, 산식 설명, 통신사 출처 URL과 한계를 data.engines, data.carriers, data.limitations로 반환합니다. 계산 결과를 설명하거나 출처를 제시할 때 사용하세요. 무인증·읽기 전용이며 출처 사이트를 실시간 조회하거나 개인 계약을 검증하지 않습니다. calculationType은 요청 맥락 표시이며 현재 응답에서 다른 산식을 제거하지 않습니다. 실제 금액 계산은 calculate_mobile_tco, calculate_contract_penalty 또는 calculate_combo_discount를 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| carrier | No | 근거를 볼 통신사: SKT, KT, LGU_PLUS. 생략하면 3사 근거를 반환. | |
| calculationType | No | 관심 계산 유형. 기본 all. 요청 맥락으로 반환하며 현재 엔진·산식 전체 구조는 유지. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다. |
| data | Yes | 계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요. |
| tool | Yes | 호출한 도구 이름. |
| status | Yes | calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님. |
| generatedAt | Yes | 응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다. |
| schemaVersion | Yes | 공개 응답 데이터 계약 버전. |
| mcpServerVersion | Yes | HOTKER MCP 서버 버전. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new context beyond them: no authentication required, it does not query source sites in real time, and it does not verify personal contracts. It also discloses that calculationType is contextual only and does not filter the returned formula structure.
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?
Front-loaded with what is returned, followed by usage, caveats, and the alternative tools. Every sentence carries information, though the caveat sentence is dense and could be split for faster scanning.
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 an output schema present, return values need not be re-explained, and the description still names the top-level buckets. It covers scope, limitations, authentication, and sibling routing, leaving no gap an agent needs to call this 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 coverage is 100% and both params are enum-documented, so the baseline is 3. The description adds real meaning on top: it clarifies that calculationType is solely request context and currently removes no other formulas from the response, preventing an agent from assuming it narrows results.
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 (returns HOTKER calculation engine version, formula descriptions, carrier source URLs and limitations) and explicitly names the output buckets data.engines, data.carriers, data.limitations. It clearly distinguishes itself from the calculate_* siblings by declaring it only supplies evidence, not amounts.
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?
Gives the triggering condition ('계산 결과를 설명하거나 출처를 제시할 때 사용하세요') and explicitly routes actual amount computation to calculate_mobile_tco, calculate_contract_penalty, or calculate_combo_discount. When-to-use and when-not-to-use are both stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_verified_mobile_dealsHOTKER 검증 휴대폰 조건 검색ARead-onlyIdempotentInspect
HOTKER 카탈로그의 휴대폰 판매조건 중 추정 없이 24개월 TCO가 완전한 조건을 검색합니다. 결과는 두 등급입니다: verification.tier=verified는 공식·통신사 확인과 유효기간을 통과한 조건, verification.tier=partner_presented는 인증판매점이 제시한 조건으로 최근 7일 안에 갱신됐지만 통신사 확인 전입니다. verified가 항상 먼저 오며, includePartnerPresented=false이면 verified만 반환합니다. data.items, data.verifiedCount, data.partnerPresentedCount, data.dataAsOf와 개별 조건의 updatedAt·validUntil을 확인하세요. 최대 10개이며 빈 결과는 판매 불가나 0원을 의미하지 않습니다. 무인증·읽기 전용이며 개통·재고 확보·개인 가입 자격 확인을 하지 않습니다. 일반 상품은 search_verified_products, 사용자 견적 계산은 calculate_mobile_tco를 사용하세요. 백엔드 장애는 오류로 반환하며 전국 최저가를 보장하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 반환 건수 1~10, 기본 5. 전체 조건 수나 최저가 순위를 뜻하지 않음. | |
| query | No | 모델명·용량 등 검색어, 최대 100자. 생략하면 검색어 필터 없음. 개인정보 제외. | |
| carrier | No | 검색용 통신사 코드. LG U+는 LGU+이며 계산 도구의 LGU_PLUS와 다릅니다. 생략하면 통신사 필터 없음. | |
| includePartnerPresented | No | true(기본)면 통신사 확인 조건 뒤에 판매점 제시 조건(최근 7일 갱신)도 포함. false면 통신사 확인 조건만. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다. |
| data | Yes | 계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요. |
| tool | Yes | 호출한 도구 이름. |
| status | Yes | calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님. |
| generatedAt | Yes | 응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다. |
| schemaVersion | Yes | 공개 응답 데이터 계약 버전. |
| mcpServerVersion | Yes | HOTKER MCP 서버 버전. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), yet the description adds substantial behavior beyond them: a 10-item cap, the warning that empty results do not mean unsellable/0원, no 개통·재고·자격 checks, backend failures surfacing as errors, and no nationwide-lowest-price guarantee. This is exactly the extra context annotations cannot carry.
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?
Dense but front-loaded: the purpose and the verified/partner_presented tier definition come first, then output fields, limits, and sibling routing. A few clauses (the field enumeration for data.items, verifiedCount, etc.) are arguably redundant given the output schema, which keeps it from a 5.
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 search tool with 4 parameters, full schema coverage, and an output schema, this is complete: it defines the two result tiers, the ordering rule, the cap, the empty-result caveat, and the tool's non-capabilities. An agent has everything needed to call it and interpret results 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 100%, so every parameter is already documented in the schema, including the LGU+ vs LGU_PLUS code distinction and limit semantics. The description only restates the includePartnerPresented=false effect, adding no syntax or format meaning beyond the schema. Baseline 3 is correct.
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 (휴대폰 판매조건 with complete 24-month TCO) plus the scope constraint (추정 없이). It names siblings search_verified_products and calculate_mobile_tco, so an agent can route without opening either 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?
Explicit alternatives are given for two neighboring use cases (일반 상품 → search_verified_products, 사용자 견적 계산 → calculate_mobile_tco), and the includePartnerPresented=false branch is spelled out as a concrete when-to-use condition. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_verified_productsHOTKER 검증 상품 검색ARead-onlyIdempotentInspect
HOTKER 공개 카탈로그의 INDEX 자격 상품을 검색합니다. data.items에 공개 상품 사실과 링크, data.resultCount에 반환 건수, data.dataAsOf에 조회 기준 시각을 반환합니다. NOINDEX·REVIEW·수집중 항목은 제외합니다. 최대 10개이며 빈 배열은 해당 조회 범위에 적격 결과가 없다는 뜻이지 전체 시장의 상품 부재가 아닙니다. 실시간 전 쇼핑몰 검색·최저가 보장이 아니므로 개별 가격 관측일도 확인하세요. 무인증·읽기 전용이며 주문하지 않습니다. 통신 약정 조건은 search_verified_mobile_deals를 사용하세요. 백엔드 장애는 빈 결과가 아니라 오류로 반환합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 반환 건수 1~10, 기본 5. 전체 시장 개수나 페이지 번호가 아님. | |
| query | No | 상품명·브랜드·모델 검색어, 최대 100자. 생략하면 검색어 필터 없음. 개인정보·URL·인증정보 제외. | |
| category | No | 카탈로그 분류 키(예: smartphone). 모르면 생략. 최대 100자, 문자·숫자·점·밑줄·공백·하이픈만 허용. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다. |
| data | Yes | 계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요. |
| tool | Yes | 호출한 도구 이름. |
| status | Yes | calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님. |
| generatedAt | Yes | 응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다. |
| schemaVersion | Yes | 공개 응답 데이터 계약 버전. |
| mcpServerVersion | Yes | HOTKER MCP 서버 버전. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, and the description adds genuinely new behavior: a hard 10-item cap, the meaning of an empty array (no eligible results in scope, not market-wide absence), no real-time/full-market coverage, unauthenticated execution, no ordering, and that backend failures surface as errors rather than empty 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?
Front-loaded with purpose, then return shape, then exclusions and caveats; nearly every sentence carries operational value. Slight redundancy with the schema (repeating the 10-item limit) keeps it just short of a 5.
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 3-param read-only search with full schema coverage and an output schema, the definition covers everything an agent needs: scope, exclusions, result-shape basics, limits, empty-result semantics, and failure mode. Nothing material 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 each parameter is already documented in the schema; the description only echoes the 10-item cap. There is no added syntax, format, or interaction guidance beyond the structured fields, so the 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 ('INDEX 자격 상품을 검색') with a clear scope (공개 카탈로그), and explicitly distinguishes itself from the sibling search_verified_mobile_deals. An agent can identify this as the product-catalog lookup rather than the deal/contract lookup without opening any 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?
Explicitly routes the agent to search_verified_mobile_deals for 통신 약정 조건, and names the exclusion criteria (NOINDEX·REVIEW·수집중 제외). It also warns when NOT to rely on it (실시간 전체 쇼핑몰 검색·최저가 보장 아님), which is when-not guidance in practice.
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
- Changed
calculate_combo_discount2 fields changed- changed
Output schema / properties / status / descriptionPrevious value: -"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님."New value: +"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님." - changed
Output schema / properties / status / enumPrevious value: -[ - "calculated", - "estimated", - "incomplete", - "reference", - "verified" -]New value: +[ + "calculated", + "estimated", + "incomplete", + "reference", + "verified", + "partner_presented" +]
- Changed
calculate_contract_penalty2 fields changed- changed
Output schema / properties / status / descriptionPrevious value: -"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님."New value: +"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님." - changed
Output schema / properties / status / enumPrevious value: -[ - "calculated", - "estimated", - "incomplete", - "reference", - "verified" -]New value: +[ + "calculated", + "estimated", + "incomplete", + "reference", + "verified", + "partner_presented" +]
- Changed
calculate_mobile_tco2 fields changed- changed
Output schema / properties / status / descriptionPrevious value: -"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님."New value: +"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님." - changed
Output schema / properties / status / enumPrevious value: -[ - "calculated", - "estimated", - "incomplete", - "reference", - "verified" -]New value: +[ + "calculated", + "estimated", + "incomplete", + "reference", + "verified", + "partner_presented" +]
- Changed
get_calculation_evidence2 fields changed- changed
Output schema / properties / status / descriptionPrevious value: -"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님."New value: +"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님." - changed
Output schema / properties / status / enumPrevious value: -[ - "calculated", - "estimated", - "incomplete", - "reference", - "verified" -]New value: +[ + "calculated", + "estimated", + "incomplete", + "reference", + "verified", + "partner_presented" +]
- Changed
search_verified_mobile_deals3 fields changed- added
Input schema / properties / includePartnerPresentedAdded value: +{ + "default": true, + "description": "true(기본)면 통신사 확인 조건 뒤에 판매점 제시 조건(최근 7일 갱신)도 포함. false면 통신사 확인 조건만.", + "type": "boolean" +} - changed
Output schema / properties / status / descriptionPrevious value: -"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님."New value: +"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님." - changed
Output schema / properties / status / enumPrevious value: -[ - "calculated", - "estimated", - "incomplete", - "reference", - "verified" -]New value: +[ + "calculated", + "estimated", + "incomplete", + "reference", + "verified", + "partner_presented" +]
- Changed
search_verified_products2 fields changed- changed
Output schema / properties / status / descriptionPrevious value: -"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님."New value: +"calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과, partner_presented=판매점 제시 조건 포함(통신사 확인 전). 실제 계약 보증 아님." - changed
Output schema / properties / status / enumPrevious value: -[ - "calculated", - "estimated", - "incomplete", - "reference", - "verified" -]New value: +[ + "calculated", + "estimated", + "incomplete", + "reference", + "verified", + "partner_presented" +]
6 tool updates
- Changed
calculate_combo_discount7 fields changed- added
Input schema / properties / carrier / descriptionAdded value: +"계산용 통신사 코드. LG U+는 LGU_PLUS. 개인 계정이나 가입 자격을 조회하지 않습니다." - added
Input schema / properties / internetTier / descriptionAdded value: +"인터넷 속도 등급. 200M은 LGU_PLUS만 지원." - added
Input schema / properties / iptv / descriptionAdded value: +"SKT IPTV 결합 여부. 생략 시 false. KT·LGU_PLUS에서는 이 필드를 사용하지 않음." - added
Input schema / properties / mobileLines / descriptionAdded value: +"SKT 필수: 결합할 휴대폰 회선 수 1~5. 다른 통신사는 이 필드를 사용하지 않음." - added
Input schema / properties / mobileMonthlyTotal / descriptionAdded value: +"KT 필수: 가족 전체 결합 대상 월정액 합계, 원(KRW). 요금약정 할인 후·선택약정 할인 전 기준." - added
Input schema / properties / mobilePlanFees / descriptionAdded value: +"LGU_PLUS 필수: 각 결합 회선의 월 요금제 금액 배열, 원(KRW), 1~10개. 다른 통신사는 사용하지 않음." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "generatedAt": { + "description": "응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다.", + "type": "string" + }, + "mcpServerVersion": { + "description": "HOTKER MCP 서버 버전.", + "type": "string" + }, + "ok": { + "const": true, + "description": "성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다.", + "type": "boolean" + }, + "schemaVersion": { + "description": "공개 응답 데이터 계약 버전.", + "type": "string" + }, + "status": { + "description": "calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님.", + "enum": [ + "calculated", + "estimated", + "incomplete", + "reference", + "verified" + ], + "type": "string" + }, + "tool": { + "description": "호출한 도구 이름.", + "type": "string" + } + }, + "required": [ + "ok", + "schemaVersion", + "mcpServerVersion", + "tool", + "status", + "generatedAt", + "data" + ], + "type": "object" +}
- Changed
calculate_contract_penalty8 fields changed- added
Input schema / properties / accumulatedDiscount / descriptionAdded value: +"selective_contract 필수: 지금까지 받은 누적 요금 할인액, 원(KRW). 월 할인액이 아님." - added
Input schema / properties / carrier / descriptionAdded value: +"계산용 통신사 코드. LG U+는 LGU_PLUS. 개인 계정이나 가입 자격을 조회하지 않습니다." - added
Input schema / properties / contractMonths / descriptionAdded value: +"약정 개월 수. 기본 24. public_subsidy는 24만 지원." - added
Input schema / properties / elapsedDays / descriptionAdded value: +"경과 일수. elapsedMonths와 둘 중 하나만 입력. 12개월 약정 최대 365일, 24개월 최대 730일." - added
Input schema / properties / elapsedMonths / descriptionAdded value: +"경과 개월 수. elapsedDays와 둘 중 하나만 입력하며 약정 기간 이하여야 함." - added
Input schema / properties / penaltyType / descriptionAdded value: +"selective_contract=선택약정 할인반환금, public_subsidy=지원금 반환 참고액." - added
Input schema / properties / receivedSubsidy / descriptionAdded value: +"public_subsidy 필수: 실제 수령 지원금 총액, 원(KRW). 단말 원금·판매가가 아님." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "generatedAt": { + "description": "응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다.", + "type": "string" + }, + "mcpServerVersion": { + "description": "HOTKER MCP 서버 버전.", + "type": "string" + }, + "ok": { + "const": true, + "description": "성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다.", + "type": "boolean" + }, + "schemaVersion": { + "description": "공개 응답 데이터 계약 버전.", + "type": "string" + }, + "status": { + "description": "calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님.", + "enum": [ + "calculated", + "estimated", + "incomplete", + "reference", + "verified" + ], + "type": "string" + }, + "tool": { + "description": "호출한 도구 이름.", + "type": "string" + } + }, + "required": [ + "ok", + "schemaVersion", + "mcpServerVersion", + "tool", + "status", + "generatedAt", + "data" + ], + "type": "object" +}
- Changed
calculate_mobile_tco47 fields changed- added
Input schema / properties / activationDate / descriptionAdded value: +"개통 기준일 YYYY-MM-DD. 날짜형 유지조건 계산에 필요. 미확인이면 생략하고 경고 확인." - added
Input schema / properties / deal / descriptionAdded value: +"사용자가 확인한 판매 조건. 필수 device_sale_price는 단말 전체 금액이며 월 할부금이 아닙니다." - added
Input schema / properties / deal / properties / addons / descriptionAdded value: +"부가서비스 최대 20개. 없음이 확인된 경우 빈 배열. 미확인 비용을 없다고 단정하지 마세요." - added
Input schema / properties / deal / properties / addons / items / properties / addon_name / descriptionAdded value: +"부가서비스 이름. 개인정보 제외." - added
Input schema / properties / deal / properties / addons / items / properties / cancel_allowed_at / descriptionAdded value: +"해지 가능일 YYYY-MM-DD. date 유형이면 activationDate도 필요." - added
Input schema / properties / deal / properties / addons / items / properties / hold_days / descriptionAdded value: +"hold_type=days일 때 필요한 유지 일수. 해당 유형에서는 1 이상." - added
Input schema / properties / deal / properties / addons / items / properties / hold_months / descriptionAdded value: +"months 또는 m_plus일 때 필요한 유지 개월 수. 해당 유형에서는 1 이상." - added
Input schema / properties / deal / properties / addons / items / properties / hold_type / descriptionAdded value: +"유지조건: none=없음, days=일수, months=개월, m_plus=개통월 이후 N개월, date=변경 가능일, unknown=미확인. 해당 기간 필드를 함께 제공." - added
Input schema / properties / deal / properties / addons / items / properties / mandatory / descriptionAdded value: +"false이면 의무비용에서 제외. 생략 시 의무 서비스로 취급." - added
Input schema / properties / deal / properties / addons / items / properties / monthly_price / descriptionAdded value: +"부가서비스 월 비용, 원(KRW). 미확인을 0으로 넣지 마세요." - added
Input schema / properties / deal / properties / addons / items / properties / source_text / descriptionAdded value: +"유지조건 원문. 개인정보를 제거한 확인 자료만 입력." - added
Input schema / properties / deal / properties / bundle_required / descriptionAdded value: +"결합 조건 존재 여부. 실제 승인·할인 자격을 보장하지 않음." - added
Input schema / properties / deal / properties / card_required / descriptionAdded value: +"카드 조건 존재 여부. true가 할인 자격 충족을 뜻하지 않음." - added
Input schema / properties / deal / properties / cash_gift_amount / descriptionAdded value: +"현금 사은품 총액, 원(KRW). 기본 총비용에서 차감하지 않고 별도 표시." - added
Input schema / properties / deal / properties / cash_gift_payout_policy / descriptionAdded value: +"현금 사은품 지급 조건: 익월 말 또는 7일 이내. 지급 완료 보증 아님." - added
Input schema / properties / deal / properties / change_allowed_at / descriptionAdded value: +"요금제 변경 가능일 YYYY-MM-DD. date 유형이면 activationDate도 제공." - added
Input schema / properties / deal / properties / confirmed_discounts / descriptionAdded value: +"중복되지 않는 확정 할인 총액 목록. 숫자는 확정으로 간주하며 객체는 guaranteed=true, conditional!=true일 때만 차감." - changed
Input schema / properties / deal / properties / confirmed_discounts / items / anyOfPrevious value: -[ - { - "maximum": 1000000000, - "minimum": 0, - "type": "number" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "maximum": 1000000000, - "minimum": 0, - "type": "number" - }, - "conditional": { - "type": "boolean" - }, - "guaranteed": { - "type": "boolean" - }, - "mandatory": { - "type": "boolean" - } - }, - "required": [ - "amount" - ], - "type": "object" - } -]New value: +[ + { + "description": "확정 총액, 원(KRW). 할인 배열의 숫자는 확정 할인으로 차감되므로 미확정 혜택은 숫자로 넣지 마세요.", + "maximum": 1000000000, + "minimum": 0, + "type": "number" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "description": "항목 전체 금액, 원(KRW). 월 금액이 아님.", + "maximum": 1000000000, + "minimum": 0, + "type": "number" + }, + "conditional": { + "description": "조건부 할인이면 true. guaranteed=true여도 차감하지 않음.", + "type": "boolean" + }, + "guaranteed": { + "description": "할인이 확정됐으면 true. 객체형 할인은 true일 때만 차감 후보.", + "type": "boolean" + }, + "mandatory": { + "description": "의무비용 배열에서 false이면 제외. 할인 배열에는 적용하지 않음.", + "type": "boolean" + } + }, + "required": [ + "amount" + ], + "type": "object" + } +] - added
Input schema / properties / deal / properties / deal_id / descriptionAdded value: +"사용자 견적 식별자. 고객 이름·전화번호·계약번호 금지." - added
Input schema / properties / deal / properties / device_sale_price / descriptionAdded value: +"지원금 반영 후 단말 전체 판매가/원금, 원(KRW). 월 할부금이 아님. 지원금을 다시 차감하지 마세요." - added
Input schema / properties / deal / properties / initial_plan_monthly_fee / descriptionAdded value: +"초기 요금제 월정액, 원(KRW). 선택약정 할인 적용 전 금액." - added
Input schema / properties / deal / properties / installment_interest / descriptionAdded value: +"amount이면 전체 할부이자 원(KRW), apr이면 연이율 소수(5.9%=0.059, 0~1). 월 납입액이 아님." - added
Input schema / properties / deal / properties / installment_interest_type / descriptionAdded value: +"이자 방식. none=무이자 확인, amount=전체 이자 확정액, apr=연이율 추정. apr이면 installment_months도 필요." - added
Input schema / properties / deal / properties / installment_months / descriptionAdded value: +"할부 개월 수. 비교 기간 horizonMonths와 별개." - added
Input schema / properties / deal / properties / mandatory_costs / descriptionAdded value: +"추가 의무비용 전체 금액 목록. 월 비용은 해당 기간 총액으로 제공. 최대 20개." - changed
Input schema / properties / deal / properties / mandatory_costs / items / anyOfPrevious value: -[ - { - "maximum": 1000000000, - "minimum": 0, - "type": "number" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "maximum": 1000000000, - "minimum": 0, - "type": "number" - }, - "conditional": { - "type": "boolean" - }, - "guaranteed": { - "type": "boolean" - }, - "mandatory": { - "type": "boolean" - } - }, - "required": [ - "amount" - ], - "type": "object" - } -]New value: +[ + { + "description": "확정 총액, 원(KRW). 할인 배열의 숫자는 확정 할인으로 차감되므로 미확정 혜택은 숫자로 넣지 마세요.", + "maximum": 1000000000, + "minimum": 0, + "type": "number" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "description": "항목 전체 금액, 원(KRW). 월 금액이 아님.", + "maximum": 1000000000, + "minimum": 0, + "type": "number" + }, + "conditional": { + "description": "조건부 할인이면 true. guaranteed=true여도 차감하지 않음.", + "type": "boolean" + }, + "guaranteed": { + "description": "할인이 확정됐으면 true. 객체형 할인은 true일 때만 차감 후보.", + "type": "boolean" + }, + "mandatory": { + "description": "의무비용 배열에서 false이면 제외. 할인 배열에는 적용하지 않음.", + "type": "boolean" + } + }, + "required": [ + "amount" + ], + "type": "object" + } +] - added
Input schema / properties / deal / properties / plan_hold_days / descriptionAdded value: +"days 유형의 요금제 유지 일수. 해당 유형에서는 1 이상." - added
Input schema / properties / deal / properties / plan_hold_months / descriptionAdded value: +"months 또는 m_plus 유형의 유지 개월 수. 해당 유형에서는 1 이상." - added
Input schema / properties / deal / properties / plan_hold_original_text / descriptionAdded value: +"확인된 유지조건 원문. 개인정보 제외." - added
Input schema / properties / deal / properties / plan_hold_type / descriptionAdded value: +"유지조건: none=없음, days=일수, months=개월, m_plus=개통월 이후 N개월, date=변경 가능일, unknown=미확인. 해당 기간 필드를 함께 제공." - added
Input schema / properties / deal / properties / post_hold_plan_monthly_fee / descriptionAdded value: +"유지기간 이후 요금제 월정액, 원(KRW). 선택약정 할인 적용 전 금액." - added
Input schema / properties / deal / properties / public_subsidy / descriptionAdded value: +"확인된 공시지원금, 원(KRW). device_sale_price에서 중복 차감하지 않음." - added
Input schema / properties / deal / properties / retail_price / descriptionAdded value: +"확인된 출고가, 원(KRW). 판매가 대신 사용하지 않음." - added
Input schema / properties / deal / properties / selection_discount_policy / descriptionAdded value: +"contract_discount의 확인된 요금 할인 정책. 임의로 25%를 채우지 마세요." - added
Input schema / properties / deal / properties / selection_discount_policy / properties / effective_at / descriptionAdded value: +"정책 적용일 YYYY-MM-DD. 조회·검증 사실을 의미하지 않음." - added
Input schema / properties / deal / properties / selection_discount_policy / properties / eligible_months / descriptionAdded value: +"할인 적용 개월 수. 생략 시 installment_months 또는 24 사용. 실제 약정 확인 필요." - added
Input schema / properties / deal / properties / selection_discount_policy / properties / initial_rate / descriptionAdded value: +"초기 요금제 할인율. 생략 시 rate 사용." - added
Input schema / properties / deal / properties / selection_discount_policy / properties / policy_id / descriptionAdded value: +"확인된 할인 정책 식별자. 미확인이면 생략." - added
Input schema / properties / deal / properties / selection_discount_policy / properties / post_hold_rate / descriptionAdded value: +"유지기간 이후 요금 할인율. 생략 시 rate 사용." - added
Input schema / properties / deal / properties / selection_discount_policy / properties / rate / descriptionAdded value: +"확인된 공통 요금 할인율. 25%는 0.25. 개별 기간 할인율보다 우선하지 않음." - added
Input schema / properties / deal / properties / selection_discount_policy / properties / source / descriptionAdded value: +"사용자가 확인한 할인 정책 근거. 개인정보를 넣지 마세요." - added
Input schema / properties / deal / properties / seller_subsidy / descriptionAdded value: +"확인된 판매자 지원금, 원(KRW). device_sale_price에서 중복 차감하지 않음." - added
Input schema / properties / deal / properties / subsidy_type / descriptionAdded value: +"지원방식: 공시지원금, 선택약정, 무지원, 미확인. 추측 금지." - added
Input schema / properties / deal / properties / trade_in_required / descriptionAdded value: +"기기 반납 조건 존재 여부. 실제 반납가를 보장하지 않음." - added
Input schema / properties / horizonMonths / descriptionAdded value: +"총비용 비교 기간, 12~36개월. 기본 24. 할부 원금을 기간 비율로 축소하지 않음." - added
Input schema / properties / userPlanMonthlyFee / descriptionAdded value: +"사용자가 원래 선택할 기준 요금제 월정액, 원(KRW). 조건 추가부담 비교용이며 실제 청구액이 아님." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "generatedAt": { + "description": "응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다.", + "type": "string" + }, + "mcpServerVersion": { + "description": "HOTKER MCP 서버 버전.", + "type": "string" + }, + "ok": { + "const": true, + "description": "성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다.", + "type": "boolean" + }, + "schemaVersion": { + "description": "공개 응답 데이터 계약 버전.", + "type": "string" + }, + "status": { + "description": "calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님.", + "enum": [ + "calculated", + "estimated", + "incomplete", + "reference", + "verified" + ], + "type": "string" + }, + "tool": { + "description": "호출한 도구 이름.", + "type": "string" + } + }, + "required": [ + "ok", + "schemaVersion", + "mcpServerVersion", + "tool", + "status", + "generatedAt", + "data" + ], + "type": "object" +}
- Changed
get_calculation_evidence3 fields changed- added
Input schema / properties / calculationType / descriptionAdded value: +"관심 계산 유형. 기본 all. 요청 맥락으로 반환하며 현재 엔진·산식 전체 구조는 유지." - added
Input schema / properties / carrier / descriptionAdded value: +"근거를 볼 통신사: SKT, KT, LGU_PLUS. 생략하면 3사 근거를 반환." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "generatedAt": { + "description": "응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다.", + "type": "string" + }, + "mcpServerVersion": { + "description": "HOTKER MCP 서버 버전.", + "type": "string" + }, + "ok": { + "const": true, + "description": "성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다.", + "type": "boolean" + }, + "schemaVersion": { + "description": "공개 응답 데이터 계약 버전.", + "type": "string" + }, + "status": { + "description": "calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님.", + "enum": [ + "calculated", + "estimated", + "incomplete", + "reference", + "verified" + ], + "type": "string" + }, + "tool": { + "description": "호출한 도구 이름.", + "type": "string" + } + }, + "required": [ + "ok", + "schemaVersion", + "mcpServerVersion", + "tool", + "status", + "generatedAt", + "data" + ], + "type": "object" +}
- Changed
search_verified_mobile_deals4 fields changed- added
Input schema / properties / carrier / descriptionAdded value: +"검색용 통신사 코드. LG U+는 LGU+이며 계산 도구의 LGU_PLUS와 다릅니다. 생략하면 통신사 필터 없음." - added
Input schema / properties / limit / descriptionAdded value: +"최대 반환 건수 1~10, 기본 5. 전체 조건 수나 최저가 순위를 뜻하지 않음." - added
Input schema / properties / query / descriptionAdded value: +"모델명·용량 등 검색어, 최대 100자. 생략하면 검색어 필터 없음. 개인정보 제외." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "generatedAt": { + "description": "응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다.", + "type": "string" + }, + "mcpServerVersion": { + "description": "HOTKER MCP 서버 버전.", + "type": "string" + }, + "ok": { + "const": true, + "description": "성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다.", + "type": "boolean" + }, + "schemaVersion": { + "description": "공개 응답 데이터 계약 버전.", + "type": "string" + }, + "status": { + "description": "calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님.", + "enum": [ + "calculated", + "estimated", + "incomplete", + "reference", + "verified" + ], + "type": "string" + }, + "tool": { + "description": "호출한 도구 이름.", + "type": "string" + } + }, + "required": [ + "ok", + "schemaVersion", + "mcpServerVersion", + "tool", + "status", + "generatedAt", + "data" + ], + "type": "object" +}
- Changed
search_verified_products4 fields changed- added
Input schema / properties / category / descriptionAdded value: +"카탈로그 분류 키(예: smartphone). 모르면 생략. 최대 100자, 문자·숫자·점·밑줄·공백·하이픈만 허용." - added
Input schema / properties / limit / descriptionAdded value: +"최대 반환 건수 1~10, 기본 5. 전체 시장 개수나 페이지 번호가 아님." - added
Input schema / properties / query / descriptionAdded value: +"상품명·브랜드·모델 검색어, 최대 100자. 생략하면 검색어 필터 없음. 개인정보·URL·인증정보 제외." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": {}, + "description": "계산: inputBasis, engine, result, 선택 notice. 근거: engines, carriers, limitations. 검색: dataAsOf, resultCount, items 및 적용 필터. 개별 자료의 관측일·유효기간도 확인하세요.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "generatedAt": { + "description": "응답 생성 ISO 시각. 원본 자료의 갱신 시각과 다릅니다.", + "type": "string" + }, + "mcpServerVersion": { + "description": "HOTKER MCP 서버 버전.", + "type": "string" + }, + "ok": { + "const": true, + "description": "성공 여부. 실행 실패는 isError=true와 공개 오류 코드로 별도 반환합니다.", + "type": "boolean" + }, + "schemaVersion": { + "description": "공개 응답 데이터 계약 버전.", + "type": "string" + }, + "status": { + "description": "calculated=입력 기준 계산, estimated=참고 추정, incomplete=정보 부족, reference=근거, verified=검색 공개 기준 통과. 실제 계약 보증 아님.", + "enum": [ + "calculated", + "estimated", + "incomplete", + "reference", + "verified" + ], + "type": "string" + }, + "tool": { + "description": "호출한 도구 이름.", + "type": "string" + } + }, + "required": [ + "ok", + "schemaVersion", + "mcpServerVersion", + "tool", + "status", + "generatedAt", + "data" + ], + "type": "object" +}
6 tool updates
- First observed
calculate_combo_discount - First observed
calculate_contract_penalty - First observed
calculate_mobile_tco - First observed
get_calculation_evidence - First observed
search_verified_mobile_deals - First observed
search_verified_products
Related MCP Connectors
Deutscher Preisvergleich für Handys – Bestpreis-Suche (read-only).
나라장터 입찰공고·사전규격·낙찰정보 검색. Korean public procurement bids via KONEPS open API.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that provides tools to query Korean financial products (savings, deposits, pensions, mortgages, loans) via the FSS Open API, enabling search by company or product type.2MIT
- AlicenseCqualityDmaintenance한국 택배 배송 조회를 위한 MCP 서버 MCP Server for Korean Shipment Tracking21MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Korean government power/energy statutory plans. Enables AI agents to search and retrieve public power plan documents.MIT
- AlicenseAqualityDmaintenanceMCP server for Korea's KOLAS (Korean Laboratory Accreditation Scheme) under KATS. Search calibration / testing / inspection / medical-testing / reference-material-production / proficiency-testing accredited organizations and standards via knab.go.kr + data.go.kr.32 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.