Seoul OpenData MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SEOUL_API_KEY | No | Your Seoul Open Data Plaza API key. Without this, the server runs in sample mode with limited functionality (only Gwanghwamun·Deoksugung for citydata tools, and most other tools return at most 5 rows). | |
| SEOUL_SUBWAY_API_KEY | No | Separate API key for realtime subway arrivals. Optional — if unset, the server falls back to SEOUL_API_KEY. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_placeA | Resolve a free-form place name to one of Seoul's 121 official real-time hotspots. Use FIRST when the user mentions a Seoul location. 자연어 장소명을 서울 실시간 도시데이터 핫스팟 121곳에 매칭합니다. |
| get_city_snapshotA | Get a combined snapshot (population/congestion + weather + road + top events) of a Seoul hotspot in ONE call. Prefer this for broad "how is X right now?" questions. 핫스팟 종합 현황 1회 요약. "지금 홍대 어때?" 같은 포괄 질문에 사용. |
| get_disaster_alertsA | Get recent emergency disaster text alerts (긴급재난문자) issued for a Seoul hotspot area. 핫스팟 지역 긴급재난문자. "지금 재난문자 온 거 있어?" 류 질문에 사용. |
| get_populationA | Get real-time population, congestion level (여유/보통/약간 붐빔/붐빔), demographics, and optional 12-hour AI forecast for a Seoul hotspot. 서울 핫스팟의 실시간 인구·혼잡도·성연령 비율·12시간 예측을 조회합니다. "지금 강남역 혼잡해?" 류 질문에 사용. |
| get_commercial_activityA | Get real-time card-payment based commercial activity level (한산한→분주한 4 levels) and per-industry breakdown for a Seoul hotspot (82 supported places). 신한카드 실시간 결제 기반 상권 현황. "지금 성수동 장사 잘돼?" 류 질문에 사용. |
| get_subway_arrivalsA | Get real-time subway train arrivals for a Seoul station. Pass the station name WITHOUT the "역" suffix if possible (e.g. "강남"). 지하철역 실시간 도착 정보. "2호선 강남역 열차 언제 와?" 류 질문에 사용. |
| get_bike_stationsA | Find Seoul public bike (따릉이) stations by name keyword and/or coordinates, with real-time available bike counts. 따릉이 대여소 실시간 잔여 대수. 장소 기반은 대여소 이름 키워드 매칭으로 동작 (예: query="강남역"). |
| get_parkingA | Get real-time available spaces in Seoul public parking lots, filtered by place/district keyword matched against lot name and address. 공영주차장 실시간 주차 가능 면수 (실시간 연계 122곳 한정). "종로 주차 자리 있어?" 류 질문에 사용. |
| get_road_trafficA | Get average road speed, congestion message, and accident/control incidents around a Seoul hotspot. 핫스팟 주변 도로소통·사고통제 현황. "광화문 근처 길 막혀?" 류 질문에 사용. |
| search_cultural_eventsA | Search Seoul cultural events (concerts, exhibitions, festivals) by keyword/category/district/date-range/free-only. 서울시 문화행사 검색. "이번 주말 마포구 무료 공연 있어?" 류 질문에 사용. |
| get_subway_ridershipA | Get per-station daily subway boarding/alighting counts for a date (data available up to ~2-4 days ago). 지하철 역별 일별 승하차 인원. "강남역 하루 승객 몇 명?" 류 질문에 사용. |
| get_living_populationA | Get de-facto (living) population estimates by administrative dong and hour. 행정동·시간대별 생활인구 통계. 실시간 아님 — 실시간 혼잡은 get_population 사용. |
| get_real_estate_pricesA | Get Seoul real-estate sale transaction records (price in 만원), filterable by district/dong/year. 부동산 매매 실거래가. "강남구 아파트 실거래가?" 류 질문에 사용. |
| get_weatherA | Get current temperature, precipitation, fine dust (PM10/PM2.5), UV, sunrise/sunset and weather warnings for a Seoul hotspot. 핫스팟 기준 날씨·미세먼지·기상특보. "지금 여의도 날씨 어때?" 류 질문에 사용. |
| get_air_qualityA | Get real-time air quality (PM10/PM2.5, grade) for Seoul districts. Omit district to get all 25. 자치구별 실시간 대기질. "오늘 강남구 미세먼지 어때?" 류 질문에 사용. |
| find_pharmaciesA | Find Seoul pharmacies by district or name keyword, with per-day operating hours. 약국 위치·전화·요일별 운영시간. "강남구 약국 몇 시까지 해?" 류 질문에 사용. |
| search_datasetA | Search the curated catalog of 28 Seoul Open Data datasets by keyword; entries with a dedicated tool point you to it. 카탈로그에서 데이터셋을 검색합니다. 정식 tool이 없는 데이터는 call_dataset으로 호출하세요. |
| get_dataset_specA | Get the path parameters, response fields, and call example for a catalog dataset id. call_dataset 호출 전 파라미터 명세를 확인합니다. |
| call_datasetA | Invoke a catalog dataset by id and get RAW (non-normalized) rows; check get_dataset_spec first for required params. 카탈로그 데이터셋을 직접 호출합니다. 응답은 정규화되지 않은 원본 필드입니다. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools target distinct domains (subway, parking, weather, etc.), but get_weather and get_air_quality overlap on fine dust data, and get_population vs get_living_population could be confused despite clarifying descriptions. Overall, boundaries are clear enough with the provided intent examples.
All tools follow a consistent verb_noun pattern (get_, search_, find_, call_). Verbs are semantically appropriate and nouns are specific, making the set predictable and easy to navigate.
19 tools is slightly heavy but well-justified for a comprehensive city data server covering real-time, historical, and catalog-based access. The count is within a manageable range and each tool has a distinct role, though a few could arguably be consolidated.
The tool surface covers a wide range of Seoul open data domains: place resolution, real-time congestion, weather, transport, commercial activity, cultural events, and administrative statistics. The catalog tools (search_dataset, get_dataset_spec, call_dataset) provide a fallback for any dataset without a dedicated tool, ensuring no dead ends.