A side-by-side look at the Medplum MCP and Fhir MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Medplum MCP for biology, medicine and bioinformatics work; choose Fhir MCP Server for biology, medicine and bioinformatics as a local process. You can also run both side by side in one mcpServers block.
FHIR_SERVER_BASE_URL, FHIR_SERVER_CLIENT_ID, FHIR_SERVER_CLIENT_SECRET, FHIR_SERVER_SCOPES.get_capabilities, type, search.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Biology, Medicine and Bioinformatics | Biology, Medicine and Bioinformatics |
| Quality signal | 41/100 · Fair | 64/100 · Good |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | Not declared | OAuth 2.0 |
| Pricing | Not declared | Free |
| Required env vars | None listed | FHIR_SERVER_BASE_URLFHIR_SERVER_CLIENT_IDFHIR_SERVER_CLIENT_SECRETFHIR_SERVER_SCOPES |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2,736 | 137 |
| Directory activity | 1 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | Not listed | 13 |
| Full listing | View Medplum MCP | View Fhir MCP Server |
No tool names declared yet. Check the project README from the listing page.
get_capabilitiesRetrieves metadata about a specified FHIR resource type, including its supported search parameters and custom operations.typeThe FHIR resource type name (e.g., "Patient", "Observation", "Encounter")searchExecutes a standard FHIR search interaction on a given resource type, returning a bundle or list of matching resources.searchParamA mapping of FHIR search parameter names to their desired values (e.g., {"family":"Simpson","birthdate":"1956-05-12"}).response_filter_fhirpaths(Optional) An array of FHIRPath expressions (e.g., `["Patient.name", "Patient.birthDate", "Bundle.link.where(relation='next').url"]`) to apply to the resources in the response bundle.readPerforms a FHIR "read" interaction to retrieve a single resource instance by its type and resource ID, optionally refining the response with search parameters or custom operations.idThe logical ID of a specific FHIR resource instance.operationThe name of a custom FHIR operation or extended query defined for the resource (e.g., "$everything").createExecutes a FHIR "create" interaction to persist a new resource of the specified type.payloadA JSON object representing the full FHIR resource body to be created.updatePerforms a FHIR "update" interaction by replacing an existing resource instance's content with the provided payload.deleteExecute a FHIR "delete" interaction on a specific resource instance.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
No confirmed install command for Medplum MCP yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"mcpServers": {
"wso2-fhir-mcp-server": {
"command": "uvx",
"args": [
"fhir-mcp-server"
],
"env": {
"FHIR_SERVER_BASE_URL": "YOUR_FHIR_SERVER_BASE_URL_HERE",
"FHIR_SERVER_CLIENT_ID": "YOUR_FHIR_SERVER_CLIENT_ID_HERE",
"FHIR_SERVER_CLIENT_SECRET": "YOUR_FHIR_SERVER_CLIENT_SECRET_HERE",
"FHIR_SERVER_SCOPES": "YOUR_FHIR_SERVER_SCOPES_HERE"
}
}
}
}