cwsi.net Fare Classes & Mileage Calculators
Airline fare classes, fare comparisons and miles earned, from cwsi.net's charts and calculators.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWcompare_fare_classes에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"fares": {
"url": "https://mcp.cwsi.net/mcp"
}
}
}원격 엔드포인트
https://mcp.cwsi.net/mcpstreamable-http할 수 있는 일
도구 목록
도구 (8)
🟢get_fare_classes(airline, fare_class)
What an airline fare class (booking code) means and what it earns, from cwsi.net's fare charts. Give a fare letter (e.g. Delta K) or a Southwest fare name, or leave fare_class out to list them all. Covers Alaska, American, Delta, Hawaiian, JetBlue, Southwest and United.
입력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string",
"description": "Airline code or name: AS/Alaska, AA/American, DL/Delta, HA/Hawaiian, B6/JetBlue, WN/Southwest, UA/United."
},
"fare_class": {
"description": "A fare letter such as \"K\", or a Southwest fare name such as \"Choice\". Leave out to list every fare class.",
"type": "string"
}
},
"required": [
"airline"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"airline_name": {
"type": "string"
},
"columns": {
"type": "array",
"items": {
"type": "string"
}
},
"fares": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fare": {
"type": "string"
},
"group": {
"type": "string"
},
"description": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"fare",
"group",
"description",
"attributes"
],
"additionalProperties": false
}
},
"link": {
"type": "string"
}
},
"required": [
"airline",
"airline_name",
"columns",
"fares",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢compare_fare_classes(airline_a, fare_a, airline_b, fare_b)
Side-by-side comparison of two fare classes, e.g. Delta K vs United M, from cwsi.net's fare charts. Covers American, Alaska, Delta, Southwest and United.
입력 스키마
{
"type": "object",
"properties": {
"airline_a": {
"type": "string",
"description": "First airline: AA/American, AS/Alaska, DL/Delta, WN/Southwest or UA/United."
},
"fare_a": {
"type": "string",
"description": "Fare letter (or Southwest fare name) on the first airline."
},
"airline_b": {
"type": "string",
"description": "Second airline: AA/American, AS/Alaska, DL/Delta, WN/Southwest or UA/United."
},
"fare_b": {
"type": "string",
"description": "Fare letter (or Southwest fare name) on the second airline."
}
},
"required": [
"airline_a",
"fare_a",
"airline_b",
"fare_b"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"a": {
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"airline_name": {
"type": "string"
},
"fares": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fare": {
"type": "string"
},
"group": {
"type": "string"
},
"description": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"fare",
"group",
"description",
"attributes"
],
"additionalProperties": false
}
}
},
"required": [
"airline",
"airline_name",
"fares"
],
"additionalProperties": false
},
"b": {
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"airline_name": {
"type": "string"
},
"fares": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fare": {
"type": "string"
},
"group": {
"type": "string"
},
"description": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"fare",
"group",
"description",
"attributes"
],
"additionalProperties": false
}
}
},
"required": [
"airline",
"airline_name",
"fares"
],
"additionalProperties": false
},
"link": {
"type": "string"
}
},
"required": [
"a",
"b",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_delta_miles(price, fare, status, card)
Estimate what a Delta Air Lines ticket earns (miles or points, and status credit where it applies), using cwsi.net's calculator and the airline's published rules. Unofficial.
입력 스키마
{
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Ticket price in US dollars. Base fare plus carrier charges, without government taxes and fees (shown on your receipt)."
},
"fare": {
"default": "CR",
"description": "Fare type. CR = Classic (or Refundable); EX = Extra; PB = Basic (First, Premium Select, One); BA = Main Basic (Basic Economy). Delta Comfort, First, Premium Select and Delta One earn as Classic or Extra, whichever you bought.",
"type": "string",
"enum": [
"CR",
"EX",
"PB",
"BA"
]
},
"status": {
"default": "none",
"description": "Your Medallion status. none = None; FO = Silver; GM = Gold; PM = Platinum; DM = Diamond.",
"type": "string",
"enum": [
"none",
"FO",
"GM",
"PM",
"DM"
]
},
"card": {
"default": "none",
"description": "Paying with a Delta Amex card. none = No; BL = Blue; GO = Gold; PL = Platinum; RE = Reserve.",
"type": "string",
"enum": [
"none",
"BL",
"GO",
"PL",
"RE"
]
}
},
"required": [
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"calculator": {
"type": "string"
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"headline": {
"type": "array",
"items": {
"type": "string"
}
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"detail": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"progress": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"earned": {
"type": "string"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"threshold": {
"type": "string"
}
},
"required": [
"name",
"threshold"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
}
},
"required": [
"title",
"earned",
"tiers"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"link": {
"type": "string"
}
},
"required": [
"airline",
"calculator",
"inputs",
"headline",
"breakdown",
"notes",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_american_miles(price, fare, status, card)
Estimate what a American Airlines ticket earns (miles or points, and status credit where it applies), using cwsi.net's calculator and the airline's published rules. Unofficial.
입력 스키마
{
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Ticket price in US dollars. Base fare plus carrier-imposed fees, without government taxes."
},
"fare": {
"default": "1",
"description": "Fare type. 1 = Standard (Main Cabin and above); 0 = Basic Economy.",
"type": "string",
"enum": [
"0",
"1"
]
},
"status": {
"default": "none",
"description": "Your AAdvantage status. none = None; GL = Gold (+40%); PL = Platinum (+60%); PP = Platinum Pro (+80%); EP = Executive Platinum (+120%).",
"type": "string",
"enum": [
"none",
"GL",
"PL",
"PP",
"EP"
]
},
"card": {
"default": "none",
"description": "Paying with an AAdvantage card. none = No; MU = MileUp (+2 per $1); PS = Platinum Select (+2 per $1); GB = Globe (+3 per $1); EX = Executive (+4 per $1).",
"type": "string",
"enum": [
"none",
"MU",
"PS",
"GB",
"EX"
]
}
},
"required": [
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"calculator": {
"type": "string"
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"headline": {
"type": "array",
"items": {
"type": "string"
}
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"detail": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"progress": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"earned": {
"type": "string"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"threshold": {
"type": "string"
}
},
"required": [
"name",
"threshold"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
}
},
"required": [
"title",
"earned",
"tiers"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"link": {
"type": "string"
}
},
"required": [
"airline",
"calculator",
"inputs",
"headline",
"breakdown",
"notes",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_united_miles(price, fare, status, card, flights)
Estimate what a United Airlines ticket earns (miles or points, and status credit where it applies), using cwsi.net's calculator and the airline's published rules. Unofficial.
입력 스키마
{
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Ticket price (fare plus carrier-imposed charges, without government taxes) in US dollars. Shown on your receipt as the fare plus carrier-imposed charges."
},
"fare": {
"default": "ST",
"description": "Fare type. ST = Standard (Economy and above); BE = Basic Economy.",
"type": "string",
"enum": [
"ST",
"BE"
]
},
"status": {
"default": "none",
"description": "Your MileagePlus status. none = General (No status); PS = Silver; PG = Gold; PP = Platinum; 1K = 1K.",
"type": "string",
"enum": [
"none",
"PS",
"PG",
"PP",
"1K"
]
},
"card": {
"default": "none",
"description": "Paying with a United card. none = No; CM = Cardmember (+3 per $1); EX = Explorer (+6 per $1); QU = Quest (+7 per $1); CL = Club (+8 per $1); GW = Gateway (+5 per $1); DB = Gateway Debit (+4 per $1). Cardmember is a United card that you are not paying with.",
"type": "string",
"enum": [
"none",
"CM",
"EX",
"QU",
"CL",
"GW",
"DB"
]
},
"flights": {
"default": 1,
"description": "Flights on this ticket. Each flight (segment) earns 1 PQF. Basic Economy earns none.",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"calculator": {
"type": "string"
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"headline": {
"type": "array",
"items": {
"type": "string"
}
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"detail": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"progress": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"earned": {
"type": "string"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"threshold": {
"type": "string"
}
},
"required": [
"name",
"threshold"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
}
},
"required": [
"title",
"earned",
"tiers"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"link": {
"type": "string"
}
},
"required": [
"airline",
"calculator",
"inputs",
"headline",
"breakdown",
"notes",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_alaska_miles(price, when, fare, legacy, method, ...)
Estimate what a Alaska Airlines ticket earns (miles or points, and status credit where it applies), using cwsi.net's calculator and the airline's published rules. Unofficial.
입력 스키마
{
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Price paid (before taxes and fees) in US dollars. Needed for your card, or for the price method from 2027."
},
"when": {
"default": "2026",
"description": "When do you fly?. 2026 = Through Dec 31, 2026; 2027 = From Jan 1, 2027. Members choose a method from Oct 1, 2026; it applies to flights from Jan 1, 2027.",
"type": "string",
"enum": [
"2026",
"2027"
]
},
"fare": {
"default": "100",
"description": "Fare. 200 = First, full fare (J); 175 = First (C); 150a = First, discount (D, I); 150b = Main, full fare (Y, B); 125 = Main (H, K); 100 = Main, discount (M, L, V, S, N, Q, O, G); 0 = Saver (X). Only applies to some choices of the other fields; ignored otherwise.",
"type": "string",
"enum": [
"0",
"100",
"125",
"175",
"200",
"150a",
"150b"
]
},
"legacy": {
"default": "0",
"description": "Saver booked early or flown soon. 1 = Yes (30%); 0 = No (earns 0). Saver earns 30% when booked before Jun 11, 2026, or flown through Jul 31, 2026. Otherwise it earns 0. Only applies to some choices of the other fields; ignored otherwise.",
"type": "string",
"enum": [
"0",
"1"
]
},
"method": {
"default": "dist",
"description": "Your earning method. dist = Distance (1 per mile); price = Price paid (5 per $1); seg = Segments (500 per segment). Only applies to some choices of the other fields; ignored otherwise.",
"type": "string",
"enum": [
"dist",
"price",
"seg"
]
},
"kind": {
"default": "paid",
"description": "Fare type. paid = Paid fare (Main, Premium, First); basic = Basic or Saver (earns 0). Only applies to some choices of the other fields; ignored otherwise.",
"type": "string",
"enum": [
"paid",
"basic"
]
},
"status": {
"default": "none",
"description": "Your Atmos status. none = Member (No status); SV = Silver (+25%); GD = Gold (+50%); PT = Platinum (+100%); TT = Titanium (+150%).",
"type": "string",
"enum": [
"none",
"SV",
"GD",
"PT",
"TT"
]
},
"card": {
"default": "none",
"description": "Paying with an Atmos Rewards card. none = No; AS = Ascent (+3 per $1); SU = Summit (+3 per $1); BU = Business (+3 per $1).",
"type": "string",
"enum": [
"none",
"AS",
"SU",
"BU"
]
},
"miles": {
"description": "Miles flown. The flight distance in miles. Only applies to some choices of the other fields; ignored otherwise.",
"type": "number"
},
"segs": {
"default": 1,
"description": "Segments. Each flight (segment) earns 500 points. Only applies to some choices of the other fields; ignored otherwise.",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"calculator": {
"type": "string"
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"headline": {
"type": "array",
"items": {
"type": "string"
}
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"detail": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"progress": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"earned": {
"type": "string"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"threshold": {
"type": "string"
}
},
"required": [
"name",
"threshold"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
}
},
"required": [
"title",
"earned",
"tiers"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"link": {
"type": "string"
}
},
"required": [
"airline",
"calculator",
"inputs",
"headline",
"breakdown",
"notes",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_southwest_points(price, fare, status, card, flights)
Estimate what a Southwest Airlines ticket earns (miles or points, and status credit where it applies), using cwsi.net's calculator and the airline's published rules. Unofficial.
입력 스키마
{
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Ticket price (base fare, without taxes and fees) in US dollars. Shown on your receipt as the base fare, before taxes and fees."
},
"fare": {
"default": "CH",
"description": "Fare type. CE = Choice Extra (14 per $1); CP = Choice Preferred (10 per $1); CH = Choice (6 per $1); BA = Basic (2 per $1).",
"type": "string",
"enum": [
"CE",
"CP",
"CH",
"BA"
]
},
"status": {
"default": "Base",
"description": "Your Rapid Rewards status. Base = Base (No status); A-List = A-List (+25%); A-List Preferred = A-List Preferred (+100%).",
"type": "string",
"enum": [
"Base",
"A-List",
"A-List Preferred"
]
},
"card": {
"default": "none",
"description": "Paying with a Southwest card. none = No; PL = Plus (+2 per $1); PR = Premier (+3 per $1); PY = Priority (+4 per $1).",
"type": "string",
"enum": [
"none",
"PL",
"PR",
"PY"
]
},
"flights": {
"default": 1,
"description": "Flights on this ticket. A-List also needs 20 flights (A-List Preferred 40), counted in place of points.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"calculator": {
"type": "string"
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"headline": {
"type": "array",
"items": {
"type": "string"
}
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"detail": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"progress": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"earned": {
"type": "string"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"threshold": {
"type": "string"
}
},
"required": [
"name",
"threshold"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
}
},
"required": [
"title",
"earned",
"tiers"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"link": {
"type": "string"
}
},
"required": [
"airline",
"calculator",
"inputs",
"headline",
"breakdown",
"notes",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_jetblue_points(price, cabin, mfare, fare, direct, ...)
Estimate what a JetBlue ticket earns (miles or points, and status credit where it applies), using cwsi.net's calculator and the airline's published rules. Unofficial.
입력 스키마
{
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Fare paid (before taxes and fees) in US dollars. Points and tiles are earned on the fare before taxes and fees."
},
"cabin": {
"default": "main",
"description": "Cabin. main = Main; evenmore = EvenMore; mint = Mint.",
"type": "string",
"enum": [
"main",
"evenmore",
"mint"
]
},
"mfare": {
"default": "standard",
"description": "Fare. standard = Standard (3 per $1); flex = Flex (3 per $1). Mint is sold as Standard or Flex. No Base fare in Mint. Only applies to some choices of the other fields; ignored otherwise.",
"type": "string",
"enum": [
"standard",
"flex"
]
},
"fare": {
"default": "standard",
"description": "Fare. base = Base (1 per $1); standard = Standard (3 per $1); flex = Flex (3 per $1). Only applies to some choices of the other fields; ignored otherwise.",
"type": "string",
"enum": [
"base",
"standard",
"flex"
]
},
"direct": {
"default": "1",
"description": "Booked on jetblue.com or the app. 1 = Yes; 0 = No (Travel agent or other site). Booking direct earns the same points again.",
"type": "string",
"enum": [
"0",
"1"
]
},
"status": {
"default": "General Member",
"description": "Your TrueBlue status. General Member = General Member (No status); Mosaic 1 = Mosaic 1 (+3 per $1); Mosaic 2 = Mosaic 2 (+3 per $1); Mosaic 3 = Mosaic 3 (+4 per $1); Mosaic 4 = Mosaic 4 (+5 per $1).",
"type": "string",
"enum": [
"General Member",
"Mosaic 1",
"Mosaic 2",
"Mosaic 3",
"Mosaic 4"
]
},
"card": {
"default": "none",
"description": "Paying with a JetBlue card. none = No; JB = JetBlue Card (+3 per $1); JP = Plus (+6 per $1); JBZ = Business (+6 per $1); JPR = Premier (+6 per $1).",
"type": "string",
"enum": [
"none",
"JB",
"JP",
"JBZ",
"JPR"
]
}
},
"required": [
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"calculator": {
"type": "string"
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"headline": {
"type": "array",
"items": {
"type": "string"
}
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"detail": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"progress": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"earned": {
"type": "string"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"threshold": {
"type": "string"
}
},
"required": [
"name",
"threshold"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
}
},
"required": [
"title",
"earned",
"tiers"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"link": {
"type": "string"
}
},
"required": [
"airline",
"calculator",
"inputs",
"headline",
"breakdown",
"notes",
"link"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}커뮤니티
증거