HealthEx → HealthClaw-redacted export via the official MCP Python SDK (mcp>=1.2). Use when: (1) Pulling fresh clinical data from HealthEx as the upstream source of truth (not from the local HealthClaw store), (2) Writing a PHI-redacted snapshot to disk before any ingest, so the raw MCP response never hits the filesystem, (3) Producing a single-file JSON or NDJSON bundle for downstream import via `/import`, (4) Running the pipeline headlessly from a Telegram bot or cron on the Mac mini. For the older direct-REST pull against the local FHIR store, see the `healthex-export` skill.
npx claudepluginhub aks129/healthclawguardrails --plugin healthclaw-guardrailsThis skill uses the workspace's default tool permissions.
`scripts/export_healthex_mcp.py` is the current HealthEx pull path. It:
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
scripts/export_healthex_mcp.py is the current HealthEx pull path. It:
https://api.healthex.io/mcpupdate_records + check_records_status to refreshget_health_summary, get_conditions,
get_medications, get_allergies, get_immunizations, get_vitals,
get_labs, get_procedures, get_visits, search_clinical_notes)scripts/healthclaw_redact.py, which mirrors the HealthClaw guardrail
proxy's redaction rulesThe raw MCP response is never written. Only the redacted payload goes to disk.
# Set the HealthEx token (use macOS Keychain on the Mac mini)
export HEALTHEX_AUTH_TOKEN="$(security find-generic-password -s healthex -w)"
# Default — all tools, local redaction, single JSON file
python scripts/export_healthex_mcp.py \
--tenant-id ev-personal \
--output exports/healthex-$(date +%Y-%m-%d).json
# NDJSON (one line per FHIR resource — easier to diff / grep)
python scripts/export_healthex_mcp.py \
--tenant-id ev-personal \
--output exports/healthex-$(date +%Y-%m-%d).ndjson
# Only the tools you need
python scripts/export_healthex_mcp.py \
--tenant-id ev-personal \
--output exports/labs-only.json \
--tools get_labs get_conditions
# Proxy mode — redact via a running HealthClaw guardrail server instead
python scripts/export_healthex_mcp.py \
--tenant-id ev-personal \
--output exports/snap.json \
--redact-mode proxy \
--healthclaw-url https://healthclaw.io
# Synthetic-only escape hatch (keeps PHI in output — NEVER use on real data)
python scripts/export_healthex_mcp.py \
--tenant-id desktop-demo \
--output exports/demo-raw.json \
--no-redact
| Field | Rule |
|---|---|
HumanName.given / family / text | Collapsed to initials ("E. V.") |
Address.line / city / postalCode | Dropped (state + country kept) |
Identifier.value (MRN, member, subscriber) | SHA-256, optional HEALTHCLAW_REDACT_SALT |
birthDate | Truncated to YYYY |
telecom[].value (phone / email / fax / sms) | Replaced with "***" |
Patient.photo | Removed entirely |
text.div narrative | Emptied |
note[] (Condition / Observation / …) | Emptied |
| Generic flat-dict PHI keys (ssn, dob, …) | Wiped at any nesting depth |
code.coding, valueQuantity, dates | Preserved — clinical signal intact |
_meta.redaction_stats in the output counts every redaction performed.
Bots call this via the /export slash command registered in
scripts/bot_commands.py → cmd_export(). The bot resolves
HEALTHEX_AUTH_TOKEN from (1) environment, (2) macOS Keychain service
healthex. Output lands in ~/.healthclaw/exports/healthex-<date>.json.
Typical end-to-end flow over Telegram:
/export — pulls HealthEx, redacts, writes bundle/import <path printed by /export> — ingests into local HealthClaw/conditions / /labs / /summary — agent reads from local storetests/test_healthclaw_redact.py exercises both the redaction rules and the
end-to-end export flow against a mocked MCP session. Part of the CI suite:
uv run python -m pytest tests/test_healthclaw_redact.py -v
For a one-off CLI check without pytest, scripts/smoke_test.py runs the same
assertions and prints a redaction summary.
healthex-export (legacy)The older healthex-export skill and scripts/export_healthex_legacy.py
pull from the local HealthClaw FHIR store via direct REST. Keep for
tenant-to-tenant copies. Use this skill when the source of truth is
HealthEx itself and you want the MCP SDK + in-process redaction.