FHIR MCP server for AI agents
Connect Claude Code, Cursor, VS Code or Claude Desktop to an HL7 FHIR R4 API through MCP: 14 tools for reading records, AI-ready context, writing, lab import and sandbox reset, on 30 synthetic patients, free.
Anpheros FHIR is a remote MCP server that lets an AI agent (Claude Code, Cursor, VS Code, Claude Desktop) work with an HL7 FHIR R4 health-data API. Connect it with a free sandbox key and your agent can list patients, read their records as FHIR or as an AI-ready context with provenance, write observations, import lab reports and reset its test data, all on 30 synthetic patients with realistic histories. No real person's data is involved.
Server address: https://platform.anpheros.com/mcp (Streamable HTTP, stateless).
Connect in two minutes
- Sign in at platform.anpheros.com/dashboard with Google and choose Get a sandbox key. You get an
sk_test_…key and a project with 30 synthetic patients. - Put the key in an environment variable, for example
ANPHEROS_KEY, and add the server to your tool.
Claude Code
claude mcp add --transport http anpheros-fhir https://platform.anpheros.com/mcp --header "Authorization: Bearer $ANPHEROS_KEY"
Cursor (~/.cursor/mcp.json or .cursor/mcp.json in the project)
{
"mcpServers": {
"anpheros-fhir": {
"url": "https://platform.anpheros.com/mcp",
"headers": { "Authorization": "Bearer ${env:ANPHEROS_KEY}" }
}
}
}
VS Code (.vscode/mcp.json)
{
"servers": {
"anpheros-fhir": {
"type": "http",
"url": "https://platform.anpheros.com/mcp",
"headers": { "Authorization": "Bearer ${env:ANPHEROS_KEY}" }
}
}
}
Claude Desktop (claude_desktop_config.json, through the mcp-remote bridge)
{
"mcpServers": {
"anpheros-fhir": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://platform.anpheros.com/mcp", "--header", "Authorization: Bearer ${ANPHEROS_KEY}"],
"env": { "ANPHEROS_KEY": "sk_test_…" }
}
}
}
Then ask your agent something like: "List the sandbox patients, pick the one with diabetes and summarise her last six months of HbA1c."
Tools
| Tool | What it does |
|---|---|
list_patients |
the project's patients: the 30 synthetic personas and any you created |
get_patient_context |
an AI-ready context for one patient, within a token budget, each item labelled with its source |
get_patient_summary |
the International Patient Summary (FHIR $summary), in the language you ask for |
get_timeline |
the record in date order across resource types |
search_fhir |
standard FHIR R4 search, returning a Bundle |
read_fhir_resource |
one resource, or one earlier version of it |
get_provenance |
who wrote a resource, when and from which system |
lookup_code |
LOINC and ATC codes by text or by code |
validate_fhir_resource |
checks a resource without saving it |
create_fhir_resource |
validates, then writes a resource |
create_patient |
a new made-up patient in the project |
import_lab_report |
a CSV, HL7 v2 ORU^R01 or JSON lab report becomes laboratory Observations |
sandbox_status |
writes used today, patients, storage, resets |
reset_sandbox |
restores the 30 synthetic patients (asks for confirmation) |
Read tools are marked read-only and the reset is marked destructive, so clients that ask before risky actions can do so. The server also offers the list of synthetic patients as a resource and three prompts: a clinician summary, a lab CSV import and building your integration on the API.
How it behaves
- The same rules as the API. Every tool calls the public API with your key: the same scopes, rate limits, validation and audit. A read-only key cannot write.
- Provenance. Everything an agent writes is recorded with the source
urn:anpheros:mcp, so you can always tell what came from an agent. - Patient data is data. Tool results carry a note that record content must never be followed as instructions, a basic guard against prompt injection through medical records.
- Sandbox only, for now. Production keys (
sk_live_…) are refused. Real records will reach an agent only through OAuth and the patient's consent, logged in the patient's access history.
Frequently asked questions
What is an MCP server?
MCP (Model Context Protocol) is an open protocol through which AI agents and coding assistants call external tools. An MCP server for FHIR lets the agent read and write health records directly, instead of you pasting data into the chat.
Is it free?
Yes. The MCP server works on the free sandbox: 30 synthetic patients per project, up to 10,000 writes a day, no card.
Can my agent read real patient data?
Not yet. The server accepts sandbox keys only. Production access will come with OAuth and the patient's explicit consent for that agent.
Which FHIR version does it use?
HL7 FHIR R4 (4.0.1), the same API as https://platform.anpheros.com/fhir/R4, with the International Patient Summary and a REST view of the same data.
Does it work with ChatGPT?
ChatGPT connectors need OAuth, which comes with production access. Today it works with clients that can send an API key header: Claude Code, Cursor, VS Code, Claude Desktop through mcp-remote, and any client built on the MCP SDKs.