Brek - Hotel Wholesale Booking
Search hotels, compare room offers and public or masked wholesale rates, then continue on Brek.
使うべきか
品質と安全性
検出事項(7)
- HIGH
- MEDIUMsearch_accommodations 内
- MEDIUMget_accommodation_details 内
- MEDIUMget_accommodation_offers 内
- INFOsearch_accommodations 内
- INFOget_accommodation_details 内
- INFOget_accommodation_offers 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"brek": {
"url": "https://mcp.brek.com/mcp"
}
}
}リモートエンドポイント
https://mcp.brek.com/mcpstreamable-httpできること
ツール一覧
ツール(3)
🟢search_accommodations(destination, latitude, longitude, user_locale, user_location_city, ...)
Searches and compares multiple hotels in a city, neighborhood, airport, landmark, or other destination. Every search requires both checkinDate and checkoutDate, or dateIntent=tonight when the user explicitly asks for tonight. If the user supplied neither, ask for stay dates before calling; do not choose dates for them. Supports occupancy, price range, star rating, guest score, property types, amenities, cancellation preference, and sort order. Returns an ordered list with property IDs, hotel facts, masked wholesale price bands, public-rate comparisons, and Brek links. For a follow-up by position or partial hotel name, match against the most recent relevant search list. If one hotel matches, copy its propertyId exactly into get_accommodation_details or get_accommodation_offers; never shorten, combine, or replace IDs with placeholders. If the ID is unavailable, pass hotelName and optional destination instead. If several hotels match, ask which hotel the user means. Intended for destination discovery and multi-hotel comparison; room-level offers for one property are not included. Exact private wholesale prices are available on Brek.
入力スキーマ
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 160,
"description": "City, neighborhood, airport, landmark, or other broad destination."
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Optional latitude when already known."
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Optional longitude when already known."
},
"user_locale": {
"type": "string",
"minLength": 2,
"maxLength": 35,
"description": "Optional traveler locale from the Claude client context, such as en-US. Omit if unavailable; do not infer it from the hotel destination."
},
"user_location_city": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Optional approximate traveler city supplied by the Claude client. Omit if unavailable; this is not the hotel destination."
},
"user_location_country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Optional two-letter traveler country supplied by the Claude client, such as US. Omit if unavailable; do not infer it from the hotel destination."
},
"user_location_region": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Optional traveler state or region supplied by the Claude client. Omit if unavailable; do not infer it from the hotel destination."
},
"user_location_timezone": {
"type": "string",
"minLength": 3,
"maxLength": 80,
"description": "Optional IANA timezone of the traveler supplied by the Claude client. Omit if unavailable; this does not set the hotel's local stay dates."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"checkoutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"dateIntent": {
"type": "string",
"enum": [
"tonight"
],
"description": "Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates."
},
"timeZone": {
"type": "string",
"minLength": 3,
"maxLength": 80,
"description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"description": "Total adult guests. When omitted, Brek defaults to 2 adults per room."
},
"children": {
"type": "integer",
"minimum": 0,
"maximum": 8,
"description": "Total child guests; when omitted, uses childrenAges.length."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 17
},
"maxItems": 8,
"default": [],
"description": "Age of every child at check-in. The array length must equal children."
},
"rooms": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"default": 1,
"description": "Number of rooms. Each room receives the default of 2 adults when adults is omitted."
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
},
"page": {
"type": "integer",
"minimum": 1,
"default": 1
},
"sort": {
"type": "string",
"enum": [
"top-picks",
"distance",
"total",
"total-desc",
"reviews"
],
"default": "top-picks",
"description": "Result order: top-picks, distance, total price ascending, total price descending, or guest reviews."
},
"minimumPrice": {
"type": "number",
"minimum": 0,
"description": "Minimum nightly price in the selected currency."
},
"maximumPrice": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Maximum nightly price in the selected currency."
},
"minimumStarRating": {
"type": "number",
"minimum": 1,
"maximum": 5,
"description": "Minimum hotel star classification from 1 to 5; distinct from guest review score."
},
"starRatings": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"maxItems": 5,
"description": "Exact accepted hotel star classifications."
},
"minimumReviewScore": {
"type": "number",
"minimum": 0,
"maximum": 10,
"description": "Minimum guest review score out of 10; distinct from hotel star classification."
},
"propertyTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hotel",
"motel",
"resort",
"hostel",
"apartment",
"apart-hotel",
"extended-stay",
"condo",
"studio",
"house",
"townhome",
"guesthouse",
"bed-and-breakfast",
"villa",
"cabin",
"cottage",
"campground",
"rv",
"estate",
"boat",
"chateau",
"hotel-suites",
"corporate-apartment",
"farm-house",
"lodge",
"barn",
"mobile-home",
"house-boat",
"castle",
"mas",
"tower",
"mill",
"building"
]
},
"maxItems": 12,
"description": "Accepted accommodation types, such as hotel, motel, resort, hostel, or apartment."
},
"freeCancellationOnly": {
"type": "boolean",
"default": false,
"description": "Whether results require free cancellation or refundable rates."
},
"amenities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"pool",
"parking",
"wifi",
"free-wifi",
"kitchen",
"fireplace",
"beachfront",
"washer",
"dryer",
"air-conditioning",
"tv",
"heating",
"family-friendly",
"kids-friendly",
"pet-friendly",
"hot-tub",
"free-breakfast",
"free-cancellation",
"laundry-in-unit",
"laundry-on-site",
"accessible",
"for-couples",
"solarium",
"long-term-deals",
"pay-over-time",
"accept-local"
]
},
"maxItems": 12,
"description": "Amenities required in every result."
}
},
"required": [
"destination"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"stay_dates_required",
"stay_dates_invalid",
"destination_not_found"
]
},
"message": {
"type": "string"
},
"requiredInput": {
"type": "array",
"items": {
"type": "string",
"enum": [
"checkinDate",
"checkoutDate",
"destination"
]
}
},
"accommodations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"stateCode": {
"type": [
"string",
"null"
]
},
"propertyType": {
"type": [
"string",
"null"
]
},
"imageUrl": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"starRating": {
"type": [
"number",
"null"
]
},
"reviewScore": {
"type": [
"number",
"null"
]
},
"reviewScale": {
"type": [
"number",
"null"
]
},
"reviewCount": {
"type": [
"number",
"null"
]
},
"ratingLabel": {
"type": [
"string",
"null"
]
},
"refundable": {
"type": [
"boolean",
"null"
]
},
"highlights": {
"type": "array",
"items": {
"type": "string"
}
},
"pointsOfInterest": {
"type": [
"string",
"null"
]
},
"highlightReview": {
"type": [
"string",
"null"
]
},
"consecutivePositiveReviewCount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"wholesale": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"availability": {
"type": "string",
"enum": [
"available",
"sold_out"
],
"description": "Wholesale display availability. A wholesale rate higher than its public comparison is sold_out and has no price or booking action."
},
"url": {
"type": [
"string",
"null"
]
},
"nightly": {
"type": [
"number",
"null"
]
},
"total": {
"type": [
"number",
"null"
]
},
"maskedTotal": {
"type": [
"string",
"null"
]
},
"currency": {
"type": "string"
},
"includesTaxesAndFees": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"label",
"url",
"nightly",
"total",
"maskedTotal",
"currency",
"includesTaxesAndFees"
],
"additionalProperties": false
},
"comparison": {
"anyOf": [
{
"$ref": "#/properties/accommodations/items/properties/wholesale"
},
{
"type": "null"
}
]
},
"savings": {
"type": [
"number",
"null"
]
},
"savingsPercent": {
"type": [
"number",
"null"
]
},
"detailsUrl": {
"type": [
"string",
"null"
]
},
"availabilityToken": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"address",
"city",
"stateCode",
"propertyType",
"imageUrl",
"images",
"latitude",
"longitude",
"starRating",
"reviewScore",
"reviewScale",
"reviewCount",
"ratingLabel",
"refundable",
"highlights",
"pointsOfInterest",
"highlightReview",
"consecutivePositiveReviewCount",
"wholesale",
"comparison",
"savings",
"savingsPercent",
"detailsUrl",
"availabilityToken"
],
"additionalProperties": false
}
},
"page": {
"type": "integer"
},
"total": {
"type": "integer"
},
"totalPages": {
"type": "integer"
},
"search": {
"type": "object",
"properties": {
"destination": {
"type": "string"
},
"checkinDate": {
"type": "string"
},
"checkoutDate": {
"type": "string"
},
"adults": {
"type": "integer"
},
"children": {
"type": "integer"
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
}
},
"rooms": {
"type": "integer"
},
"currency": {
"type": "string"
},
"sort": {
"type": "string",
"enum": [
"top-picks",
"distance",
"total",
"total-desc",
"reviews"
]
}
},
"required": [
"destination",
"checkinDate",
"checkoutDate",
"adults",
"children",
"childrenAges",
"rooms",
"currency",
"sort"
],
"additionalProperties": false
},
"priceDisclosure": {
"type": "string"
}
},
"required": [
"accommodations",
"page",
"total",
"totalPages",
"search",
"priceDisclosure"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_accommodation_details(propertyId, hotelName, destination, currency)
Returns undated facts for one identified Brek property ID, including address, description, photos, amenities, check-in and checkout times, star rating, and guest-review data. When the user refers to a hotel from a previous search_accommodations result by full or partial name or list position, copy that result's propertyId exactly if the match is unique; never shorten, combine, or use a placeholder ID. Ask for clarification if several hotels match. If no exact property ID is available, hotelName and optional destination can identify a unique hotel. No stay dates are needed. Availability, room offers, prices, breakfast, and cancellation terms are not included.
入力スキーマ
{
"type": "object",
"properties": {
"propertyId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Exact Brek property ID copied from a previous search result. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure."
},
"hotelName": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Hotel name when no propertyId is available; a unique match is required."
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 160,
"description": "Optional city or region to disambiguate hotelName."
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"hotel_selection_required",
"hotel_not_found"
]
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"starRating": {
"type": [
"number",
"null"
]
},
"reviewScore": {
"type": [
"number",
"null"
]
},
"reviewScale": {
"type": [
"number",
"null"
]
},
"reviewCount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"highlights": {
"type": "array",
"items": {
"type": "string"
}
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"checkinFrom": {
"type": [
"string",
"null"
]
},
"checkoutUntil": {
"type": [
"string",
"null"
]
},
"propertyType": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"address",
"description",
"images",
"latitude",
"longitude",
"starRating",
"reviewScore",
"reviewScale",
"reviewCount",
"highlights",
"amenities",
"checkinFrom",
"checkoutUntil",
"propertyType"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_accommodation_offers(propertyId, hotelName, destination, checkinDate, checkoutDate, ...)
Returns one named or identified hotel's full-stay property data and live room offers for specified dates and occupancy. When the user refers to a hotel from a previous search_accommodations result by list position or partial name, copy its propertyId exactly if the match is unique; never shorten, combine, or use a placeholder ID. Ask for clarification if several hotels match. Use hotelName and optional destination when no exact propertyId is available. Includes wholesale room types and photos, breakfast, refundability, cancellation terms, public-rate comparisons, masked wholesale rate bands, and Brek links. Public-only room types are excluded. Wholesale options priced above their public comparison are marked sold_out without a price; the public comparison remains available. Single-room and multi-room stays are supported through aggregate occupancy plus optional per-room arrangements. Exact private wholesale prices are available on Brek.
入力スキーマ
{
"type": "object",
"properties": {
"propertyId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Exact Brek property ID copied from a previous search result or Brek stay URL. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure."
},
"hotelName": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Exact hotel name when propertyId is unavailable."
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 160,
"description": "Optional city or region for disambiguating hotelName."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"checkoutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"dateIntent": {
"type": "string",
"enum": [
"tonight"
],
"description": "Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates."
},
"timeZone": {
"type": "string",
"minLength": 3,
"maxLength": 80,
"description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"default": 2,
"description": "Total adult guests."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 17
},
"maxItems": 8,
"default": [],
"description": "Age of each child at check-in."
},
"rooms": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"default": 1,
"description": "Number of rooms. Each room requires at least one adult."
},
"roomArrangements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 8,
"description": "Adults staying in this specific room."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 17
},
"maxItems": 8,
"default": [],
"description": "Ages of children staying in this specific room."
},
"infants": {
"type": "integer",
"minimum": 0,
"maximum": 4,
"default": 0,
"description": "Number of infants staying in this room."
}
},
"required": [
"adults"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 3,
"description": "Exact per-room occupancy. Example: room 1 has 2 adults and room 2 has 2 adults plus children ages 4 and 2 => [{adults:2,childrenAges:[],infants:0},{adults:2,childrenAges:[4,2],infants:0}]. Array length equals rooms, and aggregate guests equal adults and childrenAges."
},
"availabilityToken": {
"type": "string",
"maxLength": 500
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "hotel_not_found"
},
"propertyId": {
"type": "string"
},
"property": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"hotel_selection_required",
"hotel_not_found"
]
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"starRating": {
"type": [
"number",
"null"
]
},
"reviewScore": {
"type": [
"number",
"null"
]
},
"reviewScale": {
"type": [
"number",
"null"
]
},
"reviewCount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"highlights": {
"type": "array",
"items": {
"type": "string"
}
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"checkinFrom": {
"type": [
"string",
"null"
]
},
"checkoutUntil": {
"type": [
"string",
"null"
]
},
"propertyType": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"address",
"description",
"images",
"latitude",
"longitude",
"starRating",
"reviewScore",
"reviewScale",
"reviewCount",
"highlights",
"amenities",
"checkinFrom",
"checkoutUntil",
"propertyType"
],
"additionalProperties": false
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"propertyId": {
"type": "string"
},
"roomTypeName": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"beds": {
"type": [
"string",
"null"
]
},
"roomSize": {
"type": [
"string",
"null"
]
},
"occupancyMax": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"breakfastIncluded": {
"type": "boolean"
},
"refundable": {
"type": [
"boolean",
"null"
]
},
"cancellationSummary": {
"type": [
"string",
"null"
]
},
"wholesale": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"availability": {
"type": "string",
"enum": [
"available",
"sold_out"
],
"description": "Wholesale display availability. A wholesale rate higher than its public comparison is sold_out and has no price or booking action."
},
"url": {
"type": [
"string",
"null"
]
},
"nightly": {
"type": [
"number",
"null"
]
},
"total": {
"type": [
"number",
"null"
]
},
"maskedTotal": {
"type": [
"string",
"null"
]
},
"currency": {
"type": "string"
},
"includesTaxesAndFees": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"label",
"url",
"nightly",
"total",
"maskedTotal",
"currency",
"includesTaxesAndFees"
],
"additionalProperties": false
},
"comparison": {
"anyOf": [
{
"$ref": "#/properties/offers/items/properties/wholesale"
},
{
"type": "null"
}
]
},
"savings": {
"type": [
"number",
"null"
]
},
"savingsPercent": {
"type": [
"number",
"null"
]
},
"upgradeTotal": {
"type": [
"number",
"null"
]
},
"upgradeMaskedTotal": {
"type": [
"string",
"null"
]
},
"payAtProperty": {
"type": [
"string",
"null"
]
},
"detailsUrl": {
"type": "string"
}
},
"required": [
"id",
"propertyId",
"roomTypeName",
"name",
"description",
"images",
"beds",
"roomSize",
"occupancyMax",
"amenities",
"breakfastIncluded",
"refundable",
"cancellationSummary",
"wholesale",
"comparison",
"savings",
"savingsPercent",
"upgradeTotal",
"upgradeMaskedTotal",
"payAtProperty",
"detailsUrl"
],
"additionalProperties": false
}
},
"stay": {
"type": "object",
"properties": {
"checkinDate": {
"type": "string"
},
"checkoutDate": {
"type": "string"
},
"adults": {
"type": "integer"
},
"children": {
"type": "integer"
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
}
},
"rooms": {
"type": "integer"
},
"roomArrangements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"adults": {
"type": "integer"
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
}
},
"infants": {
"type": "integer"
}
},
"required": [
"adults",
"childrenAges",
"infants"
],
"additionalProperties": false
}
},
"currency": {
"type": "string"
}
},
"required": [
"checkinDate",
"checkoutDate",
"adults",
"children",
"childrenAges",
"rooms",
"roomArrangements",
"currency"
],
"additionalProperties": false
},
"priceDisclosure": {
"type": "string"
}
},
"required": [
"propertyId",
"property",
"offers",
"stay",
"priceDisclosure"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス