healthpoint-rs

io.github.edithatogo由 GitHub 帳號 edithatogo 發布v0.1.0更新於 Oct 24, 2026

Read-only MCP server for licensed Healthpoint HL7 FHIR API access.

概覽

AI 產生的概覽

唯讀 MCP 伺服器,讓助理檢索並讀取已授權的 Healthpoint HL7 FHIR 醫療目錄資料。

可以做什麼
透過 Healthpoint FHIR API 提供唯讀工具:依文字、SNOMED CT 代碼或經緯度附近搜尋 HealthcareService 紀錄,並依 FHIR id 或 healthpoint:// URI 讀取單一 HealthcareService、Location 與 Organization 資源。另提供診斷狀態、存取說明與存取原則工具,以及靜態資源、資源範本與提示。未提供 API 金鑰時以合成測試資料模式執行。
適用情境
當助理需要從已授權的 Healthpoint 訂閱查詢醫療服務、地點或機構時使用,例如依臨床詞彙、SNOMED 代碼或附近座標尋找服務。它不是臨床決策支援系統,只檢索並格式化目錄資訊。
執行需求
以本機 stdio 程序執行,可從 crates.io 或原始碼檢出安裝(需要 Rust 與 Cargo),也可使用已發布的容器映像。即時模式需要 HEALTHPOINT_API_KEY 中的已授權 Healthpoint API 金鑰,以及選用的 HEALTHPOINT_BASE_URL、HEALTHPOINT_AUTH_SCHEME、HEALTHPOINT_GEO_SEARCH_MODE 與 HEALTHPOINT_TIMEOUT_SECS。合成模式不需要憑證。
安裝前請注意
即時模式會使用 HEALTHPOINT_API_KEY 中的授權金鑰向 Healthpoint API 送出查詢,請將該金鑰視為機密,不要放入共用設定。存取與匯出原則預設較為保守;匯出會附帶來源與授權狀態,再散布或開放資料發布須選擇加入,且在條款允許前處於停用狀態。此伺服器為唯讀,不會寫入、傳送或刪除資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 healthpoint-rs,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

healthpoint-rs

[smithery badge]

Rust-first tooling for the Healthpoint HL7 FHIR® API: a typed client, CLI, read-only MCP server, and future open-social-data adapter.

This repository is intentionally code-first and data-light:

  • Users bring their own Healthpoint API key/licence.
  • No real Healthpoint API payloads are committed as fixtures.
  • Synthetic FHIR fixtures live in crates/healthpoint-testkit/fixtures/.
  • Local exports are marked with provenance and redistribution status.
  • Open-data publication is opt-in and disabled until licensing/access terms explicitly permit it.

Project shape

text
healthpoint-rs/  crates/    healthpoint-core/         # domain model, query model, provenance, provider traits, URI parsing    healthpoint-fhir/         # FHIR Bundle/Resource mapping and typed projections    healthpoint-client/       # HTTP client, auth, request policy, pagination hooks    healthpoint-export/       # JSON/JSONL/CSV/export manifests    healthpoint-cli/          # `healthpoint` CLI    healthpoint-mcp/          # read-only MCP server over the same core/client    healthpoint-osd-adapter/  # future open_social_data bridge, no hard dependency yet    healthpoint-testkit/      # synthetic fixtures and offline fixture provider  conductor/                  # context-management state, decisions, checkpoints, tracks  docs/                       # access, licensing, MCP, exports, integration roadmap

Installation

Install from crates.io after Rust is available:

bash
cargo install healthpoint-mcp healthpoint-cli

Install from source checkout:

bash
git clone https://github.com/edithatogo/healthpoint-rs.gitcd healthpoint-rsbin/conductor-setupcargo install --path crates/healthpoint-mcpcargo install --path crates/healthpoint-cli

Install through Smithery from the published listing: edithatogo/healthpoint-rs. The Smithery package starts in synthetic mode unless live Healthpoint credentials are supplied.

Usage

First commands

bash
cp .env.example .env$EDITOR .envbin/conductor-setupcargo run -p healthpoint-cli -- doctorcargo run -p healthpoint-cli -- fixture services --format jsoncargo run -p healthpoint-cli -- inspect search-url --text "cervical screening" --snomed 171149006cargo run -p healthpoint-cli -- search services --text "cervical screening" --format jsoncargo run -p healthpoint-cli -- search services --snomed 171149006 --format jsoncargo run -p healthpoint-cli -- get service <id> --format jsoncargo run -p healthpoint-cli -- get uri healthpoint://service/<id> --format jsoncargo run -p healthpoint-mcp

The MCP server is a separate binary so CLI and MCP can evolve independently while sharing the same crates. It starts in synthetic fixture mode when no API key is supplied; set HEALTHPOINT_MODE=live and provide HEALTHPOINT_API_KEY for licensed live API calls.

Configuration

bash
export HEALTHPOINT_MODE="synthetic"                       # synthetic | liveexport HEALTHPOINT_API_KEY="..."                         # optional; required only for live modeexport HEALTHPOINT_BASE_URL="https://uat.healthpointapi.com/baseR4/"export HEALTHPOINT_AUTH_SCHEME="x-api-key"               # bearer | x-api-key | header:<name> | noneexport HEALTHPOINT_GEO_SEARCH_MODE="healthpoint-lat-lon" # healthpoint-lat-lon | fhir-nearexport HEALTHPOINT_TIMEOUT_SECS="30"export HEALTHPOINT_EXPORT_POLICY="local-only"            # local-only | licensed-share | open-approved

