Skip to main content
Glama
healthymind-tech

Taiwan Health MCP Server

Taiwan Health MCP Server

台灣醫療健康資料整合 MCP 伺服器 整合 ICD-10-CM/PCS、SNOMED CT、LOINC、台灣 FDA 藥品 / 健康補充品 / 食品營養、臨床指引,以及 FHIR R4 IG 授權與驗證工具

FHIR Python MCP License

以官方 mcp SDKmcp.server.fastmcp.FastMCP)建構,對外提供約 51 個工具,涵蓋 12 個工具群組。專為高吞吐量的生產級 SaaS 部署設計。

專案特色

  • 台灣在地化資料:台灣 FDA 藥品(含仿單 / 外觀 / OCR 分析)、健康補充品、食品營養、臨床指引、TWCore IG。

  • 國際術語支援:ICD-10-CM/PCS 2025、SNOMED CT International、LOINC 2.80、FHIR R4。

  • FHIR IG 授權工具:多 IG(package-scoped)剖面 / ValueSet 查詢、術語驗證、骨架填值(skeleton-fill)資源產生與驗證。

  • 語意 / 混合搜尋:以 Ollama 嵌入模型(qwen3-embedding)為基礎,無嵌入時自動退回關鍵字搜尋。

  • 動態工具啟用:依各模組資料載入狀態自動註冊 / 移除可用 MCP 工具。

  • 管理後台:可選的 Admin Console(上傳來源檔、執行 / 排程匯入、管理設定與外部 FHIR 伺服器、即時監控背景工作)。

  • 生產部署設計:PostgreSQL 16(pgvector)、pgBouncer、Redis、MinIO、Prometheus、背景 worker。

Related MCP server: openemr-mcp

快速開始

git clone https://github.com/audi0417/Taiwan-Health-MCP.git
cd Taiwan-Health-MCP
cp .env.example .env                          # 設定 POSTGRES_PASSWORD、ADMIN_* 等
docker compose up -d                          # postgres / pgbouncer / redis / minio / app / admin-worker

載入資料(透過管理後台)

資料匯入由 Admin Console 觸發、交由 admin-worker 背景執行(不再有獨立的 CLI data-loader 容器)。

  1. .env 啟用管理後台:

    ADMIN_ENABLED=true
    ADMIN_USERNAME=admin
    # python -c "import hashlib; print('sha256$' + hashlib.sha256(b'change-me').hexdigest())"
    ADMIN_PASSWORD_HASH=sha256$...
    ADMIN_SESSION_SECRET=change_this_admin_session_secret

    重新啟動 appdocker compose up -d)後,於 http://<host>:8000/admin 登入。

  2. Modules 頁籤依模組匯入資料:

    • 需上傳來源檔(在 Sources / Modules 上傳後按匯入):ICD-10-CM/PCS、LOINC、SNOMED CT、FHIR IG(package.tgz)。

    • 由 API 自動抓取(直接按匯入或設定排程):藥品(TFDA,三階段:索引 → 爬取豐富 → OCR/LLM 分析)、健康補充品、食品營養。

    • 內建種子資料(直接執行):臨床指引。

  3. 嵌入(語意搜尋)會在各模組匯入後自動回填,也可於模組頁面單獨重建。

匯入進度、步驟時間軸與即時日誌可在 Tasks 頁籤查看。詳見管理後台文件背景工作與排程

工具群組

群組

工具

ICD-10

search_medical_codesinfer_complicationsget_nearby_codescheck_medical_conflictbrowse_icd_category

藥品 / TFDA

search_drugidentify_unknown_pillget_drug_detailsget_drug_asset_links

檢驗 / LOINC

search_loincquery_loincinterpret_lab_resultbatch_interpret_lab_results

臨床指引

search_clinical_guidelinequery_guideline

SNOMED CT

search_snomed_conceptquery_snomed_conceptget_snomed_relationshipsquery_snomed_mapping

FHIR Condition

query_fhir_conditionvalidate_fhir_condition

FHIR Medication

query_fhir_medicationvalidate_fhir_medication

FHIR IG(授權 / 驗證)

fhir_list_igsfhir_get_igfhir_list_artifactsfhir_search_artifactsfhir_list_resource_profilesfhir_rank_resource_profilesfhir_get_profilefhir_get_profile_elementsfhir_get_valuesetfhir_expand_valuesetfhir_lookup_codefhir_validate_codefhir_normalize_codefhir_resolve_referencefhir_build_bundlefhir_validate_resourcefhir_validate_bundlefhir_get_resource_skeletonfhir_finalize_resource

健康補充品

search_health_supplements

食品營養

query_food_nutritionquery_food_ingredientsearch_foods_by_nutrientanalyze_meal_nutrition

FHIR 伺服器

list_fhir_serversget_fhir_server_statuscrud_fhir_server

系統

health_check

模組相關工具會依資料載入狀態自動啟用 / 停用;FHIR 伺服器與系統工具則永遠註冊。

連接客戶端

伺服器同時提供兩種介面,皆在同一個 app 容器、同一個埠(預設 8000):

介面

端點

適用客戶端

MCP(streamable-http)

http://<host>:8000/mcp

原生 MCP 客戶端(Claude Desktop、Open WebUI v0.6.31+ 的 MCP 連線等)

OpenAPI bridge

GET http://<host>:8000/openapi.jsonPOST http://<host>:8000/tools/<工具名>

僅支援 OpenAPI 工具伺服器的客戶端(如 Open WebUI 的 External Tools / OpenAPI 類型)

  • MCP:客戶端填 http://<host>:8000/mcp

  • OpenAPI:/openapi.json 依「目前已啟用的工具」動態產生 OpenAPI 3.1 規格;每個工具對應 POST /tools/<工具名>,以 JSON body 當參數呼叫。客戶端只要填基底網址 http://<host>:8000,會自動抓 /openapi.json

例:在 Open WebUI → Settings → ToolsOpenAPI 類型新增工具伺服器,URL 填 http://<host>:8000 即可列出全部工具。

注意:這兩個介面目前皆未強制驗證(與既有設計一致);對外開放時請在前面加反向代理或 token。

資料庫 Schema

audit | admin | icd | drug | health_supplements | food_nutrition | loinc | guideline | fhir(multi-IG)| snomed | rxnorm

完整定義見 db/schema.sql(PostgreSQL 容器首次啟動時自動套用),增量變更見 db/migrations/

管理後台(選用)

預設停用。於 .env 設定 ADMIN_ENABLED=true 並提供 ADMIN_USERNAME / ADMIN_PASSWORD_HASH / ADMIN_SESSION_SECRET 後,可於 /admin 存取 Admin Console,用於上傳來源檔、執行與排程資料匯入、管理設定與外部 FHIR 伺服器,以及監控由 admin-worker 執行的背景工作。詳見 docs/admin/

開發與測試

pip install -r requirements.txt
pip install pytest pytest-asyncio
python -m pytest tests/ -v

文件

完整文件請見 docs/ 與 MkDocs 設定(mkdocs.yml)。

致謝

  • 台灣衛生福利部、TFDA

  • Regenstrief Institute(LOINC)

  • SNOMED International

  • National Library of Medicine(RxNorm / UMLS)

  • HL7 International(FHIR)

  • WHO

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
1dResponse time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/healthymind-tech/Taiwan-Health-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server