
Seoul Essentials
io.github.do-droidPublished by GitHub account do-droidv0.2.0Updated Oct 24, 2026
22,000+ Seoul public facility data for tourists: restrooms, pharmacies, WiFi, AEDs, and subway.
Overview
Lets an assistant look up Seoul public facilities — restrooms, pharmacies, WiFi, AEDs, subway timetables — by type, district, or GPS proximity.
- What you can do
- Provides structured Seoul public facility data across 17 types, including free WiFi hotspots, AEDs, pharmacies, public restrooms, bike stations, markets, post offices, EV chargers, museums, parks, and tourist information centers. Tools include find_places (search by type, district, and service filters such as English-speaking or 24-hour), get_place_detail (full record by place ID), find_nearby (facilities sorted by distance from latitude/longitude), and get_subway_timetable (station schedules for Lines 1–9 by day type and direction).
- When to use it
- Useful when an assistant helps travelers in Seoul find nearby services, English- or other-language-capable pharmacies, restrooms, WiFi, AEDs, or subway schedules. Worth adding if location-based Seoul facility lookups are a recurring need rather than a one-off question.
- Requirements
- Runs as a local process over stdio, or can be reached as a remote streamable-http endpoint. The local option needs Python with uv and network access to the backend API; the README also shows a direct URL configuration for MCP clients. No accounts, API keys, or environment variables are declared.
Installation
In SourceWeft
- Open Seoul Essentials in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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.
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 typelimit(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):
Option C: Run Locally
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
Source: README.md at commit b993bd1
Tools
0Version history
1- v0.2.0LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.