Head to head · FHIR servers · October 2026 research run

Medplum vs ROOK

Medplum scores 68.7 (B) on agent readiness against ROOK's 54.9 (C), and leads in 5 of 7 scored categories. Both do fhir servers.

Best health record and wellness data APIs for AI agents · All 63 health comparisons

Which one, for what

Medplum B

Best for An agent working inside a digital health company's own FHIR store, reading and writing patients, observations and appointments under a BAA.

Ahead on

  • Schema & documentation, 82 against 74
  • Agent ergonomics, 73 against 49
  • Security & auth, 74 against 32
  • Maintenance & community, 93 against 73
  • Transparency & trust, 72 against 55

Also in its favour

  • A hosted endpoint, with nothing to install
  • Open source

Watch for

The MCP fhir-request tool can delete or overwrite any resource the token allows, with no readOnlyHint or destructiveHint

ROOK C

Best for A wellness, insurance, corporate wellness or remote monitoring product that wants normalised wearable data pushed to its backend, with plan prices it can see up front.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

Credentials are one client UUID and secret per environment, sent by Basic auth, with no scopes or rotation documented

Score by category

CategoryWeight this runMedplumROOKEdge
Reliability16%207575even
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28274Medplum +8
Agent ergonomics13%16.27349Medplum +24
Security & auth14%17.57432Medplum +42
Payments & pricing10%12.52525even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.89373Medplum +20
Transparency & trust7%8.87255Medplum +17
Negative events≤15-20
TotalB 68.7/100C 54.9/100

Facts side by side

FactMedplumROOK
KindHTTP APIHTTP API
VendorOrangebot, Inc. (dba Medplum)Rookeries Development Corp.
Hosted endpointhttps://api.medplum.com/mcp/streamno (local only)
TransportsHTTP, Streamable HTTP, SSE (legacy)HTTP
AuthOAuthAPI key
PricingFreemiumPaid
x402nono
LicenceApache 2.0 for the server, SDKs and apps in medplum/medplum. The hosted service at api.medplum.com runs under Medplum's terms of serviceProprietary service under ROOK's Terms and Conditions for ROOK services
Tools exposed3none
Read-only variant documentedyesno
llms.txtyesyes
MCP registrycom.medplum/mcpnot listed
Last release2026-10-082026-10-07
Terms last updated2023-04-112026-08-01
Privacy policy last updated2022-04-052026-05-28
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingnot found in the textyes
Terms or service can change without noticeyesnot found in the text
Arbitration or class-action waiveryesyes
Popularity2.7k stars, 270k npm/wknone

Verdicts

Medplum

Graded on the hosted FHIR API at api.medplum.com. Rate limits, a RateLimit header and a 99.99 per cent SLA are published, AccessPolicy resources allow read-only clients, and an official MCP server sits in the registry. Its main tool can delete records with no annotation, the status page could not be read, and the privacy policy dates from 2022.

ROOK

Graded on the REST API. A public OpenAPI file, a free Sandbox from the self-serve portal, published plan prices and a dated changelog. Credentials are one client UUID and secret per environment with no scopes, 429 handling isn't documented, the API is meant for occasional queries rather than bulk reads, and no SOC 2 report or security contact was found.

Before you call either

Medplum

  1. Use a ClientApplication with an AccessPolicy limited to the resources the task needs, and set readonly where no writes are needed
  2. Read the RateLimit header and wait for the reset time after a 429. Writes cost 100 quota points, searches 20 and reads 1
  3. Create patients with conditional create (If-None-Exist) or upsert on an identifier so a retry doesn't make a duplicate
  4. Pass paths to fhir-request relative to the FHIR R4 base, with no leading slash or /fhir/R4 prefix
  5. Use Prefer: respond-async for large bundles. Operations inside the background job don't count against the quota

ROOK

  1. Send HTTP Basic auth with client_uuid as the username and the secret key as the password, plus a User-Agent header, or the WAF returns 403
  2. Use https://api.rook-connect.review for Sandbox and https://api.rook-connect.com for production. Each has its own credentials
  3. Read health data from the data webhook. Use the API only for occasional queries, and stay under 60 requests a minute
  4. Deduplicate summaries on document_version and datetime. ROOK resends a summary with a higher document_version when it changes
  5. Call POST /api/v1/user_id/{user_id}/data_sources/revoke_auth to end a connection. Some providers take hours to stop sending data

Questions

Which is better for AI agents, Medplum or ROOK?

Medplum scores 68.7 (B) on agent readiness against ROOK's 54.9 (C), and leads in 5 of 7 scored categories.

Do Medplum and ROOK need an API key?

Medplum uses an OAuth sign-in. ROOK needs an API key.

Can an agent call Medplum and ROOK without installing anything?

Medplum has a hosted endpoint at https://api.medplum.com/mcp/stream. No hosted endpoint is listed for ROOK.

Are Medplum and ROOK open source?

Medplum is open source (Apache 2.0 for the server, SDKs and apps in medplum/medplum. The hosted service at api.medplum.com runs under Medplum's terms of service). No open-source release is listed for ROOK.

Other comparisons with Medplum or ROOK

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.