Seoul Essentials — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Seoul Essentials (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Essential public facility data for AI agents helping foreign tourists in Seoul, South Korea.
<a href="https://glama.ai/mcp/servers/@do-droid/seoul-essentials"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@do-droid/seoul-essentials/badge" alt="seoul-essentials MCP server" /> </a>
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.
Counts are the live Firestore document counts as of 2026-08-04.
| Type | Description | Count |
|---|---|---|
wifi | Free public WiFi hotspots (Seoul WiFi) | 12,008 |
aed | AED locations; a site with several units is one record carrying aed_count and unit_locations | 7,890 |
pharmacy | Pharmacies in all 25 districts; ?filter.english=true narrows to the ~400 with surveyed English/Chinese/Japanese service | 5,849 |
toilet | Public restrooms across all 25 districts (2,008 open 24h) | 4,416 |
bike | 따릉이 (Seoul Bike) sharing stations | 3,340 |
heritage | Designated cultural properties | 2,009 |
future_heritage | Seoul Future Heritage sites | 485 |
traditional_market | Korean traditional markets (Gwangjang, Namdaemun, ...) | 433 |
metro_facility | Subway lockers & facilities | 340 |
taxi_stand | Taxi stands | 255 |
post_office | Post offices (EMS / international mail) | 227 |
ev_charger | EV charging stations | 187 |
museum | Museums & galleries | 171 |
baeknyeon | Century-old designated shops & restaurants | 168 |
park | Major parks | 133 |
tourist_info | Tourist information centers | 16 |
tourist_zone | Tourist special zones | 7 |
subway | Subway timetables, Lines 1–9 | 405 stations |
find_placesSearch 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_detailGet full details of a specific place by its ID.
Parameters:
id (required): Place ID (e.g., "toilet_00001", "pharmacy_001", "aed_00001")find_nearbyFind 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_timetableGet 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"Visit Seoul Essentials on Smithery and follow the setup instructions for your MCP client.
Add to your MCP client config (e.g., Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"seoul-essentials": {
"url": "https://seoul-essentials-mcp-230987091625.asia-northeast3.run.app/mcp"
}
}
}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.serverAn AI agent can use these tools to answer questions like:
English
日本語
中文
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
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.coordinates_approximate: true). District-level filters (?district=mapo) are exact; find_nearby ranking against these types is district-grained rather than building-grained.hours.note instead of open/close times.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.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.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.All data sourced from official Seoul government open data:
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.