Korea Flight MCP
by kimnchai · remote · no sign-in to list tools · v1.3.0 · published by GitHub user kimnchai
14 Korean airports flight info + Incheon arrival/departure congestion + facility search.
8 tools: 6 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things6Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http korea-flight https://korea-flight.kimnchai.com/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 6Claude Code: ask
airport_overview[한국 공항 실시간 운항정보] 공항 오늘 개요 — 운항량, 상위 항공사·노선, 터미널 분포.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it [한국 공항 실시간 운항정보] 공항 오늘 개요 — 운항량, 상위 항공사·노선, 터미널 분포. Airport overview — today's volume, top airlines/routes, terminal split (ICN only). Useful for first-time visitors. Examples: - "What's GMP like?" → airport_overview("GMP") - "ICN T1 departures" → airport_overview("ICN", "T1") # T1 → P01 자동 변환 Args: airport: Airport IATA (e.g. GMP, ICN, CJU) terminal: (optional) Terminal ID. ICN 만 의미. 다음 입력 모두 허용: - "T1"/"T2"/"터미널1"/"터미널2"/"1"/"2" → 내부적으로 P01/P03 으로 자동 변환 - "탑승동"/"concourse" → P02 - "P01"/"P02"/"P03" 정식 코드 그대로 ICN 외 공항에선 무시됨. lang: Response language 'E' (default) / 'K' / 'C' / 'J'. Match user's language.
Annotations the server declares
- title: 공항 일일 운항 개요
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
incheon_arrivals[한국 공항 실시간 운항정보] 인천공항 입국 도착 정보 (H-2~H+2 시간 윈도우).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it [한국 공항 실시간 운항정보] 인천공항 입국 도착 정보 (H-2~H+2 시간 윈도우). 편명·도착시간·게이트·입국장(A-F)·내외국인 수. Incheon Airport arrival info (H-2~H+2 window). Per-flight schedule/actual time, aircraft gate, entry gate (A-F), domestic/foreign passenger counts. Examples: - "How busy is Incheon T1 arrivals right now?" → incheon_arrivals(terno="T1") - "Any arrivals from Hanoi?" → incheon_arrivals(airport="HAN") - "Where is VN416 arriving?" → incheon_arrivals(flight_id="VN416") Args: terno: Terminal filter — 'T1' / 'T2' / '' (all). Default ''. airport: Origin airport IATA filter (e.g., HAN, NRT). Default '' (all). flight_id: Specific flight ID filter (e.g., 'VN416'). Default '' (all). lang: Response language — 'E' English (default) / 'K' 한국어 / 'C' 中文 / 'J' 日本語. MUST match user's language.
Annotations the server declares
- title: 인천공항 입국 도착 정보
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
incheon_departure_congestion[한국 공항 실시간 운항정보] 인천공항 출국장 혼잡도 (1분 주기 실시간).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it [한국 공항 실시간 운항정보] 인천공항 출국장 혼잡도 (1분 주기 실시간). 출국장 게이트별 대기인원 + 발생일시. Incheon Airport departure hall congestion (1-min real-time). Per-gate wait count. T1 (P01) currently available; T2 (P02) coming soon per data.go.kr. Examples: - "How crowded is Incheon T1 departure right now?" → incheon_departure_congestion(terminal="T1") Args: terminal: 'T1' (or 'P01') — Terminal 1. 'T2'/'P02' pending data.go.kr release. lang: Response language — 'E' (default) / 'K' / 'C' / 'J'. Match user's language.
Annotations the server declares
- title: 인천공항 출국장 혼잡도
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
incheon_facilities[한국 공항 실시간 운항정보] 인천공항 입점 상업시설(매장·서비스) 정보 — 약 1,227개.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it [한국 공항 실시간 운항정보] 인천공항 입점 상업시설(매장·서비스) 정보 — 약 1,227개. dataset 15095043 (B551177 family). Incheon Airport commercial facilities (~1,227 stores/services). Filter by query. Examples: - "Where is Starbucks at Incheon?" → incheon_facilities(query="Starbucks") - "면세점 어디 있어?" → incheon_facilities(query="면세점", lang="K") - "Toilets in departure area?" → incheon_facilities(query="Toilet", area="departure") - "출국장 음식점" → incheon_facilities(query="식당", area="departure", lang="K") Args: query: Facility name / item / location filter (case-insensitive partial match). '' = top by area. area: 'arrival' (A=입국장) / 'departure' (D=출국장) / '' (all). lang: 'E' English (default — uses EN endpoint) / 'K' 한국어 (uses KR endpoint). C/J fall back to English.
Annotations the server declares
- title: 인천공항 상업시설 검색
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
track_my_flight[한국 공항 실시간 운항정보] 편명을 추적해 예정/변경 시각, 게이트, 수취대, 상태를 알려줍니다.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it [한국 공항 실시간 운항정보] 편명을 추적해 예정/변경 시각, 게이트, 수취대, 상태를 알려줍니다. (픽업에 유용) Track a flight — scheduled/estimated times, gate, baggage carousel, status. Carousel is critical for airport pickup. Examples: - "Is KE093 delayed?" → track_my_flight("KE093") - "7C166 arrival time & carousel" → track_my_flight("7C166") - "BX804F departure gate" → track_my_flight("BX804F", "GMP") Args: flight_id: Flight number (e.g. KE093, 7C166, BX804F) hub_airport: Hub airport IATA. If known, narrows search. Empty triggers 30-day snapshot DB lookup → falls back to 4-hub fan-out. lang: Response language 'E' (default) / 'K' / 'C' / 'J'. Match user's language.
Annotations the server declares
- title: 편명 추적
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 2Claude Code: allow
get_flight_status[한국 공항 실시간 운항정보] 한국 14개 공항의 실시간 출도착 정보를 조회합니다.No findings
Why it is in this group
- The name "get_flight_status" says "get": a word for reading.
Description, as the server wrote it [한국 공항 실시간 운항정보] 한국 14개 공항의 실시간 출도착 정보를 조회합니다. Look up real-time arrival/departure status for 14 Korean airports. Rendering: every line already carries the gate ('게이트 267' / 'Gate 267'), the terminal, and — for departures — the check-in counter ('체크인 A B C D' / 'check-in B01-B18'). When you render a table, give the gate AND the check-in counter their own columns next to 편명·목적지·시각·상태·터미널 — do not drop them. A departing passenger moves check-in → security → gate, so a table without those two sends them back to ask again. '-' means not assigned yet; show '-' rather than inventing or guessing a gate or counter. Args: airport: Airport IATA (ICN/GMP/PUS/CJU/TAE/CJJ etc., 14 total) direction: 'arrival' or 'departure' flight_date: date — omit or 'today' for live; 'yesterday'/'YYYY-MM-DD' for snapshot. Up to 30 days back. ICN historical data only on dates the nightly snapshot ran. lang: Response language — 'E' English (default) / 'K' 한국어 / 'C' 中文 / 'J' 日本語. MUST be filled to match user's language: 한국어 질문이면 'K', 中文이면 'C', 日本語면 'J'. Default 'E' is the safest pivot for any other language.
Annotations the server declares
- title: 공항 실시간 출도착 현황
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_by_route[한국 공항 실시간 운항정보] 두 공항 사이 오늘 운항편을 검색합니다 (양방향, 한쪽은 한국 공항).No findings
Why it is in this group
- The name "search_by_route" says "search": a word for reading.
Description, as the server wrote it [한국 공항 실시간 운항정보] 두 공항 사이 오늘 운항편을 검색합니다 (양방향, 한쪽은 한국 공항). Find today's flights between an origin and a destination airport. Bidirectional — at least one side must be a Korean hub. Examples: - "GMP→CJU schedule" → search_by_route("GMP", "CJU") - "Flights from Vancouver to Incheon" → search_by_route("YVR", "ICN") - "ICN→Narita flights" → search_by_route("ICN", "NRT") Args: origin: Origin airport IATA (e.g. GMP, ICN, YVR) destination: Destination airport IATA (e.g. CJU, NRT, ICN) lang: Response language 'E' (default) / 'K' / 'C' / 'J'. Match user's language.
Annotations the server declares
- title: 노선별 운항편 검색
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http korea-flight https://korea-flight.kimnchai.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__korea-flight__get_flight_status",
"mcp__korea-flight__search_by_route"
],
"ask": [
"mcp__korea-flight__track_my_flight",
"mcp__korea-flight__airport_overview",
"mcp__korea-flight__codeshare_info",
"mcp__korea-flight__incheon_arrivals",
"mcp__korea-flight__incheon_departure_congestion",
"mcp__korea-flight__incheon_facilities"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as korea-flight. Review it before you use it.
