Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

臺南心理衛生資源 MCP

把散在台南市衛生局十幾層選單裡的心理資源,變成一句話就查得到的東西。

你說:我們機構在哪幾份官方名單上?
它做:查四個來源 → 寬欣心理治療所 + 芯寬欣,兩個據點都在,
      而且你們在「免費諮商合作名單」裡,每週一至五 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.txt

claude_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 個來源、發現數字不一樣、然後放棄

三個現場跑得動的實例

1. find_myself("寬欣") — 查自己

「寬欣」出現在 6 個地方:
  【地圖/心理治療、諮商所】寬欣心理治療所    北區育德一街227號1、2樓  (06)2510966
  【地圖/心理治療、諮商所】芯寬欣心理治療所  北區北安路一段273號      (06)2510560
  【免費諮商合作名單】      寬欣心理治療所    週一 每週一至五 8:00-21:00
  【衛生局名冊】…

2. diff_clinic_sources() — 三份官方名單互相漏收誰

衛生局名冊 32 家 / 資源地圖 26 家 / 兩邊都有 24 家

只在名冊、地圖沒有(8 家)
   誼仁、欣空間、欣橋、星語、愛相會、好心情、山實、沐盼

只在地圖、名冊沒有(2 家)
   心物語、李慧芳

這不是單向漏收,是兩份官方文件互相不知道對方。

3. which_center("永康區") — 沒人猜得對的那題

永康區 → 善化區社區心理衛生中心   (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 有雙重 BOMEF BB BF EF BB BF)。utf-8-sig 只剝一層,第一個欄名會殘留看不見的字元。
  • 心衛中心的服務區域:第一版我用「在中心名稱附近 900 字元裡 regex 撈所有 XX區」, 結果善化中心變成 26 區,還混進「服務區」「願景園區」「社區」這種假的。 查詢碰巧會對 —— 但碰巧對的工具不能拿去教人。改成照 服務區域: 那一行讀, 現在 6 處加起來剛好 37 區。
  • 機構名要正規化才比得起來:台南/臺南、有沒有「社團法人」前綴。

⚠️ 使用上的提醒

  • 這裡的資料是公開資訊的快照,不是即時系統。轉介前建議先打電話確認。
  • 「臺南有幾家精神醫療機構」沒有單一答案 —— count_by_layer() 會告訴你為什麼, 而且 能收強制住院的「指定機構」只有 7 家,不是 41 家
  • 本工具不處理任何個案資料。查詢的是機構,不是人。

授權

MIT。資料版權屬臺南市政府衛生局與臺南市政府資料開放平臺。

About

臺南心理衛生資源 MCP:把散在衛生局十幾層選單裡的心理資源,變成一句話查得到。重點在跨來源交叉比對。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages