imonfhir.com tools: HL7 digest, Jira status, PAS validation, IG and payload compare, rule evidence.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compare two implementation guides, each "packageId#version": one guide at two versions (version diff) or two guides (stack compare). Over MCP the answer is a bounded summary (counts per change type, the most serious findings, and where the whole report is); POST /api/v1/compare returns the whole report.
e.g. "hl7.fhir.us.davinci-pas#2.0.1"
e.g. "hl7.fhir.us.davinci-pas#2.1.0"
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http site https://imonfhir.com/api/v1/mcp
Compare two implementation guides, each "packageId#version": one guide at two versions (version diff) or two guides (stack compare). Over MCP the answer is a bounded summary (counts per change type, the most serious findings, and where the whole report is); POST /api/v1/compare returns the whole report.
| Argument | Type | Description |
|---|---|---|
| ig_a* | string | e.g. "hl7.fhir.us.davinci-pas#2.0.1" |
| ig_b* | string | e.g. "hl7.fhir.us.davinci-pas#2.1.0" |
{
"type": "object",
"required": [
"ig_a",
"ig_b"
],
"properties": {
"ig_a": {
"type": "string",
"description": "e.g. \"hl7.fhir.us.davinci-pas#2.0.1\""
},
"ig_b": {
"type": "string",
"description": "e.g. \"hl7.fhir.us.davinci-pas#2.1.0\""
}
},
"additionalProperties": false
}Compare two synthetic FHIR payloads (a resource or a Bundle each, 1 MB at most per side) and report where they differ: which rows are missing or extra, which field paths changed, and counts. It returns no field values; it lists up to 200 rows and 300 field paths (the paths come from the key names in the payloads) and counts the rest. Synthetic data only. The payloads are sent to imonfhir.com for the call and the site does not store them; the browser Compare tool at /lab/compare keeps them on your machine.
| Argument | Type | Description |
|---|---|---|
| a* | object | string | A FHIR resource or Bundle (a JSON object, or a string holding one). Synthetic only. |
| b* | object | string | The payload to compare it with, in the same form. |
{
"type": "object",
"required": [
"a",
"b"
],
"properties": {
"a": {
"type": [
"object",
"string"
],
"description": "A FHIR resource or Bundle (a JSON object, or a string holding one). Synthetic only."
},
"b": {
"type": [
"object",
"string"
],
"description": "The payload to compare it with, in the same form."
}
},
"additionalProperties": false
}The evidence behind a semantic validator rule, not an explanation of it. Give rule_id (a rule id such as PAS-SEM-PROV-001) and get the rule's id, version, title, description, source, category and default severity as the validator states them, plus, only when the rule's explanation entry declares anchors that all resolve, the HL7 statements for them: package, version, key, conformance word, HL7's statement text verbatim (its markdown) and the sha256 of that text. It abstains, with the reason, when no anchor is committed or one does not resolve. 0 of 17 rule explanations have committed anchors; a rule id abstains until its anchors are committed. Or give requirement ({packageId, version, key}) and get that one HL7 statement the same way. An unknown package, version or key is an error, and so is a package version that has a catalog but no committed statement text. Statement text is committed for [email protected]; a package version that has a catalog but no committed text is an error. It also returns an instruction block telling your assistant how to use the evidence. It calls nothing outside this site. Prose your assistant writes around the passages is not controlled by ImOnFHIR.
| Argument | Type | Description |
|---|---|---|
| rule_id | string | A semantic rule id, e.g. PAS-SEM-PROV-001. Give this or requirement, not both. |
| requirement | object | One HL7 statement: its package id, version and statement key, e.g. hl7.fhir.us.davinci-pas, 2.2.1, ainfo-3. Give this or rule_id, not both. |
{
"type": "object",
"properties": {
"rule_id": {
"type": "string",
"description": "A semantic rule id, e.g. PAS-SEM-PROV-001. Give this or requirement, not both."
},
"requirement": {
"type": "object",
"required": [
"packageId",
"version",
"key"
],
"properties": {
"key": {
"type": "string"
},
"version": {
"type": "string"
},
"packageId": {
"type": "string"
}
},
"description": "One HL7 statement: its package id, version and statement key, e.g. hl7.fhir.us.davinci-pas, 2.2.1, ainfo-3. Give this or rule_id, not both.",
"additionalProperties": false
}
},
"additionalProperties": false
}One digest item in full: each claim (question, outcome, impact, stage, next step) with its own evidence record, plus HL7 Jira statuses and canonical_url.
| Argument | Type | Description |
|---|---|---|
| id* | string | The item id from search_digest. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{16}$",
"description": "The item id from search_digest."
}
},
"additionalProperties": false
}Up to 50 HL7 Jira keys: status, resolved, resolution, last_verified with its jira_verified evidence record, lifecycle stage, source_url (HL7 Jira) and the canonical_url of public items that cite it. "applied" is not "published".
| Argument | Type | Description |
|---|---|---|
| keys* | array |
{
"type": "object",
"required": [
"keys"
],
"properties": {
"keys": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9]{1,9}-\\d{1,6}$"
},
"maxItems": 50,
"minItems": 1
}
},
"additionalProperties": false
}Search the public digest of HL7 standards discussions. Returns at most 20 items, each with every claim's evidence record and canonical_url — no summary text. Use get_digest_item for one item in full.
| Argument | Type | Description |
|---|---|---|
| q | string | Words to match in the title, work group or HL7 Jira keys. |
| since | string | ISO date; only items with activity on or after it. |
| workgroup | string | A work group (the feed's list slug, e.g. "da-vinci-pas"). An unknown one is an error. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Words to match in the title, work group or HL7 Jira keys."
},
"since": {
"type": "string",
"description": "ISO date; only items with activity on or after it."
},
"workgroup": {
"type": "string",
"description": "A work group (the feed's list slug, e.g. \"da-vinci-pas\"). An unknown one is an error."
}
},
"additionalProperties": false
}Validate a synthetic Da Vinci PAS Submit Bundle with the ImOnFHIR validator. Synthetic payloads only. Never send real patient data. Findings describe a synthetic Bundle. Body cap 2 MB, 10 calls per minute.
| Argument | Type | Description |
|---|---|---|
| ig | string | |
| bundle* | object | A FHIR Bundle (resourceType "Bundle"). Synthetic only. |
| version | string | A PAS version the validator allows; omitted, the default. |
{
"type": "object",
"required": [
"bundle"
],
"properties": {
"ig": {
"type": "string",
"const": "hl7.fhir.us.davinci-pas"
},
"bundle": {
"type": "object",
"description": "A FHIR Bundle (resourceType \"Bundle\"). Synthetic only."
},
"version": {
"type": "string",
"description": "A PAS version the validator allows; omitted, the default."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.