把散在台南市衛生局十幾層選單裡的心理資源,變成一句話就查得到的東西。
你說:我們機構在哪幾份官方名單上?
它做:查四個來源 → 寬欣心理治療所 + 芯寬欣,兩個據點都在,
而且你們在「免費諮商合作名單」裡,每週一至五 8:00-21:00
這些資料 手動都查得到。問題是那些網址長這樣:
https://health.tainan.gov.tw/page.asp?mainid=0A3943E7-033E-4686-8514-7BD39368D32D
沒有語意,只有一串 GUID。 你不可能用猜的,只能從首頁一層一層點。
所以這支的價值不在「取得資料」,在 把跨來源的交叉比對自動化:
- 三份官方名單互相漏收了誰?
- 一個行政區到底歸哪一處心衛中心管?
- 免費諮商的時段集中在星期幾、哪幾天等於沒有?
這些手動要花半天,而且下個月資料一動就得重做。
git clone https://github.com/scatjay/kxmind-tainan-mental-mcp.git
cd kxmind-tainan-mental-mcp
pip install -r requirements.txtclaude_desktop_config.json 加:
{
"mcpServers": {
"tainan-mental": {
"command": "python",
"args": ["C:/你的路徑/kxmind-tainan-mental-mcp/server.py"]
}
}
}重開 Claude,然後說「跑一下 ping」。看到資料筆數就代表通了。
沒有帳號要註冊,沒有金鑰要申請。 repo 裡已經附好資料快照。
| 工具 | 做什麼 |
|---|---|
ping |
確認接上了,順便看快照多新 |
find_myself |
查一家機構出現在哪幾份名單上 |
list_clinics |
列治療所/諮商所/精神科診所,可依區、依類型 |
find_free_counseling |
找免費諮商,可指定行政區與星期 |
which_center |
這個行政區的社區心衛中心是哪一處 |
list_datasets |
接了哪些來源、何時抓的 |
| 工具 | 手動要多久 |
|---|---|
diff_clinic_sources |
40–60 分鐘(3 個分頁、80 筆抄進 Excel、正規化名稱、兩次 VLOOKUP) |
free_slots_by_weekday |
50 分鐘以上(58 筆逐筆讀時段文字、手動歸類、再按區 group) |
count_by_layer |
這件事一般不會有人去做 —— 因為要開 5 個來源、發現數字不一樣、然後放棄 |
「寬欣」出現在 6 個地方:
【地圖/心理治療、諮商所】寬欣心理治療所 北區育德一街227號1、2樓 (06)2510966
【地圖/心理治療、諮商所】芯寬欣心理治療所 北區北安路一段273號 (06)2510560
【免費諮商合作名單】 寬欣心理治療所 週一 每週一至五 8:00-21:00
【衛生局名冊】…
衛生局名冊 32 家 / 資源地圖 26 家 / 兩邊都有 24 家
只在名冊、地圖沒有(8 家)
誼仁、欣空間、欣橋、星語、愛相會、好心情、山實、沐盼
只在地圖、名冊沒有(2 家)
心物語、李慧芳
這不是單向漏收,是兩份官方文件互相不知道對方。
永康區 → 善化區社區心理衛生中心 (06)581-0105
不是永康自己。6 處中心的服務區域加起來 剛好 37 區,不重不漏, 所以任何行政區都查得到答案,demo 不會開天窗。
data/ 裡放的是 2026-08-27 抓的快照,附抓取時間戳。所有工具預設讀它。
理由:一場工作坊十幾個人、同一個 IP、同一時間。一起打政府網站有觸發速率限制的 風險,而且場地 WiFi 品質通常不明。
要更新資料:
python fetch_snapshot.py或呼叫 refresh_snapshot() —— 但現場只由講師示範一次,其餘人讀快照。
全部是公開資料,不需要申請任何權限。每一筆都在 2026-08-27 經過 獨立的對抗性查核(100 筆通過、22 筆因網址失效或內容對不上被剔除)。
| 來源 | 內容 |
|---|---|
| 臺南市心理健康資源地圖 | KML,141 個標點、4 圖層 |
| 心理諮商所、心理治療所名冊 | 治療所 12 + 諮商所 20 |
| 免付費諮商-公部門地點 | 40 個點 |
| 免付費諮商-需場地費地點 | 22 家民間機構 |
| 社區心理衛生中心據點 | 6 處,涵蓋 37 區 |
| 免費諮商據點 CSV / 各區代碼 CSV | 43 筆/37 區 |
寫這支的時候踩到、而且都留在註解裡:
- 免費諮商那 58 筆,
<name>全部是同一個字串「預約免費心理諮商」。 真正的地點在 ExtendedData 的「諮商地點」欄。直接讀 name 會得到 58 個一模一樣的點。 - CSV 有雙重 BOM(
EF BB BF EF BB BF)。utf-8-sig只剝一層,第一個欄名會殘留看不見的字元。 - 心衛中心的服務區域:第一版我用「在中心名稱附近 900 字元裡 regex 撈所有 XX區」,
結果善化中心變成 26 區,還混進「服務區」「願景園區」「社區」這種假的。
查詢碰巧會對 —— 但碰巧對的工具不能拿去教人。改成照
服務區域:那一行讀, 現在 6 處加起來剛好 37 區。 - 機構名要正規化才比得起來:台南/臺南、有沒有「社團法人」前綴。
- 這裡的資料是公開資訊的快照,不是即時系統。轉介前建議先打電話確認。
- 「臺南有幾家精神醫療機構」沒有單一答案 ——
count_by_layer()會告訴你為什麼, 而且 能收強制住院的「指定機構」只有 7 家,不是 41 家。 - 本工具不處理任何個案資料。查詢的是機構,不是人。
MIT。資料版權屬臺南市政府衛生局與臺南市政府資料開放平臺。