Healthcare OpenData MCP

Open Data Infrastructure

官方資料到 AI Agent 的最小化訊號通道

專案把衛生福利部資訊勞務標案與健保診所開放資料,轉成可直接被 MCP 工具查詢的穩定入口,讓資料可驗證、可回溯、可直接整合 AI workflow。

為什麼需要這個專案?

在實務上,資料可用性與可查詢性往往是問題本身:來源分散、欄位不一致、明細缺漏、服務不穩,直接影響 AI agent 的決策品質。

來源分散

標案與健保資料來自不同官方來源,缺乏一致入口,對上游取樣流程與授權流程都有額外摩擦。

格式與欄位不一致

半月 XML、CSV 及明細頁回傳格式差異大,直接讓下游查詢工具難以穩定處理,且增加 ETL 錯誤風險。

欄位不完整

公開招標來源常缺少可直接比對的重要資訊,本專案以明細抓取補齊截標、開標與預算,補上招標決策必要欄位。

第三方不可控

先前使用的 hub 服務政策調整導致可用性下滑,因此改走官方來源與自建服務,避免關鍵鏈路被中斷。

專案回應方式

四步流程,把散落資料變成可複用的查詢介面。

  1. 1

    官方來源擷取

    定期同步「政府電子採購網」與「健保署」官方資料。

  2. 2

    規格化與 enrich

    資料正規化為可查詢 schema,並補齊明細頁缺漏欄位。

  3. 3

    唯讀 SQLite 服務化

    由 repository 寫入與快取,server 以唯讀方式提供一致查詢行為。

  4. 4

    MCP 對外介面

    提供 Twinkle 對齊模式的查詢工具,讓 Agent/開發者直接整合。

目前已有能力(可直接驗證)

先用功能面,先確認你今天能否直接接上。

資料集

  • pcc-tender(衛福部資訊勞務)
  • pcc-tender-mohw(與 twinkle 欄位對齊)
  • nhi-clinic(健保診所開放資料)

MCP Tools

  • list_datasets
  • get_dataset
  • query_rows
  • search_records
  • get_record
  • get_tender_detail
  • list_sources

安全邊界

  • query_rows 只允許 SELECT 查詢
  • 限制語法注入與多語句、DML/DDL、危險 keyword
  • SQLite read-only + authorizer 白名單

部署與整合

  • streamable HTTP 模式支援
  • healthz probe、GKE 部署文件與 manifest 可用
  • 單一 DB 預設路徑與同步/查詢一致

快速上手

建置後建議用 list_datasets 再切入 query_rows。

  1. 建立並同步環境(含建置 SQLite DB)。
  2. 啟動 MCP server(stdio 或 HTTP)。
  3. 在 Claude / Agent 連線後,先用 list_datasets 再用 query_rows 開始分析。