FHIR Frog Tool Reference¶
This page is generated from the live FHIR Frog tool registry (docs/tools-inventory.json) and lists every tool available in v0.1. All parameters are listed with their real names (including confirm, serverUrl, fixturesPath, etc.). Do not use parameters not listed here.
Tool list¶
Environment & Setup¶
| Tool | Purpose |
|---|---|
frog_doctor |
Run environment health checks (Docker, Java, ports, packages) |
frog_check_ig |
Check an IG for publishing traps |
Package Management¶
| Tool | Purpose |
|---|---|
frog_package_list |
List locally-available FHIR packages |
frog_package_install |
Extract a test package from frog-runner to local cache |
Authoring & Validation (IG developer)¶
| Tool | Purpose |
|---|---|
frog_scaffold_ig |
Create a new IG or retrofit tests into an existing one |
frog_scaffold_test_ig |
Create a standalone Test IG package |
frog_tsh_validate |
Validate TSH shorthand syntax |
frog_tsh_compile |
Compile TSH to JSON TestScript |
frog_testscript_lint |
Lint a TestScript for required fields and references |
Server Management¶
| Tool | Purpose |
|---|---|
frog_server_list |
List registered servers |
frog_server_register |
Register a FHIR server |
frog_server_describe |
Show details of a registered server |
frog_server_spec_list |
List available server specifications (conformance profiles) |
frog_server_check |
Verify a server is running and responsive |
frog_server_start_local |
Start a local HAPI FHIR server in Docker |
frog_server_stop |
Stop a local server |
Running Tests¶
| Tool | Purpose |
|---|---|
frog_run_local |
Run tests locally (in-process) |
frog_run_remote |
Submit tests to frog-runner |
frog_run_status |
Poll the status of a remote run |
frog_runner_start_local |
Start a local frog-runner in Docker |
frog_runner_stop |
Stop the local runner |
Reports & Results¶
| Tool | Purpose |
|---|---|
frog_report_summarise |
Compact summary of a test run |
frog_run_report |
Download a report in various formats |
Key parameters¶
These parameters appear in multiple tools:
Authentication¶
authType:NONE(default),BEARER_TOKEN, orCLIENT_CREDENTIALSbearerToken:${ENV_VAR}reference for a Bearer tokentokenUrl: OAuth2 token endpoint (required for CLIENT_CREDENTIALS)clientId: OAuth2 client idclientSecret:${ENV_VAR}reference for the client secretscope: OAuth2 scope string
Note: Never pass actual secrets in parameters; use ${ENV_VAR} references. The user sets environment variables themselves.
Server targeting¶
serverUrl: Direct FHIR server URL (e.g.http://localhost:8080/fhir)server: Registered backend name (from~/.fhir-frog/backends.yaml)spec: Server-spec id (e.g.au-core, for canonical lookup)
Resolution order: serverUrl > server > spec.
Files & paths¶
scriptPath: Path to a TestScript (.json,.xml,.tsh)fixturesPath: Directory where fixture files are locatedbundlePath: Path to a TestScript bundle directoryoutputPath: Where to write output (workspace-relative)
Confirmation¶
confirm:trueto perform side effects (start containers, write files, run against non-loopback servers)
When confirm is absent or false, tools return a plan without acting.
Timeouts¶
timeoutSeconds: Maximum time for this call (default 90, max 110)pollIntervalSeconds: How often to poll for updates (default 3)
Detailed reference¶
frog_doctor¶
Checks your environment: Docker, Java, Maven, ports, FHIR packages, authoring tools.
Parameters:
- ports (optional): List of ports to check for availability (default: [8080, 8081])
Example:
frog_package_list¶
List packages in the local FHIR package cache and/or in frog-runner.
Parameters:
- includeRunner (optional): Query frog-runner too (default: false)
- runnerUrl (optional): Override FROG_RUNNER_URL
Example:
frog_package_install¶
Extract a test package from frog-runner into ~/.fhir/packages.
Parameters:
- packageId (required): e.g. fhirfrog.au-core-tests
- version (required): Concrete version (e.g. 0.1.0); #dev and #current not allowed
- confirm (optional): Set to true to perform
- image (optional): Override the source image
Example:
frog_tsh_validate¶
Validate TestScript Shorthand (.tsh) syntax.
Parameters:
- path (required): Path to a .tsh file
Example:
frog_tsh_compile¶
Compile TSH to JSON TestScript.
Parameters:
- path (required): Path to a .tsh file
- output (required): Output path for the JSON TestScript
Example:
frog_testscript_lint¶
Lint a TestScript for required fields and references.
Parameters:
- path (optional): Path to a JSON/XML TestScript (workspace-relative)
- json (optional): Inline TestScript JSON string. Use path or json, not both.
- igPackageAvailable (optional): Whether an IG package is configured (default: false)
Example:
frog_scaffold_ig¶
Create or retrofit an IG with test infrastructure.
Parameters:
- dir (required): New or existing IG directory
- mode (required): new or retrofit
- packageId (required for new)
- canonical (required for new)
- name (required for new)
- title (required for new)
- publisher (required for new)
- subjectIg (required for new; e.g. hl7.fhir.au.core#2.0.0)
- fhirVersion (optional): Default 4.0.1
- version (optional): Default 0.1.0
- ci (optional): gitlab, github, or none (default)
- confirm (optional): Set to true to write
Example:
# Create a new IG with tests
frog_scaffold_ig(
dir: "my-ig",
mode: "new",
packageId: "my.ig",
canonical: "http://example.org/my-ig",
name: "MyIG",
title: "My Implementation Guide",
publisher: "Example Org",
subjectIg: "hl7.fhir.au.core#2.0.0",
confirm: true
)
# Retrofit an existing IG
frog_scaffold_ig(
dir: "my-existing-ig",
mode: "retrofit",
confirm: true
)
frog_server_list¶
List all registered servers.
Parameters: None
Example:
frog_server_register¶
Register a FHIR server.
Parameters:
- name (required): Nickname
- url (required): Server URL
- conformsTo (optional): Implementation guide id#version
- confirm (optional): Set to true to register
Example:
frog_server_register(
name: "my-server",
url: "http://localhost:8080/fhir",
conformsTo: "http://example.org/ImplementationGuide/au-core#2.0.0",
confirm: true
)
frog_server_check¶
Verify a server is responding.
Parameters:
- name (optional): Server name (if registered)
- url (optional): Server URL (if not registered)
Example:
frog_server_start_local¶
Start a local HAPI FHIR server in Docker. Note: this starts plain HAPI without any IG preloaded. To use an IG-aware server, either use an IG-aware image or point to a server that already has the IG loaded.
Parameters:
- port (optional): Host port (default: 8081)
- image (optional): Override the HAPI image; only hapiproject/hapi images are accepted here. To use your own image (for example one that bundles your IG) set the FROG_SUT_IMAGE environment variable for the MCP server instead
- confirm (optional): Set to true to start
Example:
frog_server_stop¶
Stop a local server.
Parameters:
- confirm (optional): Set to true to stop
frog_run_local¶
Run tests locally (in-process).
Parameters:
- scriptPath (optional): Path to TestScript (.json/.xml/.tsh)
- testPackage (optional): Test package id#version
- serverUrl (optional): Server URL
- server (optional): Registered server name
- spec (optional): Server-spec id
- fixturesPath (optional): Fixture directory
- igPackage (optional): IG package id#version (for profile validation)
- terminologyServerUrl (optional): Terminology server URL
- authType (optional): NONE, BEARER_TOKEN, or CLIENT_CREDENTIALS
- bearerToken (optional): ${ENV_VAR} reference (if authType=BEARER_TOKEN)
- tokenUrl (optional): Token endpoint (if authType=CLIENT_CREDENTIALS)
- clientId (optional): OAuth2 client id
- clientSecret (optional): ${ENV_VAR} reference
- scope (optional): OAuth2 scope
- confirm (optional): Set to true for non-loopback servers
- timeoutSeconds (optional): Max wait (default 90, max 110)
Example:
frog_run_local(
scriptPath: "my-test.json",
serverUrl: "http://localhost:8080/fhir"
)
frog_run_local(
scriptPath: "my-test.json",
server: "my-server",
igPackage: "hl7.fhir.au.core#2.0.0"
)
frog_run_remote¶
Run tests via frog-runner (remote or local).
Parameters:
- testPackage (optional): Test package id#version (e.g. fhirfrog.au-core-tests#0.1.0). Mutually exclusive with bundlePath.
- bundlePath (optional): Path to a TestScript bundle directory on the runner side. Mutually exclusive with testPackage.
- serverUrl (optional): Server URL
- server (optional): Registered server name
- spec (optional): Server-spec id
- igPackage (optional): IG package id#version
- terminologyServerUrl (optional): Terminology server URL
- runnerUrl (optional): Override FROG_RUNNER_URL
- confirm (optional): Set to true for non-loopback servers
- timeoutSeconds (optional): Max wait (default 90, max 110)
- pollIntervalSeconds (optional): Polling interval (default 3)
Note: frog_run_remote submits to the runner and takes a package (testPackage) or a bundle directory (bundlePath). To run a single TestScript .json file locally, use frog_run_local(scriptPath=...) instead.
Example:
frog_run_remote(
testPackage: "fhirfrog.au-core-tests#0.1.0",
serverUrl: "http://localhost:8080/fhir"
)
frog_run_remote(
testPackage: "fhirfrog.au-core-tests#0.1.0",
server: "my-server",
runnerUrl: "http://127.0.0.1:8080"
)
frog_run_status¶
Poll the status of a remote run.
Parameters:
- runId (required): Run ID returned by frog_run_remote
- runnerUrl (optional): Override FROG_RUNNER_URL
Example:
frog_runner_start_local¶
Start a local frog-runner in Docker.
Parameters:
- port (optional): Host port (default: 8080)
- bundlePath (optional): Path to bundle directory
- confirm (optional): Set to true to start
- image (optional): Override the image
Example:
frog_runner_stop¶
Stop the local frog-runner.
Parameters:
- confirm (optional): Set to true to stop
frog_report_summarise¶
Produce a compact summary of a test run.
Parameters:
- runId (optional): Run ID from frog_run_remote
- reportPath (optional): Path to a saved run.json
- runnerUrl (optional): Override FROG_RUNNER_URL
Example:
frog_run_report¶
Download a test report in various formats.
Parameters:
- runId (required): Run ID
- format (required): xlsx, csv, md, pdf, docx, testreport-json, testreport-xml, junit-xml
- outputPath (optional): Where to save (workspace-relative)
- runnerUrl (optional): Override FROG_RUNNER_URL
Example:
Error handling¶
Every tool error is structured as:
{
"error": {
"code": "error_code",
"message": "Human-readable message",
"hint": "How to fix it",
"details": "Optional technical details"
}
}
Common error codes: needs_confirmation, docker_unavailable, network_error, parse_error, not_found, name_conflict, timeout.
See skill/fhir-frog/references/troubleshooting.md for a complete list.
See also¶
frog_wire_build¶
Generate Maven plugin, Ant task, or IG Publisher pre-publish wiring for a FHIR IG test project. Returns a text proposal; with confirm=true inserts the snippet into pom.xml or build.xml at the correct location.
| Argument | Type | Description |
|---|---|---|
build |
string | Build tool to generate wiring for: maven, ant, or publisher. |
dir |
string | Relative path within workspace to the project directory. |
serverUrl |
string | FHIR server URL (default: http://localhost:8080/fhir). |
testScript |
string | Path to a TestScript file (used in snippet). |
testPackage |
string | Test IG package id#version (used in snippet). |
fixturesPath |
string | Fixture base path (default: fixtures). |
reportDir |
string | Report output directory (default: target/fhir-reports). |
igPackage |
string | igPackage id#version for testPackage mode. |
terminologyServer |
string | Terminology server URL. |
confirm |
boolean | If true, apply the snippet to the existing pom.xml/build.xml. Default false. |
Plan first: without confirm=true the tool returns the snippet and what it would change and writes nothing. With confirm=true it edits pom.xml (Maven) or build.xml (Ant) in place, keeping existing content and comments, writes a one-time <file>.frog-bak backup, and refuses a second application. It validates every value (URLs, relative paths, package ids) before rendering. Verified on a pom with comments, pluginManagement and profiles (the plugin goes only into build/plugins), and with ant -p on a wired build.xml.