oci ghcr.io/easydocforms/easydocforms-mcp:0.1.2stdioMITupdated 16d ago
An MCP server for healthcare intake forms: give an AI agent the ability to turn a blank PDF intake packet into a hosted, mobile-friendly fillable form, hand the patient a link, and retrieve the completed, pixel-exact PDF — without any PHI ever entering the agent's context.
Was kannst du mit EasyDocForms machen?
easydocforms-mcp
An MCP server for healthcare intake forms: give an AI agent the ability to turn a blank PDF intake packet into a hosted, mobile-friendly fillable form, hand the patient a link, and retrieve the completed, pixel-exact PDF — without any PHI ever entering the agent's context.
Built on EasyDocForms, whose document-understanding pipeline (field detection, checkbox semantics, consent blocks, signature models) runs healthcare intake in production. This server wraps the Partner API via the easydocforms-go SDK.
The PHI boundary (read this first)
This server is designed so protected health information never passes through the model:
- Imports are blank forms only.
import_pdf_from_urlrequiresblank_form_attestation: trueand takes a URL, never document bytes. get_submissionreturns metadata and an answer count — never the patient's answers. Answers stay server-side, behind your API key.get_completed_pdf_linkreturns a ~10-minute signed URL the agent can hand to a human or an EMR without exposing your API key. Treat it like a fax.external_refmust never contain PHI — it's an opaque correlation id (your visit or order number).
Tools
| Tool | What it does |
|---|---|
import_pdf_from_url |
Import a blank PDF intake form (async; requires blank-form attestation) |
get_import_status |
Poll an import until its template is ready |
list_templates |
List the organization's active form templates |
create_fill_link |
Mint a hosted URL where a patient fills the form |
get_submission |
Submission metadata + answer count — never answers |
get_completed_pdf_link |
Short-lived signed download URL for the completed PDF |
Install
go install github.com/easydocforms/easydocforms-mcp/cmd/easydocforms-mcp@latest
You'll need an API key from the EasyDocForms app: Settings → Integrations → Partner API (shown exactly once).
Or run the Docker image (no Go toolchain needed):
docker run -i --rm -e EASYDOCFORMS_API_KEY=edfk_live_... ghcr.io/easydocforms/easydocforms-mcp:latest
Claude Code
claude mcp add easydocforms --env EASYDOCFORMS_API_KEY=edfk_live_... -- easydocforms-mcp
Claude Desktop (or any MCP client)
{
"mcpServers": {
"easydocforms": {
"command": "easydocforms-mcp",
"env": { "EASYDOCFORMS_API_KEY": "edfk_live_..." }
}
}
}
Environment
| Variable | Required | Purpose |
|---|---|---|
EASYDOCFORMS_API_KEY |
yes | edfk_live_* Partner API key |
EASYDOCFORMS_BASE_URL |
no | API base URL override |
Try it
With MCP Inspector:
EASYDOCFORMS_API_KEY=edfk_live_... npx @modelcontextprotocol/inspector easydocforms-mcp
A typical agent session: "Import the intake form at https://clinic.example.com/forms/new-patient.pdf (it's blank), then give me a fill link for visit 8675309." The agent imports, polls, mints a link with external_ref: "visit-8675309", and hands back a URL. After the patient submits, "Is the PDF for that visit ready?" → get_submission + get_completed_pdf_link.
Transport
stdio only, credentials from the environment — per the MCP spec's guidance for locally-run servers. A hosted remote variant (Streamable HTTP + OAuth 2.1) is planned as a second wave.
Development
go test ./... -race
License
MIT
Installation
EasyDocForms zu deinem Client hinzufügen. Wähl den, den du nutzt.
claude mcp add ghcr-io-easydocforms-easydocforms-mcp-0- -- docker run -i --rm ghcr.io/easydocforms/easydocforms-mcp:0.1.2codex mcp add ghcr-io-easydocforms-easydocforms-mcp-0- -- docker run -i --rm ghcr.io/easydocforms/easydocforms-mcp:0.1.2amp mcp add ghcr-io-easydocforms-easydocforms-mcp-0- -- docker run -i --rm ghcr.io/easydocforms/easydocforms-mcp:0.1.2{
"mcpServers": {
"ghcr-io-easydocforms-easydocforms-mcp-0-": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"ghcr-io-easydocforms-easydocforms-mcp-0-": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"ghcr-io-easydocforms-easydocforms-mcp-0-","command":"docker","args":["run","-i","--rm","ghcr.io/easydocforms/easydocforms-mcp:0.1.2"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"ghcr-io-easydocforms-easydocforms-mcp-0-": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"ghcr-io-easydocforms-easydocforms-mcp-0-": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"ghcr-io-easydocforms-easydocforms-mcp-0-": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"ghcr-io-easydocforms-easydocforms-mcp-0-": {
"type": "local",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"ghcr-io-easydocforms-easydocforms-mcp-0-": {
"command": {
"path": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
]
}
}
}
}Add to your Zed `settings.json`.
docker run -i --rm ghcr.io/easydocforms/easydocforms-mcp:0.1.2Run `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
6 Tools
EasyDocForms stellt einem verbundenen Agent 6 Tools bereit.
- import_pdf_from_url
- Import a blank PDF intake form (async; requires blank-form attestation)
- get_import_status
- Poll an import until its template is ready
- list_templates
- List the organization's active form templates
- create_fill_link
- Mint a hosted URL where a patient fills the form
- get_submission
- Submission metadata + answer count — never answers
- get_completed_pdf_link
- Short-lived signed download URL for the completed PDF
Score
75 / 100
Gut
- Dokumentation22/25
- Pflege19/25
- Vertrauen16/20
- Funktionsumfang6/15
- Installation12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 9 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 6 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Versionsverlauf
| Versionen | Veröffentlicht |
|---|---|
| 0.1.2Aktuell | 13. Aug. 2026 |