FHIR Conformance Check
Guest access is available after setup. Full account linking verified by PowMCP: Claude only.
Use in your browser
Give it a public sample, IG example, or deidentified technical FHIR R4 resource and the official HL7 validator returns profile, invariant and terminology diagnostics. Never submit identifiable patient records. This is technical conformance troubleshooting, not diagnosis or clinical decision support. Calls can take up to 110 seconds, especially across two implementation-guide versions. Validation runs offline, so bindings against external CodeSystems can stay unconfirmed: a clean result is reported as "nothing failed", not full conformance while checks remain unavailable.
Guest includes 50 lifetime app requests. Create a free account for 100 app requests each calendar month. One allowance across every app, in your browser and your agent.One allowance across every app, in your browser and your agent. Manage usage
Guest access is available after setup. Full account linking verified by PowMCP: Claude only.
Connect this app on its own. Add other PowMCP apps whenever your agent needs another job done.
Open the apps workspace
Choose your agent. Each button opens a new tab with only this app's endpoint ready to add.
Copy one ready-to-send prompt for any agent that supports remote MCP connections.
For clients that require manual configuration, use this app-only endpoint, its JSON entry, or one terminal command.
ChatGPT: enable Developer mode in Settings → Security and login, then add this MCP endpoint from the Plugins page. Availability depends on your account and workspace policy. PowMCP has not yet verified ChatGPT account linking. OpenAI setup guide
https://powmcp.com/fhir-conformance-check/mcp {
"mcpServers": {
"powmcp-fhir-conformance-check": {
"type": "http",
"url": "https://powmcp.com/fhir-conformance-check/mcp"
}
}
}Terminal agents add this app with one command:
claude mcp add --transport http powmcp-fhir-conformance-check https://powmcp.com/fhir-conformance-check/mcpcodex mcp add powmcp-fhir-conformance-check --url https://powmcp.com/fhir-conformance-check/mcpgemini mcp add --transport http powmcp-fhir-conformance-check https://powmcp.com/fhir-conformance-check/mcpManage, disable, or remove this connection in your agent's own MCP settings. PowMCP does not label an external connection as installed without confirmation from that client.
Proof
Check a hosted or pasted public FHIR resource against its declared profile with the official HL7 validator, with exact StructureDefinition and invariant evidence and an explicit list of the profile rules offline validation never checked
Validate one public FHIR R4 resource or IG example against its declared US Core / IPS profile with exact StructureDefinition, cardinality, slicing and FHIRPath-invariant evidence, or compare two same-profile resources to see what regressed or resolved. Every verdict is reported as a scoped pair: what passed among the rules that ran, and whether full profile conformance was actually established. Offline validation cannot check normative bindings against external CodeSystems, so a clean result means nothing failed, never that the resource conforms.
Request cost1 completed result
Guests get 50 lifetime app requests. Free accounts get 100 each calendar month.
resource_check
Validates one directly hosted public FHIR R4 sample, IG example, or deidentified technical resource (by URL, fetched no-auth) or a pasted FHIR JSON body against its declared meta.profile (US Core / IPS) using the pinned official HL7 FHIR Validator 6.9.11 in a no-network sandbox with -tx n/a. Never submit identifiable patient records. Returns a two-part verdict that must be reported as a pair: structurallyConforms (nothing failed among the rules that were APPLIED) and fullProfileConformanceEstablished (every rule of the profile was actually evaluated and passed), plus an unestablished list naming each rule class that was never checked and a one-sentence conformanceStatement to quote. Validation runs offline, so required and extensible bindings against external CodeSystems (LOINC / SNOMED CT / RxNorm) are NOT checked, and whenever any of them went unchecked the result is 'nothing failed', never 'it conforms'. Also returns the validator version and pinned IG package versions, the profile canonical|version validated against with a distinguished profileState (profile-conformant / profile-structurally-conformant-terminology-unchecked / profile-nonconformant / profile-not-declared / profile-unresolved), issue counts by severity, every issue grouped most-severe-first with its source StructureDefinition, FHIRPath expression, severity and message, an invariants (FHIRPath constraint) violation count, a terminology block naming what offline mode could not confirm, and a structural inventory. Use for one-resource technical conformance troubleshooting: 'is this structurally valid', 'does it conform to its profile', 'what profile errors does it have'. Terminology counts are diagnostic findings, not distinct normative bindings. A false structurallyConforms also includes validator-context rejections such as example-URL policy; inspect the findings before claiming a normative profile violation. Offline calls typically take about 30-60 seconds and can take up to the 110-second call deadline; tell the user before calling. It does not diagnose, support clinical decisions, or establish that a record is clinically correct or safe: human review is always required.
resource_compare
Runs the identical pinned HL7 FHIR Validator 6.9.11 offline validation over exactly two FHIR resources, A (baseline) and B (revised), each a public no-auth URL or a pasted body, that MUST declare the same profile canonical (the IG version pin may differ, e.g. us-core-patient|9.0.0 vs |7.0.0), under one shared deadline, then reports which conformance issues regressed or were resolved between them. Both resources are validated in a single validator run when they resolve to the same pinned IG packages; when the pins differ each gets its own run, so neither resource is ever validated against the other's package versions. Returns per-resource verdicts as a scoped pair: structurallyConforms (nothing failed among the rules applied) and fullProfileConformanceEstablished (every profile rule actually evaluated), with severity counts, a regressions list (substantive issues introduced or worsened in B) and a resolved list (substantive issues gone or reduced in B) keyed by source StructureDefinition and FHIRPath expression, a separate terminologyDifferences bucket holding the unchecked-external-terminology caveats that differ between the two package pins (largely environmental, never counted as regressions or fixes), a comparability note, and a ranking by structural conformance then fewer errors. When comparable is false, the comparison is INCONCLUSIVE: differences are unknown, empty arrays do not mean zero regressions, and no ranking is returned. Validator-run rejections can include context policies rather than normative profile violations; terminology counts are diagnostic findings, not distinct bindings. Use for 'did this edit regress the resource' and same-profile-across-versions questions. Offline calls can take up to the shared 110-second call deadline, especially when the package pins differ; tell the user before calling. The ranking orders STRUCTURAL conformance only: unchecked external-terminology bindings are outside it, so a top-ranked resource has not been shown to be fully profile-conformant, and never that one resource is truer, safer, or more clinically accurate, and human review remains required for both.
Other apps for the jobs next to FHIR Conformance Check.
Scope and boundaries for FHIR Conformance Check.
Validate HL7's public US Core Patient example against its declared meta.profile, or compare the STU7 and current public examples that share the same profile canonical. Pasted input must be a public sample or deidentified technical resource.
Lead with conformanceStatement and fullProfileConformanceEstablished. structurallyConforms means no applied check reported an error or fatal issue; false can include validator-context policies such as example-URL rejection, not proof of a normative profile violation. Inspect each diagnostic's StructureDefinition, FHIRPath, and message. Terminology counts are diagnostic findings, not distinct normative bindings. If comparable is false, differences are unknown: empty arrays do not mean zero changes, and no winner is established. Keep unchecked-terminology differences separate and truncated issues incomplete.
Never submit identifiable patient records. Validation runs offline, so external terminology bindings such as LOINC, SNOMED CT, or RxNorm may remain unchecked; a structurally clean result can therefore mean only that nothing failed among applied rules, not full profile conformance, clinical correctness, diagnosis, or patient safety.