Seoul Essentials について
Seoul Essentialsは、ソウルを訪れる外国人観光客を支援するAIエージェント向けのMCPサーバーです。政府の公式オープンデータを基に、施設の種類や位置、サービス条件から検索できます。
主な機能
- 0117種類の施設検索
- 02GPS座標から近隣施設を検索
- 03IDによる施設詳細の取得
- 04地下鉄時刻表の検索
- 05区やサービス条件での絞り込み
- 06データ品質に関するフィードバック
活用シーン
- 01近くの公衆トイレやAEDを探す
- 02言語対応の薬局を見つける
- 03駅の地下鉄時刻表を確認する
- 04無料Wi-Fiや公共施設を検索する
MCP 対応
施設検索、近隣検索、施設詳細、地下鉄時刻表、フィードバック用のツールをMCPクライアントに提供します。データは政府公式データセットに基づくソウルの公共施設・交通情報です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/do-droid/seoul-essentials:0.2.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/do-droid/seoul-essentials:0.2.0Streamable HTTPツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| type | enum | はい | 施設の種類 — "toilet"(公衆トイレ)、"pharmacy"(薬局。外国語対応が確認済みの施設はフィルター {"english": true} を指定)、 "wifi"(無料 WiFi ホットスポット)、"aed"(除細動器の設置場所)、 "tourist_info"(観光案内所)、"baeknyeon"(百年老舗)、 "bike"(따릉이 シェアサイクルのステーション)、"future_heritage"(ソウル未来遺産)、 "heritage"(指定文化財)、"museum"(博物館・美術館)、 "park"(主要な公園)、"taxi_stand"(タクシー乗り場)、 "metro_facility"(地下鉄のロッカー)、"tourist_zone"(観光特区)、 "post_office"(EMS/国際郵便を扱う郵便局)、 "traditional_market"(広蔵市場、南大門市場などの韓国伝統市場)、 "ev_charger"(EV 充電ステーション)。toilet | pharmacy | wifi | aed | tourist_info | baeknyeon | bike | future_heritage | heritage | museum | park | taxi_stand | metro_facility | tourist_zone | post_office | traditional_market | ev_charger |
| district | any | いいえ | ソウルの区名。英語または韓国語で指定します(例:"gangnam"、"jongno"、"강남구"、"종로구")。 |
| filters | any | いいえ | サービス固有のキーと値のペアによるフィルターです。例:英語対応の薬局には {"english": true}、24 時間利用可能なトイレには {"is_24h": true}、屋内 WiFi には {"indoor": true} を指定します。 |
| limit | integer | いいえ | 返す結果の最大数(1~50、デフォルトは 10)。 |
詳細
ソウルの必須施設 — MCP サーバー
韓国・ソウルを訪れる外国人観光客を支援する AI エージェント向けの、公共施設に関する基本データです。
これは何ですか?
Seoul Essentials は、ソウルの公共施設に関する構造化データを提供する MCP(Model Context Protocol)サーバーです。近くのサービスについてリアルタイムで問い合わせる外国人観光客を支援する AI エージェント向けに設計されています。
利用可能なデータ(37,900 件以上の場所、17 種類)
件数は、2026-08-04 時点の Firestore ドキュメントのリアルタイム件数です。
| 種類 | 説明 | 件数 |
|---|---|---|
wifi | 無料の公共 WiFi スポット(Seoul WiFi) | 12,008 |
aed | AED の設置場所。複数台ある施設は、aed_count と unit_locations を含む 1 レコードです | 7,890 |
pharmacy | 25 区すべての薬局。?filter.english=true を指定すると、英語/中国語/日本語対応状況が調査済みの約 400 件に絞り込めます | 5,849 |
toilet | 25 区すべての公衆トイレ(2,008 か所は 24 時間営業) | 4,416 |
bike | 따릉이(ソウル自転車)のシェアサイクルステーション | 3,340 |
heritage | 指定文化財 | 2,009 |
future_heritage | ソウル未来遺産の施設 | 485 |
traditional_market | 韓国の伝統市場(広蔵市場、南大門市場など) | 433 |
metro_facility | 地下鉄のロッカーと施設 | 340 |
taxi_stand | タクシー乗り場 | 255 |
post_office | 郵便局(EMS/国際郵便) | 227 |
ev_charger | EV 充電ステーション | 187 |
museum | 博物館・ギャラリー | 171 |
baeknyeon | 100 年の歴史を持つ指定店舗・レストラン | 168 |
park | 主要な公園 | 133 |
tourist_info | 観光案内所 | 16 |
tourist_zone | 観光特区 | 7 |
subway | 地下鉄の時刻表、1~9 号線 | 405 駅 |
MCP ツール
find_places
種類や条件を指定して公共施設を検索します。
パラメーター:
type(必須):上記 17 種類のいずれか(例:"toilet"、"pharmacy"、"post_office"、"traditional_market"、"ev_charger")district(任意):ソウルの区名。英語または韓国語で指定します(例:"gangnam"、"강남구")filters(任意):サービス固有のフィルター(例:{"english": true}、{"is_24h": true}、{"indoor": true})limit(任意):結果の最大件数、1~50(デフォルト:10)
get_place_detail
ID を指定して施設の詳細を取得します。
パラメーター:
id(必須):施設 ID(例:"toilet_00001"、"pharmacy_001"、"aed_00001")
find_nearby
GPS 座標の近くにある公共施設を距離順に検索します。
パラメーター:
lat(必須):緯度(ソウルの範囲:約 37.4~37.7)lng(必須):経度(ソウルの範囲:約 126.7~127.2)radius_m(任意):検索半径(メートル)、100~5000(デフォルト:500)type(任意):施設の種類で絞り込みますlimit(任意):結果の最大件数、1~20(デフォルト:5)
get_subway_timetable
駅を指定して地下鉄の時刻表を取得します。
パラメーター:
station(必須):駅名を韓国語または英語で指定します(例:"강남"または"Gangnam")line(任意):路線番号(例:"2")day_type(任意):"weekday"|"saturday"|"holiday"(デフォルト:"weekday")direction(任意):"up"|"down"
クイックスタート
オプション A:Smithery(推奨)
Smithery の Seoul Essentials にアクセスし、お使いの MCP クライアント向けのセットアップ手順に従ってください。
オプション B:直接接続
MCP クライアントの設定(例:Claude Desktop の claude_desktop_config.json)に追加します。
{
"mcpServers": {
"seoul-essentials": {
"url": "https://seoul-essentials-mcp-230987091625.asia-northeast3.run.app/mcp"
}
}
}
オプション C:ローカルで実行
git clone https://github.com/do-droid/seoul-essentials.git
cd seoul-essentials
API_BASE_URL="https://asia-northeast3-seoul-essentials.cloudfunctions.net/api" \
uv run python -m src.server
Example Queries
An AI agent can use these tools to answer questions like:
English
- "Find an English-speaking pharmacy near Gangnam Station"
- "Where is the nearest public restroom to my location?"
- "What's the subway schedule at Myeongdong Station?"
- "Find free WiFi hotspots in Hongdae area"
- "Where is the closest AED to Itaewon?"
日本語
- 「明洞で日本語が通じる薬局を探して」
- 「弘大の近くで無料Wi-Fiが使える場所は?」
- 「江南駅周辺のEV充電スポットを教えて」
中文
- "在明洞附近找会说中文的药店"
- "弘大附近哪里有24小时便利的公共厕所?"
- "梨泰院附近的清真餐厅在哪里?"
Feedback
We actively review and incorporate feedback to improve data quality and coverage.
For AI agents: Use the submit_feedback tool during a conversation to report issues or suggest improvements.
For developers: Open a feedback issue on GitHub.
Categories: new_data | data_quality | coverage | format | frequency | other
Known Data Limitations
pharmacy: Two layers. 417 records come from Seoul Open Data Plaza's "Foreign-language Capable Pharmacy Status" survey and carryservices.english/chinese/japanese; Gangnam-gu is absent from that upstream survey entirely (origin gap, not a parser bug), which is why?filter.english=true&district=gangnamstill returns nothing. The remaining 5,455 come from the MOIS LOCALDATA licence register and cover all 25 districts with precise coordinates and phone numbers. Licence-sourced records carryservices.language_support: "not surveyed"and deliberately omit the language keys — they are never advertised as English-capable, and?filter.english=trueexcludes them.post_office/traditional_market/ev_charger: Upstream datasets do not include lat/lng. Coordinates fall back to the centroid of each Seoul district (coordinates_approximate: true). District-level filters (?district=mapo) are exact;find_nearbyranking against these types is district-grained rather than building-grained.toilet: Opening hours come from a free-text field with 234 distinct formats. 2,008 records are confirmed 24-hour; 445 publish no usable hours and carry an explanatoryhours.noteinstead of open/close times.- Opening hours in general:
is_24h: trueappears only where the source supports it — toilets, 따릉이 docks, outdoor WiFi, EV chargers and tourist zones. Every other type's source publishes no hours at all, so those records carryis_24h: falseplus ahours.notesaying what is actually known. Filtering?filter.is_24h=truetherefore returns only verified round-the-clock places. address_en: 71.9% of records carry an English road address generated by Revised Romanization (scripts/romanize.pyin the backend repo). Building number, road and district are exact; a few loanword road names romanize phonetically rather than to their official spelling (올림픽로 → "Ollimpik-ro", officially "Olympic-ro"). Lot-number (지번) addresses carry no road name and are left empty rather than guessed.- Roadmap (next round):
halal_friendly(data.go.kr 15111159 was withdrawn — searching alternative sources) andemergency_room(data.go.kr 3043449 not findable — switching to e-gen.or.kr OpenAPI) are planned for the following refresh. Both were removed from the tool schema in 0.4.0 — they had been advertised as valid types while holding zero documents, so every call returned an empty result.
Data Sources
All data sourced from official Seoul government open data:
License
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。