Incheon Airport Transit MCP
by kimnchai · remote · no sign-in to list tools · v1.1.0 · published by GitHub user kimnchai
Incheon Airport (ICN) transit: limo buses, internal shuttles, taxi queues, AREX train schedule.
5 tools: 5 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads0Claude Code: allow
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http airport-transit https://airport-transit.kimnchai.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "airport_shuttle_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "airport_shuttle_schedule" says "schedule": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
5 tools
Changes things 5Claude Code: ask
airport_bus[인천공항 대중교통] 인천국제공항 ↔ 전국 공항버스 노선·시간표·요금·승차장.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 [인천공항 대중교통] 인천국제공항 ↔ 전국 공항버스 노선·시간표·요금·승차장. 데이터셋 갱신 60분. T1/T2 평일·주말 시간표 분리 제공. 버스 등급(일반/우등)·운수사 연락처 포함. Args: region: 한글 권역명(서울/경기/인천/강원/충청/경상/전라) 또는 1~7 코드. 빈값=전체. search: 버스번호/운수사/정류장 키워드 부분일치 (예: "강남", "6009", "KAL"). lang: "ko" (한글) 또는 "en" (영문 라벨 일부). Returns: {count, area, items: [{busnumber, route, fare, busclass, cpname, terminal_first_last, route_info, ride_loc}]}
Annotations the server declares
- title: 공항버스 노선·시간표·요금 조회
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
airport_shuttle_next[인천공항 대중교통] 인천공항 무료 셔틀버스 다음 도착 예측 시간(분).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 [인천공항 대중교통] 인천공항 무료 셔틀버스 다음 도착 예측 시간(분). 공항 내부 이동용 무료 셔틀 (T1 ↔ T2 ↔ AICC ↔ 화물청사역 등). 실시간 60분 갱신. Args: stop: 정류장 한글명(예: "제1여객터미널", "인천영종소방서") 또는 10자리 stopId. 빈값=전체. route: 노선 한글명(예: "AICC행", "AICC순환") 또는 8자리 routeId. 빈값=전체. lang: "ko"/"en". Returns: {count, items: [{stop_name, route_name, eta_minutes, ofr_time, ord, raw}]}
Annotations the server declares
- title: 공항 셔틀버스 다음 도착 예측
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
airport_shuttle_schedule[인천공항 대중교통] 인천공항 무료 셔틀버스 시간표 (의미 단위 요약).1 finding
Why it is in this group
- The name "airport_shuttle_schedule" says "schedule": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "airport_shuttle_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "airport_shuttle_schedule" says "schedule": a word for a change.
Description, as the server wrote it [인천공항 대중교통] 인천공항 무료 셔틀버스 시간표 (의미 단위 요약). 노선별 평일/휴일 첫차·막차·배차 간격·운행 편수 + 종점 출발 시각 전체 + 첫편의 정류장 순서별 통과 시각. 정류장×편수 raw row 노출 (수백~수천 건) 대신 사용자 관점에서 직접 의미 있는 단위로 압축. 데이터셋 갱신 60분. 참고: 현재 시간표 dataset 에는 'AICC행' (routeId 11100001, 11100006) 두 노선만 등록되어 있어 그 외 노선(AICC순환/T1행/T2행/T2직행/ 화물청사역행/T1막차)을 필터하면 빈 결과가 정상. 도착 예측은 airport_shuttle_next 가 모든 노선 커버. Args: route: 노선 한글명(예: "AICC행") 또는 8자리 routeId. 빈값=노선 목록만 요약. day: "weekday" (평일) / "holiday" (휴일) / "all" (전체, 기본). lang: "ko"/"en". Returns: route 빈값 시: {count, routes: [{route_id, route_name, weekday_departures, holiday_departures}]} route 지정 시: {route_id, route_name, day_filter, by_day: { weekday/holiday: { day_type_kr, departure_count, first_departure, last_departure, interval_avg, all_departures: [HH:MM,...], first_trip_stops: [{stop_order, stop_name, time}, ...] } }}
Annotations the server declares
- title: 공항 셔틀버스 시간표 요약
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
airport_taxi[인천공항 대중교통] 인천공항 여객터미널 택시 출차 현황 (대기수·대기시간·승차장).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분 단위 실시간. 지역별(서울/인천/경기/인터내셔널/우등/밴) 대기 택시 수와 대기시간. Args: terminal: "T1" / "T2" / "P01" / "P03". 기본 T1. lang: "ko"/"en". Returns: {terminal, status, update_time, regions: {서울/인천/경기/인터내셔널/우등/밴: {cnt, wait_time, stand}}}
Annotations the server declares
- title: 공항 택시 출차 현황 조회
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
airport_train[인천공항 대중교통] 인천공항 공항철도 (AREX) 열차 운행 정보.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 [인천공항 대중교통] 인천공항 공항철도 (AREX) 열차 운행 정보. D-3 ~ D+3 범위. 실시간 3분 갱신. 18개 역 (서울 ↔ 인천공항T2). 일반(Comm) 모든 역 정차, 직통(Dirc) 서울↔T1/T2 무정차. 기본 동작 — date 빈값(=오늘) 이면 현재 시각(KST) 이후 출발 열차만 시간순으로 정렬해 limit 개수만 반환 ("다음 N편"). date 명시하면 그 날 처음부터 limit 개수. 18역 × 다수 열차 → D-3~D+3 전체 응답이 비대해지므로 의미 단위로 잘림. Args: station: 한글역명(예: "서울","홍대입구"), 영문, 또는 3자리 코드. 빈값=전체. train_no: 운행번호 (예: "A2046"). 빈값=전체. type: "Comm"(일반) / "Dirc"(직통) / 빈값=전체. date: YYYY-MM-DD 또는 YYYYMMDD. 빈값=오늘. limit: 반환할 최대 row 수 (기본 5, 0=전체). 응답 크기 가드. lang: "ko"/"en". Returns: {count, total_available, next_only, limit, query, items: [{drv_dt, train_no, direction, train_class, station, stop_type, plan_arrv, plan_dptr, actual_arrv, actual_dptr}]} total_available > count 이면 limit 늘려 더 보세요 (예: limit=20).
Annotations the server declares
- title: 공항철도(AREX) 열차 운행 정보
- 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.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http airport-transit https://airport-transit.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": [],
"ask": [
"mcp__airport-transit__airport_bus",
"mcp__airport-transit__airport_shuttle_next",
"mcp__airport-transit__airport_shuttle_schedule",
"mcp__airport-transit__airport_taxi",
"mcp__airport-transit__airport_train"
],
"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 airport-transit. Review it before you use it.
