Skip to main content
Glama

台南メンタルヘルスリソース MCP

台南市衛生局の十数階層のメニューに散らばった心理リソースを、一言で検索できるものに変える。

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

これが存在する理由

これらのデータは手動でも調べられる。問題は、そのURLがこういう形だということ:

https://health.tainan.gov.tw/page.asp?mainid=0A3943E7-033E-4686-8514-7BD39368D32D

意味がなく、GUIDの羅列だけ。 推測では無理で、トップページから階層を一つずつクリックするしかない。

だからこのツールの価値は「データ取得」ではなく、ソース間のクロス比較の自動化にある:

  • 3つの公式リストで互いに漏れているのは誰か?

  • ある行政区は結局どの心衛センターの管轄なのか?

  • 無料カウンセリングの時間帯は何曜日に集中しているか、どの曜日は実質ゼロか?

これらは手動だと半日かかり、しかも来月データが変わればやり直しになる。


Related MCP server: Taiwan Health MCP Server

5分でセットアップ

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にはデータスナップショットが同梱されている。


9つのツール

読み取り層

ツール

機能

ping

接続確認とスナップショットの新しさの確認

find_myself

ある機関がどのリストに載っているかを調べる

list_clinics

治療所/相談所/精神科クリニックを区・種類で一覧表示

find_free_counseling

無料カウンセリングを行政区・曜日指定で検索

which_center

この行政区のコミュニティ心衛センターはどこか

list_datasets

どのソースをいつ取得したかを表示

分析層 —— ここが本題

ツール

手動での所要時間

diff_clinic_sources

40〜60分(3つのタブ、80件をExcelに転記、名称の正規化、VLOOKUPを2回)

free_slots_by_weekday

50分以上(58件を1件ずつ時間帯テキストを読み、手動で分類し、区ごとにグループ化)

count_by_layer

これは普通誰もやらない —— 5つのソースを開き、数字が違うことに気づき、そして諦めるから


現場で動く3つの実例

1. find_myself("寬欣") — 自分を調べる

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

2. diff_clinic_sources() — 3つの公式リストで互いに漏れているのは誰か

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

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

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

これは一方向の漏れではなく、2つの公式文書が互いの存在を知らないということ。

3. which_center("永康區") — 誰も当てられない問題

永康區 → 善化區社區心理衛生中心   (06)581-0105

永康自身ではない。6つのセンターのサービスエリアを合わせるとちょうど37区で、重複も漏れもない。だからどの行政区でも答えが見つかり、デモが失敗することはない。


🔴 現場の規律:デフォルトでスナップショットを読む。クラス全員で同時に政府サイトにアクセスしない

data/ には 2026-08-27 に取得したスナップショットが入っており、取得タイムスタンプ付き。すべてのツールはデフォルトでこれを読む。

理由:ワークショップで十数人が同じIP・同じ時間に。一斉に政府サイトにアクセスするとレート制限を誘発するリスクがあり、会場のWiFi品質も通常不明。

データを更新するには:

python fetch_snapshot.py

または refresh_snapshot() を呼ぶ —— ただし現場では講師が一度だけデモし、他の人はスナップショットを読む。


データソース

すべて公開データで、権限の申請は不要。各項目は2026-08-27に独立した対抗的検証を経ている(100件が合格、22件はURLの失効または内容の不一致で除外)。


データ品質:これらの落とし穴はコードに書かれている

これを書いたときに踏んだ落とし穴で、すべてコメントに残してある:

  • 無料カウンセリングの58件は、<name> がすべて同じ文字列「預約免費心理諮商」。 実際の場所はExtendedDataの「諮商地點」欄にある。nameを直接読むと58個の同一ポイントが得られる。

  • CSVに二重BOM(EF BB BF EF BB BF)。utf-8-sig は1層しか剥がさないため、最初の列名に不可視文字が残る。

  • 心衛センターのサービスエリア:初版では「センター名の周囲900文字内でregexで全てのXX区を抽出」としたところ、善化センターが26区になり、「服務區」「願景園區」「社區」のような偽の区も混入した。クエリは偶然正しく動く —— だが偶然正しいツールを人に教えることはできない。服務區域: の行を読むように変更し、現在は6箇所でちょうど37区。

  • 機関名は正規化して比較する必要がある:台南/臺南、「社團法人」プレフィックスの有無。


⚠️ 使用上の注意

  • ここのデータは公開情報のスナップショットであり、リアルタイムシステムではない。紹介前に電話で確認することを推奨。

  • 「台南に精神科医療機関は何軒あるか」に単一の答えはない —— count_by_layer() がその理由を教えてくれる。しかも強制入院を受け入れられる「指定機関」は7軒だけで、41軒ではない。

  • 本ツールは個人情報を一切扱わない。検索対象は機関であり、人ではない。

ライセンス

MIT。データの著作権は台南市政府衛生局と台南市政府資料開放プラットフォームに帰属する。

Related MCP Connectors

Related MCP Servers