← Discover MCPs and Agents
E
MCPOtherMCP Registry

EasyDocForms

Healthcare intake for agents: import blank PDFs, create patient fill links, fetch completed PDFs.

Links

README

From the repo.

easydocforms-mcp

CI

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_url requires blank_form_attestation: true and takes a URL, never document bytes.
  • get_submission returns metadata and an answer count — never the patient's answers. Answers stay server-side, behind your API key.
  • get_completed_pdf_link returns 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_ref must never contain PHI — it's an opaque correlation id (your visit or order number).

Tools

ToolWhat it does
import_pdf_from_urlImport a blank PDF intake form (async; requires blank-form attestation)
get_import_statusPoll an import until its template is ready
list_templatesList the organization's active form templates
create_fill_linkMint a hosted URL where a patient fills the form
get_submissionSubmission metadata + answer count — never answers
get_completed_pdf_linkShort-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

VariableRequiredPurpose
EASYDOCFORMS_API_KEYyesedfk_live_* Partner API key
EASYDOCFORMS_BASE_URLnoAPI 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

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.