Healthpoint portal validation on 2026-06-30 confirmed UAT calls use the x-api-key header against https://uat.healthpointapi.com/baseR4/. See docs/healthpoint-api-access.md for observed endpoint and license notes.

CLI examples

bash
healthpoint doctorhealthpoint policy show
healthpoint fixture services --format humanhealthpoint schema service-recordhealthpoint schema resource-uri
healthpoint inspect search-url \  --text "cervical screening" \  --snomed 171149006 \  --limit 10
healthpoint search services \  --text "cervical screening" \  --snomed 171149006 \  --limit 10 \  --format json
healthpoint search services \  --lat -36.8485 \  --lon 174.7633 \  --radius-km 10 \  --format csv
healthpoint get service <service-id> --format jsonhealthpoint get location <location-id> --format jsonhealthpoint get organization <organization-id> --format jsonhealthpoint get uri healthpoint://service/<service-id> --format json
healthpoint export manifest --output .healthpoint/manifest.jsonhealthpoint export services \  --text "cervical screening" \  --limit 25 \  --format jsonl \  --output .healthpoint/cervical-screening.jsonl

Tools

ToolPurpose
healthpoint.diagnostic.statusShow redacted runtime mode, configuration, and readiness.
healthpoint.access.notesShow non-secret endpoint, auth, and documentation notes.
healthpoint.access.policyShow the conservative access/export policy before reuse.
healthpoint.services.searchSearch HealthcareService records by text, codes, region filters, cursor, and limit.
healthpoint.services.search_snomedSearch HealthcareService records by SNOMED CT code in type, category, or specialty.
healthpoint.services.nearbyFind HealthcareService records near a latitude/longitude point.
healthpoint.service.getRead one HealthcareService by FHIR id.
healthpoint.location.getRead one Location by FHIR id.
healthpoint.organization.getRead one Organization by FHIR id.
healthpoint.resource.readRead a supported healthpoint:// resource URI.

The MCP server also exposes 3 static resources, 4 resource templates, and 2 prompts. See docs/mcp-tools.md and docs/integrations/mcp-client-configs.md for launch examples.

Claude Desktop source-checkout example:

json
{  "mcpServers": {    "healthpoint-dev": {      "command": "cargo",      "args": ["run", "-p", "healthpoint-mcp"],      "env": {        "HEALTHPOINT_MODE": "synthetic"      }    }  }}

Live Healthpoint mode requires a licensed API key:

json
{  "mcpServers": {    "healthpoint-live": {      "command": "healthpoint-mcp",      "env": {        "HEALTHPOINT_MODE": "live",        "HEALTHPOINT_API_KEY": "...",        "HEALTHPOINT_BASE_URL": "https://uat.healthpointapi.com/baseR4/",        "HEALTHPOINT_AUTH_SCHEME": "x-api-key"      }    }  }}

Integration contracts

The CLI can emit JSON Schema for the core contracts:

bash
healthpoint schema access-policyhealthpoint schema service-queryhealthpoint schema service-recordhealthpoint schema service-pagehealthpoint schema location-recordhealthpoint schema organization-recordhealthpoint schema resource-urihealthpoint schema export-manifest

Those schemas are intended to help future integration with open_social_data, MCP clients, and any cross-repo data catalogue layer without prematurely forcing Healthpoint's FHIR graph into a dataframe-first shape.

Offline readiness tools

These commands work before any live Healthpoint validation and are useful in sandboxes or CI metadata jobs:

bash
CONDUCTOR_ALLOW_NO_CARGO=1 bin/conductor-setupbin/conductor-statusscripts/static-preflight.pyscripts/generate-contract-schemas.pybin/mock-healthpoint-server --port 8787

After Rust is available, the mock server gives the CLI a synthetic HTTP target:

bash
export HEALTHPOINT_BASE_URL="http://127.0.0.1:8787/"export HEALTHPOINT_AUTH_SCHEME="none"cargo run -p healthpoint-cli -- search services --snomed 171149006 --format json

See docs/mock-server.md, docs/static-preflight.md, and docs/live-contract-capture.md.

Development environment

See docs/development-environment.md for native Rust and devcontainer setup.

Design principles

  1. FHIR-first: preserve raw FHIR while exposing typed domain records.
  2. Read-only by default: no writes, no scraping fallback, no public proxy mode.
  3. Bring-your-own-key: releasing code does not bundle access or data rights.
  4. Provenance everywhere: exports carry retrieval time, source, licence status, and tool version.
  5. Integratable later: stable Rust traits make it possible to plug into open_social_data, MCP clients, and future data/catalog engines.
  6. Conductor-managed context: implementation tracks, decisions, and repo state live alongside the code.
  7. Synthetic fixtures only: offline testing is done with testkit resources, never real Healthpoint payloads.

MCP Registry metadata

  • MCP Registry name: mcp-name: io.github.edithatogo/healthpoint-rs

This visible marker is required for Cargo/crates.io ownership verification by the official MCP Registry.

Safety boundary

This is not a clinical decision-support system. It retrieves and formats directory/service information from Healthpoint for licensed users. Any downstream use should preserve Healthpoint attribution, currency, caveats, and licensing obligations.

Current status

Implementation spike after initial scaffold. Synthetic mapping exists for HealthcareService, Location, and Organization, including richer service fields such as eligibility, availability, service provision codes, characteristics, comments, endpoints, identifiers, and response provenance. The public Healthpoint material confirms HL7 FHIR and SNOMED CT orientation, but full endpoint/auth details are intentionally treated as configurable until validated against licensed API documentation.

來源:README.md,提交 82c83b0

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分