Skip to main content
Glama

MCP ресурсов психического здоровья Тайнаня

Превращает ресурсы по психическому здоровью, спрятанные в меню на десятки уровней в Департаменте здравоохранения Тайнаня, в то, что можно найти одной фразой.

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

Зачем это существует

Эти данные можно найти и вручную. Проблема в том, что ссылки выглядят так:

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

Никакой семантики, только строка GUID. Угадать невозможно — приходится кликать слой за слоем, начиная с главной страницы.

Поэтому ценность этого инструмента не в «получении данных», а в автоматизации перекрёстного сопоставления из разных источников:

  • Кого из трёх официальных списков пропустили друг у друга?

  • К какому центру психического здоровья на самом деле относится административный район?

  • В какие дни недели сосредоточены сеансы бесплатного консультирования, а какие дни фактически пустые?

Вручную на это уходит полдня, а в следующем месяце данные обновятся — и всё придётся делать заново.


Related MCP server: Taiwan Health MCP Server

Установка за пять минут

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». Увидели количество записей — значит, соединение работает.

Никакой регистрации аккаунта, никаких ключей. В репозитории уже есть снимок данных.


Девять инструментов

Слой чтения

Инструмент

Что делает

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 записей, чтение текста расписания по одной, ручная классификация, затем группировка по районам)

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 районов, без пропусков и дублей, поэтому для любого административного района есть ответ, и демо не сорвётся.


🔴 Дисциплина на живом демо: по умолчанию читаем снимок, не даём всей группе одновременно стучаться на правительственный сайт

В data/ лежит снимок, сделанный 2026-08-27, с отметкой времени получения. Все инструменты по умолчанию читают его.

Причина: на воркшопе полтора десятка человек, один IP, одно и то же время. Если все одновременно пойдут на правительственный сайт, есть риск срабатывания ограничения частоты запросов, к тому же качество WiFi в зале обычно неизвестно.

Чтобы обновить данные:

python fetch_snapshot.py

или вызовите refresh_snapshot() — но на живом демо это показывает только преподаватель один раз, остальные читают снимок.


Источники данных

Всё это открытые данные, никаких разрешений запрашивать не нужно. Каждая запись 2026-08-27 прошла независимую перекрёстную проверку (100 записей прошли, 22 отсеяны из-за неработающих ссылок или несоответствия содержимого).


Качество данных: эти грабли описаны в коде

На что я наступил при написании и что оставил в комментариях:

  • У тех 58 записей бесплатного консультирования <name> — одна и та же строка «預約免費心理諮商». Настоящее место находится в поле «諮商地點» в ExtendedData. Если читать напрямую name, получится 58 одинаковых точек.

  • В CSV двойной BOM (EF BB BF EF BB BF). utf-8-sig снимает только один слой, и в первом имени колонки остаётся невидимый символ.

  • Зоны обслуживания центров психического здоровья: в первой версии я вытаскивал regex-ом все «XX區» в пределах 900 символов от названия центра, и у центра Шаньхуа получилось 26 районов, включая фальшивки вроде «服務區», «願景園區», «社區». Запрос случайно давал правильный ответ — но инструмент, который работает случайно, нельзя использовать для обучения. Я переделал на чтение строки 服務區域:, и теперь 6 центров в сумме дают ровно 37 районов.

  • Названия учреждений нужно нормализовать, чтобы их можно было сравнивать: 台南/臺南, наличие префикса «社團法人».


⚠️ Предупреждения по использованию

  • Данные здесь — это снимок открытой информации, а не система реального времени. Перед направлением клиента рекомендуется позвонить и уточнить.

  • На вопрос «сколько в Тайнане психиатрических учреждений» нет единственного ответа — count_by_layer() покажет вам, почему, и «уполномоченных учреждений», которые могут принимать на принудительную госпитализацию, всего 7, а не 41.

  • Этот инструмент не обрабатывает никакие данные клиентов. Запросы идут по учреждениям, а не по людям.

Лицензия

MIT. Права на данные принадлежат Департаменту здравоохранения муниципалитета Тайнаня и Открытой платформе данных муниципалитета Тайнаня.

Related MCP Connectors

Related MCP Servers