# Medplum MCP

> Medplum's hosted MCP server for healthcare developers: your agent reads and changes the FHIR data on your Medplum server.

Medplum's own MCP server, for developers and teams building healthcare software on Medplum, the open-source healthcare developer platform. It lets your agent search, read and change the FHIR data stored on a Medplum server, such as patient records, appointments and lab results. Instead of many narrow tools, it gives your agent one general FHIR request tool, because models already know the FHIR standard well.

What you can do with it
- Search FHIR resources, such as finding patients with a blood pressure observation above a given value
- Read records, such as a patient's most recent cholesterol lab results
- Create, update and delete resources, such as scheduling an appointment or creating a task
- Call Medplum's FHIR operations, such as submitting a Claim or running a Medplum Bot

How it connects
Medplum hosts it at https://api.medplum.com/mcp/stream. The first time you connect, you're sent to Medplum to sign in and authorize your agent (OAuth). Requests run with your Medplum account's access. It has three tools: fhir-request, which does the real work, plus search and fetch, which some clients such as ChatGPT need in order to connect. A self-hosted Medplum server serves the same endpoint at /mcp/stream.

Good to know
- fhir-request can change data: it can create, update and delete FHIR resources.
- It's a developer tool for working with data on a Medplum server. It doesn't give medical advice, and what your agent says about the data isn't a clinical judgement.
- Medplum describes its platform as HIPAA and SOC 2 compliant. When it launched MCP support, it called it a preview, asked people to use only synthetic, de-identified or test data rather than protected health information (PHI), and noted that most major AI providers didn't yet sign HIPAA business associate agreements (BAAs). Check with Medplum and your agent's provider before you connect real patient data.

- Type: Plugin
- Made by: Medplum
- Category: Health & fitness
- Formats: Remote MCP
- Version: 1.0.0
- Website: https://www.medplum.com/docs/ai/mcp
- Source: https://github.com/medplum/medplum
- Page: https://pluginboard.ai/plugins/medplum-mcp

## Works with

- ChatGPT
- Claude
- Muse
- Grok Bot
- Gemini
- Grok
- GitHub Copilot
- Cursor
- Claude Code
- Codex
- Antigravity
- Gemini CLI
- Replit
- OpenClaw
- OpenCode
- Hermes Agent

## Install

### ChatGPT

In ChatGPT on the web: Plugins → + → Add custom MCP server, then paste https://api.medplum.com/mcp/stream under Connection. Business and Enterprise plans; Pro can add read-only servers.

### Claude

In Claude (web or desktop): Customize → Connectors → Add custom connector, then paste https://api.medplum.com/mcp/stream

### Muse

In Muse: In a Muse chat, ask it to create a custom connector for the MCP server at https://api.medplum.com/mcp/stream. Then tap Connect on the card it shows and sign in, or add your key.

### Grok Bot

In Grok Bot: In a chat with your Bot, say "Add this MCP server: https://api.medplum.com/mcp/stream". It confirms the details with you and sets it up, and the tools are ready from your next message.

### Gemini

In Gemini: At gemini.google.com: Settings → Connected Apps → Add a custom app, then paste https://api.medplum.com/mcp/stream

### Grok

In Grok on the web: At grok.com/connectors: New Connector → Custom, then enter https://api.medplum.com/mcp/stream and sign in if it asks.

### GitHub Copilot

Add to VS Code: vscode:mcp/install?%7B%22name%22%3A%22medplum-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.medplum.com%2Fmcp%2Fstream%22%7D

Copilot CLI:

```shell
copilot mcp add --transport http medplum-mcp https://api.medplum.com/mcp/stream
```

### Cursor

Add to Cursor: cursor://anysphere.cursor-deeplink/mcp/install?name=medplum-mcp&config=eyJ1cmwiOiJodHRwczovL2FwaS5tZWRwbHVtLmNvbS9tY3Avc3RyZWFtIn0%3D

Add to .cursor/mcp.json:

```json
{
  "mcpServers": {
    "medplum-mcp": {
      "url": "https://api.medplum.com/mcp/stream"
    }
  }
}
```

### Claude Code

Run in your terminal:

```shell
claude mcp add --transport http medplum-mcp https://api.medplum.com/mcp/stream
```

### Codex

Run in your terminal:

```shell
codex mcp add medplum-mcp --url https://api.medplum.com/mcp/stream
```

### Antigravity

Add to ~/.gemini/config/mcp_config.json:

```json
{
  "mcpServers": {
    "medplum-mcp": {
      "url": "https://api.medplum.com/mcp/stream"
    }
  }
}
```

### Gemini CLI

Run in your terminal:

```shell
gemini mcp add --transport http medplum-mcp https://api.medplum.com/mcp/stream
```

### Replit

In Replit: At replit.com/integrations, open MCP Servers → + Add MCP server, paste https://api.medplum.com/mcp/stream (add any headers under Advanced settings), then click Test & save.

### OpenClaw

Run in your terminal:

```shell
openclaw mcp add medplum-mcp --url https://api.medplum.com/mcp/stream --transport streamable-http
```

If it needs a key or sign-in: For https://api.medplum.com/mcp/stream, add --header NAME=value for each header it needs, or --auth oauth and then run openclaw mcp login medplum-mcp.

### OpenCode

Run in your terminal:

```shell
opencode mcp add medplum-mcp --url https://api.medplum.com/mcp/stream
```

If it needs a key: For https://api.medplum.com/mcp/stream, add --header 'NAME=value' for each header it needs. Add --global to use it in every project.

### Hermes Agent

Run in your terminal:

```shell
hermes mcp add medplum-mcp --url https://api.medplum.com/mcp/stream
```

Add to ~/.hermes/config.yaml:

```json
{
  "mcp_servers": {
    "medplum-mcp": {
      "url": "https://api.medplum.com/mcp/stream"
    }
  }
}
```

If it signs in with OAuth: If https://api.medplum.com/mcp/stream asks you to sign in, add --auth oauth to the command, or auth: oauth to its entry.

---
From Pluginboard (https://pluginboard.ai).
