Seoul Essentials

io.github.do-droid由 GitHub 账号 do-droid 发布v0.2.0更新于 Oct 24, 2026

22,000+ Seoul public facility data for tourists: restrooms, pharmacies, WiFi, AEDs, and subway.

已验证STDIO仅桌面位置与生活文件与存储

概览

AI 生成的概览

让助手按类型、行政区或 GPS 距离查询首尔公共设施,如洗手间、药店、WiFi、AED 和地铁时刻表。

可以做什么
提供首尔 17 类公共设施的结构化数据,包括免费 WiFi 热点、AED、药店、公共洗手间、共享单车站点、传统市场、邮局、电动车充电站、博物馆、公园和旅游咨询中心。工具包括 find_places(按类型、行政区和英语服务、24 小时等服务筛选条件搜索)、get_place_detail(按地点 ID 获取完整记录)、find_nearby(按经纬度距离排序查找附近设施)以及 get_subway_timetable(1 至 9 号线按日期类型和方向查询车站时刻表)。
适用场景
适合助手为在首尔的旅客查找附近服务、提供英语或其他语言服务的药店、洗手间、WiFi、AED 或地铁时刻表。如果基于位置的首尔设施查询是经常性需求而非一次性问题,值得添加。
运行要求
以 stdio 本地进程运行,也可通过远程 streamable-http 端点访问。本地方式需要 Python 与 uv,并能访问后端 API;README 也给出了 MCP 客户端的直连 URL 配置。未声明账号、API 密钥或环境变量。
安装前请注意
仅做只读查询,不涉及写入、支付或凭据。数据质量不一:邮局、传统市场、电动车充电站等类型缺少坐标,会回退到行政区中心点,因此附近排序只到行政区级别;药店语言支持仅覆盖受调查的子集,且该调查完全缺少江南区;开放时间仅部分类型有。地址部分由机器转写,可能与官方拼写不同。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Seoul Essentials,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Seoul Essentials — MCP Server

Essential public facility data for AI agents helping foreign tourists in Seoul, South Korea.

[seoul-essentials MCP server]

What is this?

Seoul Essentials is an MCP (Model Context Protocol) server that provides structured data about essential public facilities in Seoul. Designed for AI agents that assist foreign tourists with real-time queries about nearby services.

Available Data (37,900+ places, 17 types)

Counts are the live Firestore document counts as of 2026-08-04.

TypeDescriptionCount
wifiFree public WiFi hotspots (Seoul WiFi)12,008
aedAED locations; a site with several units is one record carrying aed_count and unit_locations7,890
pharmacyPharmacies in all 25 districts; ?filter.english=true narrows to the ~400 with surveyed English/Chinese/Japanese service5,849
toiletPublic restrooms across all 25 districts (2,008 open 24h)4,416
bike따릉이 (Seoul Bike) sharing stations3,340
heritageDesignated cultural properties2,009
future_heritageSeoul Future Heritage sites485
traditional_marketKorean traditional markets (Gwangjang, Namdaemun, ...)433
metro_facilitySubway lockers & facilities340
taxi_standTaxi stands255
post_officePost offices (EMS / international mail)227
ev_chargerEV charging stations187
museumMuseums & galleries171
baeknyeonCentury-old designated shops & restaurants168
parkMajor parks133
tourist_infoTourist information centers16
tourist_zoneTourist special zones7
subwaySubway timetables, Lines 1–9405 stations

MCP Tools

find_places

Search for public facilities by type and conditions.

Parameters:

  • type (required): one of the 17 types listed above (e.g., "toilet", "pharmacy", "post_office", "traditional_market", "ev_charger")
  • district (optional): Seoul district name in English or Korean (e.g., "gangnam", "강남구")
  • filters (optional): Service-specific filters (e.g., {"english": true}, {"is_24h": true}, {"indoor": true})
  • limit (optional): Max results, 1-50 (default: 10)

get_place_detail

Get full details of a specific place by its ID.

Parameters:

  • id (required): Place ID (e.g., "toilet_00001", "pharmacy_001", "aed_00001")

find_nearby

Find public facilities near GPS coordinates, sorted by distance.

Parameters:

  • lat (required): Latitude (Seoul range: ~37.4 to ~37.7)
  • lng (required): Longitude (Seoul range: ~126.7 to ~127.2)
  • radius_m (optional): Search radius in meters, 100-5000 (default: 500)
  • type (optional): Filter by facility type
  • limit (optional): Max results, 1-20 (default: 5)

get_subway_timetable

Get subway timetable for a specific station.

Parameters:

  • station (required): Station name in Korean or English (e.g., "강남" or "Gangnam")
  • line (optional): Line number (e.g., "2")
  • day_type (optional): "weekday" | "saturday" | "holiday" (default: "weekday")
  • direction (optional): "up" | "down"

Quick Start

Option A: Smithery (Recommended)

Visit Seoul Essentials on Smithery and follow the setup instructions for your MCP client.

Option B: Direct Connection

Add to your MCP client config (e.g., Claude Desktop claude_desktop_config.json):

json
{  "mcpServers": {    "seoul-essentials": {      "url": "https://seoul-essentials-mcp-230987091625.asia-northeast3.run.app/mcp"    }  }}

Option C: Run Locally

bash
git clone https://github.com/do-droid/seoul-essentials.gitcd seoul-essentialsAPI_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 carry services.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=gangnam still 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 carry services.language_support: "not surveyed" and deliberately omit the language keys — they are never advertised as English-capable, and ?filter.english=true excludes 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_nearby ranking 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 explanatory hours.note instead of open/close times.
  • Opening hours in general: is_24h: true appears 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 carry is_24h: false plus a hours.note saying what is actually known. Filtering ?filter.is_24h=true therefore returns only verified round-the-clock places.
  • address_en: 71.9% of records carry an English road address generated by Revised Romanization (scripts/romanize.py in 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) and emergency_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

来源:README.md,提交 b993bd1

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。